Move the function for creating code snippets used next to source locations in assembly to liblangutil

This commit is contained in:
Kamil Śliwak
2021-09-07 17:18:22 +02:00
parent 11a8505990
commit a7612ce873
3 changed files with 27 additions and 10 deletions
+2 -10
View File
@@ -31,6 +31,7 @@
#include <libevmasm/ConstantOptimiser.h>
#include <libevmasm/GasMeter.h>
#include <liblangutil/CharStream.h>
#include <liblangutil/Exceptions.h>
#include <json/json.h>
@@ -82,16 +83,7 @@ string locationFromSources(StringMap const& _sourceCodes, SourceLocation const&
if (it == _sourceCodes.end())
return {};
string const& source = it->second;
if (static_cast<size_t>(_location.start) >= source.size())
return {};
string cut = source.substr(static_cast<size_t>(_location.start), static_cast<size_t>(_location.end - _location.start));
auto newLinePos = cut.find_first_of("\n");
if (newLinePos != string::npos)
cut = cut.substr(0, newLinePos) + "...";
return cut;
return CharStream::singleLineSnippet(it->second, _location);
}
class Functionalizer