From 8608bc3b8c71cadf49669d120d92ae6b180cc935 Mon Sep 17 00:00:00 2001 From: Alexander Arlt Date: Tue, 9 Nov 2021 17:06:48 -0500 Subject: [PATCH] [libsolidity] sourceIndices: selectable internal sources. --- libsolidity/interface/CompilerStack.cpp | 7 ++++--- libsolidity/interface/CompilerStack.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/libsolidity/interface/CompilerStack.cpp b/libsolidity/interface/CompilerStack.cpp index dfed2bb75..c77a99e26 100644 --- a/libsolidity/interface/CompilerStack.cpp +++ b/libsolidity/interface/CompilerStack.cpp @@ -978,14 +978,14 @@ Json::Value CompilerStack::assemblyJSON(string const& _contractName) const vector CompilerStack::sourceNames() const { - map indices = sourceIndices(); + map indices = sourceIndices(false); vector names(indices.size()); for (auto const& s: indices) names[s.second] = s.first; return names; } -map CompilerStack::sourceIndices() const +map CompilerStack::sourceIndices(bool _includeInternalSources /* = true */) const { map indices; unsigned index = 0; @@ -994,7 +994,8 @@ map CompilerStack::sourceIndices() const for (auto const& s: m_sources) indices[s.first] = index++; solAssert(!indices.count(CompilerContext::yulUtilityFileName()), ""); - indices[CompilerContext::yulUtilityFileName()] = index++; + if (_includeInternalSources) + indices[CompilerContext::yulUtilityFileName()] = index++; } else for (auto const& s: m_sourceOrder) diff --git a/libsolidity/interface/CompilerStack.h b/libsolidity/interface/CompilerStack.h index 9e25797e5..26be9da83 100644 --- a/libsolidity/interface/CompilerStack.h +++ b/libsolidity/interface/CompilerStack.h @@ -242,7 +242,7 @@ public: /// @returns a mapping assigning each source name its index inside the vector returned /// by sourceNames(). - std::map sourceIndices() const; + std::map sourceIndices(bool _includeInternalSources = true) const; /// @returns the previously used character stream, useful for counting lines during error reporting. langutil::CharStream const& charStream(std::string const& _sourceName) const override;