diff options
author | Alex Beregszaszi <alex@rtfs.hu> | 2017-04-10 21:46:59 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-10 21:46:59 +0800 |
commit | bd48f181b588978461fb4651839c62bcac7888d4 (patch) | |
tree | 67b9086edb190114119348536bb839dfe7470499 | |
parent | 8cbe87b4089bfb19dafd0b700586eaeeda30e271 (diff) | |
parent | a182dfe26695b24704047265cbe1cac80d0f8a83 (diff) | |
download | dexon-solidity-bd48f181b588978461fb4651839c62bcac7888d4.tar dexon-solidity-bd48f181b588978461fb4651839c62bcac7888d4.tar.gz dexon-solidity-bd48f181b588978461fb4651839c62bcac7888d4.tar.bz2 dexon-solidity-bd48f181b588978461fb4651839c62bcac7888d4.tar.lz dexon-solidity-bd48f181b588978461fb4651839c62bcac7888d4.tar.xz dexon-solidity-bd48f181b588978461fb4651839c62bcac7888d4.tar.zst dexon-solidity-bd48f181b588978461fb4651839c62bcac7888d4.zip |
Merge pull request #2098 from ethereum/sourceformatter
Introduce formatExceptionInformation
-rw-r--r-- | libsolidity/interface/SourceReferenceFormatter.h | 11 | ||||
-rw-r--r-- | solc/jsonCompiler.cpp | 23 |
2 files changed, 17 insertions, 17 deletions
diff --git a/libsolidity/interface/SourceReferenceFormatter.h b/libsolidity/interface/SourceReferenceFormatter.h index 7034f4ab..e8676d60 100644 --- a/libsolidity/interface/SourceReferenceFormatter.h +++ b/libsolidity/interface/SourceReferenceFormatter.h @@ -23,6 +23,7 @@ #pragma once #include <ostream> +#include <sstream> #include <functional> #include <libevmasm/SourceLocation.h> @@ -53,6 +54,16 @@ public: std::string const& _name, ScannerFromSourceNameFun const& _scannerFromSourceName ); + static std::string formatExceptionInformation( + Exception const& _exception, + std::string const& _name, + ScannerFromSourceNameFun const& _scannerFromSourceName + ) + { + std::ostringstream errorOutput; + printExceptionInformation(errorOutput, _exception, _name, _scannerFromSourceName); + return errorOutput.str(); + } private: /// Prints source name if location is given. static void printSourceName( diff --git a/solc/jsonCompiler.cpp b/solc/jsonCompiler.cpp index 74d6a901..065716ea 100644 --- a/solc/jsonCompiler.cpp +++ b/solc/jsonCompiler.cpp @@ -50,17 +50,6 @@ extern "C" { typedef void (*CStyleReadFileCallback)(char const* _path, char** o_contents, char** o_error); } -string formatError( - Exception const& _exception, - string const& _name, - function<Scanner const&(string const&)> const& _scannerFromSourceName -) -{ - ostringstream errorOutput; - SourceReferenceFormatter::printExceptionInformation(errorOutput, _exception, _name, _scannerFromSourceName); - return errorOutput.str(); -} - Json::Value functionHashes(ContractDefinition const& _contract) { Json::Value functionHashes(Json::objectValue); @@ -170,7 +159,7 @@ string compile(StringMap const& _sources, bool _optimize, CStyleReadFileCallback for (auto const& error: compiler.errors()) { auto err = dynamic_pointer_cast<Error const>(error); - errors.append(formatError( + errors.append(SourceReferenceFormatter::formatExceptionInformation( *error, (err->type() == Error::Type::Warning) ? "Warning" : "Error", scannerFromSourceName @@ -180,19 +169,19 @@ string compile(StringMap const& _sources, bool _optimize, CStyleReadFileCallback } catch (Error const& error) { - errors.append(formatError(error, error.typeName(), scannerFromSourceName)); + errors.append(SourceReferenceFormatter::formatExceptionInformation(error, error.typeName(), scannerFromSourceName)); } catch (CompilerError const& exception) { - errors.append(formatError(exception, "Compiler error (" + exception.lineInfo() + ")", scannerFromSourceName)); + errors.append(SourceReferenceFormatter::formatExceptionInformation(exception, "Compiler error (" + exception.lineInfo() + ")", scannerFromSourceName)); } catch (InternalCompilerError const& exception) { - errors.append(formatError(exception, "Internal compiler error (" + exception.lineInfo() + ")", scannerFromSourceName)); + errors.append(SourceReferenceFormatter::formatExceptionInformation(exception, "Internal compiler error (" + exception.lineInfo() + ")", scannerFromSourceName)); } catch (UnimplementedFeatureError const& exception) { - errors.append(formatError(exception, "Unimplemented feature (" + exception.lineInfo() + ")", scannerFromSourceName)); + errors.append(SourceReferenceFormatter::formatExceptionInformation(exception, "Unimplemented feature (" + exception.lineInfo() + ")", scannerFromSourceName)); } catch (Exception const& exception) { @@ -245,7 +234,7 @@ string compile(StringMap const& _sources, bool _optimize, CStyleReadFileCallback { Json::Value errors(Json::arrayValue); for (auto const& error: formalErrors) - errors.append(formatError( + errors.append(SourceReferenceFormatter::formatExceptionInformation( *error, (error->type() == Error::Type::Warning) ? "Warning" : "Error", scannerFromSourceName |