aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/interface/SourceReferenceFormatter.h
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2016-04-01 06:54:07 +0800
committerchriseth <c@ethdev.com>2016-04-01 06:54:12 +0800
commitea7325d2d2716703d458f520e3cc48a421730094 (patch)
tree429d6844def9c560e610d30a0ab69920cf5ac466 /libsolidity/interface/SourceReferenceFormatter.h
parentc67926cf2be95e9275eb2b7fe904131e7e8842ad (diff)
downloaddexon-solidity-ea7325d2d2716703d458f520e3cc48a421730094.tar
dexon-solidity-ea7325d2d2716703d458f520e3cc48a421730094.tar.gz
dexon-solidity-ea7325d2d2716703d458f520e3cc48a421730094.tar.bz2
dexon-solidity-ea7325d2d2716703d458f520e3cc48a421730094.tar.lz
dexon-solidity-ea7325d2d2716703d458f520e3cc48a421730094.tar.xz
dexon-solidity-ea7325d2d2716703d458f520e3cc48a421730094.tar.zst
dexon-solidity-ea7325d2d2716703d458f520e3cc48a421730094.zip
Remove code duplication in source references formatter.
Diffstat (limited to 'libsolidity/interface/SourceReferenceFormatter.h')
-rw-r--r--libsolidity/interface/SourceReferenceFormatter.h17
1 files changed, 14 insertions, 3 deletions
diff --git a/libsolidity/interface/SourceReferenceFormatter.h b/libsolidity/interface/SourceReferenceFormatter.h
index 1fc42753..2b908c46 100644
--- a/libsolidity/interface/SourceReferenceFormatter.h
+++ b/libsolidity/interface/SourceReferenceFormatter.h
@@ -40,15 +40,26 @@ class CompilerStack; // forward
struct SourceReferenceFormatter
{
public:
- static void printSourceLocation(std::ostream& _stream, SourceLocation const& _location, Scanner const& _scanner);
+ using ScannerFromSourceNameFun = std::function<Scanner const&(std::string const&)>;
+ /// Prints source location if it is given.
+ static void printSourceLocation(
+ std::ostream& _stream,
+ SourceLocation const* _location,
+ ScannerFromSourceNameFun const& _scannerFromSourceName
+ );
static void printExceptionInformation(
std::ostream& _stream,
Exception const& _exception,
std::string const& _name,
- std::function<Scanner const&(std::string const&)> const& _scannerFromSourceName
+ ScannerFromSourceNameFun const& _scannerFromSourceName
);
private:
- static void printSourceName(std::ostream& _stream, SourceLocation const& _location, Scanner const& _scanner);
+ /// Prints source name if location is given.
+ static void printSourceName(
+ std::ostream& _stream,
+ SourceLocation const* _location,
+ ScannerFromSourceNameFun const& _scannerFromSourceName
+ );
};
}