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