aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2017-04-10 21:46:59 +0800
committerGitHub <noreply@github.com>2017-04-10 21:46:59 +0800
commitbd48f181b588978461fb4651839c62bcac7888d4 (patch)
tree67b9086edb190114119348536bb839dfe7470499
parent8cbe87b4089bfb19dafd0b700586eaeeda30e271 (diff)
parenta182dfe26695b24704047265cbe1cac80d0f8a83 (diff)
downloaddexon-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.h11
-rw-r--r--solc/jsonCompiler.cpp23
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