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_sources[path] = std::move(source);
|
||||||
}
|
}
|
||||||
m_stackState = ParsedAndImported;
|
m_stackState = ParsedAndImported;
|
||||||
m_importedSources = true;
|
m_compilationSourceType = CompilationSourceType::SolidityAST;
|
||||||
|
|
||||||
storeContractDefinitions();
|
storeContractDefinitions();
|
||||||
}
|
}
|
||||||
@ -1483,7 +1483,17 @@ string CompilerStack::createMetadata(Contract const& _contract, bool _forIR) con
|
|||||||
{
|
{
|
||||||
Json::Value meta{Json::objectValue};
|
Json::Value meta{Json::objectValue};
|
||||||
meta["version"] = 1;
|
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;
|
meta["compiler"]["version"] = VersionStringStrict;
|
||||||
|
|
||||||
/// All the source files (including self), which should be included in the metadata.
|
/// All the source files (including self), which should be included in the metadata.
|
||||||
|
@ -117,6 +117,13 @@ public:
|
|||||||
None
|
None
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class CompilationSourceType {
|
||||||
|
/// Regular compilation from Solidity source files.
|
||||||
|
Solidity,
|
||||||
|
/// Compilation from an imported Solidity AST.
|
||||||
|
SolidityAST
|
||||||
|
};
|
||||||
|
|
||||||
/// Creates a new compiler stack.
|
/// Creates a new compiler stack.
|
||||||
/// @param _readFile callback used to read files for import statements. Must return
|
/// @param _readFile callback used to read files for import statements. Must return
|
||||||
/// and must not emit exceptions.
|
/// and must not emit exceptions.
|
||||||
@ -514,7 +521,7 @@ private:
|
|||||||
langutil::DebugInfoSelection m_debugInfoSelection = langutil::DebugInfoSelection::Default();
|
langutil::DebugInfoSelection m_debugInfoSelection = langutil::DebugInfoSelection::Default();
|
||||||
bool m_parserErrorRecovery = false;
|
bool m_parserErrorRecovery = false;
|
||||||
State m_stackState = Empty;
|
State m_stackState = Empty;
|
||||||
bool m_importedSources = false;
|
CompilationSourceType m_compilationSourceType = CompilationSourceType::Solidity;
|
||||||
/// Whether or not there has been an error during processing.
|
/// Whether or not there has been an error during processing.
|
||||||
/// If this is true, the stack will refuse to generate code.
|
/// If this is true, the stack will refuse to generate code.
|
||||||
bool m_hasError = false;
|
bool m_hasError = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user