mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #13578 from ethereum/imported-source-type-refactoring
[libsolidity] Refactor Compiler Stack imported source type.
This commit is contained in:
commit
08af255658
@ -411,7 +411,7 @@ void CompilerStack::importASTs(map<string, Json::Value> const& _sources)
|
||||
m_sources[path] = std::move(source);
|
||||
}
|
||||
m_stackState = ParsedAndImported;
|
||||
m_importedSources = true;
|
||||
m_compilationSourceType = CompilationSourceType::SolidityAST;
|
||||
|
||||
storeContractDefinitions();
|
||||
}
|
||||
@ -1483,7 +1483,17 @@ string CompilerStack::createMetadata(Contract const& _contract, bool _forIR) con
|
||||
{
|
||||
Json::Value meta{Json::objectValue};
|
||||
meta["version"] = 1;
|
||||
meta["language"] = m_importedSources ? "SolidityAST" : "Solidity";
|
||||
string sourceType;
|
||||
switch (m_compilationSourceType)
|
||||
{
|
||||
case CompilationSourceType::Solidity:
|
||||
sourceType = "Solidity";
|
||||
break;
|
||||
case CompilationSourceType::SolidityAST:
|
||||
sourceType = "SolidityAST";
|
||||
break;
|
||||
}
|
||||
meta["language"] = sourceType;
|
||||
meta["compiler"]["version"] = VersionStringStrict;
|
||||
|
||||
/// All the source files (including self), which should be included in the metadata.
|
||||
|
@ -117,6 +117,13 @@ public:
|
||||
None
|
||||
};
|
||||
|
||||
enum class CompilationSourceType {
|
||||
/// Regular compilation from Solidity source files.
|
||||
Solidity,
|
||||
/// Compilation from an imported Solidity AST.
|
||||
SolidityAST
|
||||
};
|
||||
|
||||
/// Creates a new compiler stack.
|
||||
/// @param _readFile callback used to read files for import statements. Must return
|
||||
/// and must not emit exceptions.
|
||||
@ -514,7 +521,7 @@ private:
|
||||
langutil::DebugInfoSelection m_debugInfoSelection = langutil::DebugInfoSelection::Default();
|
||||
bool m_parserErrorRecovery = false;
|
||||
State m_stackState = Empty;
|
||||
bool m_importedSources = false;
|
||||
CompilationSourceType m_compilationSourceType = CompilationSourceType::Solidity;
|
||||
/// Whether or not there has been an error during processing.
|
||||
/// If this is true, the stack will refuse to generate code.
|
||||
bool m_hasError = false;
|
||||
|
Loading…
Reference in New Issue
Block a user