aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/interface
diff options
context:
space:
mode:
Diffstat (limited to 'libsolidity/interface')
-rw-r--r--libsolidity/interface/CompilerStack.cpp5
-rw-r--r--libsolidity/interface/StandardCompiler.cpp30
2 files changed, 7 insertions, 28 deletions
diff --git a/libsolidity/interface/CompilerStack.cpp b/libsolidity/interface/CompilerStack.cpp
index 79855060..9c9c9614 100644
--- a/libsolidity/interface/CompilerStack.cpp
+++ b/libsolidity/interface/CompilerStack.cpp
@@ -80,8 +80,11 @@ void CompilerStack::setRemappings(vector<string> const& _remappings)
void CompilerStack::reset(bool _keepSources)
{
if (_keepSources)
+ {
+ m_stackState = SourcesSet;
for (auto sourcePair: m_sources)
sourcePair.second.reset();
+ }
else
{
m_sources.clear();
@@ -161,7 +164,7 @@ bool CompilerStack::parse()
bool CompilerStack::analyze()
{
- if (m_stackState < ParsingSuccessful)
+ if (m_stackState != ParsingSuccessful)
return false;
resolveImports();
diff --git a/libsolidity/interface/StandardCompiler.cpp b/libsolidity/interface/StandardCompiler.cpp
index 2b5e861b..223cc15d 100644
--- a/libsolidity/interface/StandardCompiler.cpp
+++ b/libsolidity/interface/StandardCompiler.cpp
@@ -391,10 +391,10 @@ Json::Value StandardCompiler::compileInternal(Json::Value const& _input)
// ABI, documentation and metadata
Json::Value contractData(Json::objectValue);
- contractData["abi"] = dev::jsonCompactPrint(m_compilerStack.metadata(contractName, DocumentationType::ABIInterface));
+ contractData["abi"] = m_compilerStack.metadata(contractName, DocumentationType::ABIInterface);
contractData["metadata"] = m_compilerStack.onChainMetadata(contractName);
- contractData["userdoc"] = dev::jsonCompactPrint(m_compilerStack.metadata(contractName, DocumentationType::NatspecUser));
- contractData["devdoc"] = dev::jsonCompactPrint(m_compilerStack.metadata(contractName, DocumentationType::NatspecDev));
+ contractData["userdoc"] = m_compilerStack.metadata(contractName, DocumentationType::NatspecUser);
+ contractData["devdoc"] = m_compilerStack.metadata(contractName, DocumentationType::NatspecDev);
// EVM
Json::Value evmData(Json::objectValue);
@@ -425,30 +425,6 @@ Json::Value StandardCompiler::compileInternal(Json::Value const& _input)
}
output["contracts"] = contractsOutput;
- {
- ErrorList formalErrors;
- if (m_compilerStack.prepareFormalAnalysis(&formalErrors))
- output["why3"] = m_compilerStack.formalTranslation();
-
- for (auto const& error: formalErrors)
- {
- auto err = dynamic_pointer_cast<Error const>(error);
-
- errors.append(formatErrorWithException(
- *error,
- err->type() == Error::Type::Warning,
- err->typeName(),
- "general",
- "",
- scannerFromSourceName
- ));
- }
-
- // FIXME!!
- if (!formalErrors.empty())
- output["errors"] = errors;
- }
-
return output;
}