aboutsummaryrefslogtreecommitdiffstats
path: root/solc
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-02-20 00:34:07 +0800
committerGitHub <noreply@github.com>2018-02-20 00:34:07 +0800
commitabc23ac6086fe724b82eb8ca7f9805cf7ff5ba10 (patch)
tree31ebad3bbafe2fca6292989e7521ab0e8146f9d3 /solc
parenta938e39a9d1784a91984c6959300f64734172864 (diff)
parent305d5f70c25d63d602477c6b576b2f62d388c032 (diff)
downloaddexon-solidity-abc23ac6086fe724b82eb8ca7f9805cf7ff5ba10.tar
dexon-solidity-abc23ac6086fe724b82eb8ca7f9805cf7ff5ba10.tar.gz
dexon-solidity-abc23ac6086fe724b82eb8ca7f9805cf7ff5ba10.tar.bz2
dexon-solidity-abc23ac6086fe724b82eb8ca7f9805cf7ff5ba10.tar.lz
dexon-solidity-abc23ac6086fe724b82eb8ca7f9805cf7ff5ba10.tar.xz
dexon-solidity-abc23ac6086fe724b82eb8ca7f9805cf7ff5ba10.tar.zst
dexon-solidity-abc23ac6086fe724b82eb8ca7f9805cf7ff5ba10.zip
Merge pull request #3135 from federicobond/formatter-instance
Convert static SourceReferenceFormatter functions to member ones
Diffstat (limited to 'solc')
-rw-r--r--solc/CommandLineInterface.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/solc/CommandLineInterface.cpp b/solc/CommandLineInterface.cpp
index adcfee9c..8383afed 100644
--- a/solc/CommandLineInterface.cpp
+++ b/solc/CommandLineInterface.cpp
@@ -777,7 +777,10 @@ bool CommandLineInterface::processInput()
}
m_compiler.reset(new CompilerStack(fileReader));
+
auto scannerFromSourceName = [&](string const& _sourceName) -> solidity::Scanner const& { return m_compiler->scanner(_sourceName); };
+ SourceReferenceFormatter formatter(cerr, scannerFromSourceName);
+
try
{
if (m_args.count(g_argMetadataLiteral) > 0)
@@ -796,11 +799,9 @@ bool CommandLineInterface::processInput()
bool successful = m_compiler->compile();
for (auto const& error: m_compiler->errors())
- SourceReferenceFormatter::printExceptionInformation(
- cerr,
+ formatter.printExceptionInformation(
*error,
- (error->type() == Error::Type::Warning) ? "Warning" : "Error",
- scannerFromSourceName
+ (error->type() == Error::Type::Warning) ? "Warning" : "Error"
);
if (!successful)
@@ -808,7 +809,7 @@ bool CommandLineInterface::processInput()
}
catch (CompilerError const& _exception)
{
- SourceReferenceFormatter::printExceptionInformation(cerr, _exception, "Compiler error", scannerFromSourceName);
+ formatter.printExceptionInformation(_exception, "Compiler error");
return false;
}
catch (InternalCompilerError const& _exception)
@@ -828,7 +829,7 @@ bool CommandLineInterface::processInput()
if (_error.type() == Error::Type::DocstringParsingError)
cerr << "Documentation parsing error: " << *boost::get_error_info<errinfo_comment>(_error) << endl;
else
- SourceReferenceFormatter::printExceptionInformation(cerr, _error, _error.typeName(), scannerFromSourceName);
+ formatter.printExceptionInformation(_error, _error.typeName());
return false;
}
@@ -1086,15 +1087,17 @@ bool CommandLineInterface::assemble(
return false;
}
}
+
for (auto const& sourceAndStack: assemblyStacks)
{
auto const& stack = sourceAndStack.second;
+ auto scannerFromSourceName = [&](string const&) -> Scanner const& { return stack.scanner(); };
+ SourceReferenceFormatter formatter(cerr, scannerFromSourceName);
+
for (auto const& error: stack.errors())
- SourceReferenceFormatter::printExceptionInformation(
- cerr,
+ formatter.printExceptionInformation(
*error,
- (error->type() == Error::Type::Warning) ? "Warning" : "Error",
- [&](string const&) -> Scanner const& { return stack.scanner(); }
+ (error->type() == Error::Type::Warning) ? "Warning" : "Error"
);
if (!Error::containsOnlyWarnings(stack.errors()))
successful = false;