Merge pull request #3565 from ethereum/doNotWarnAboutAnalysisOnlyExpFeatures

Do not warn about analysis-only experimental features.
This commit is contained in:
chriseth 2018-02-22 15:17:19 +01:00 committed by GitHub
commit 8fc9535d43
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 8 deletions

View File

@ -4,6 +4,7 @@ Features:
* Code Generator: Assert that ``k != 0`` for ``molmod(a, b, k)`` and ``addmod(a, b, k)`` as experimental 0.5.0 feature. * Code Generator: Assert that ``k != 0`` for ``molmod(a, b, k)`` and ``addmod(a, b, k)`` as experimental 0.5.0 feature.
* Standard JSON: Reject badly formatted invalid JSON inputs. * Standard JSON: Reject badly formatted invalid JSON inputs.
* Type Checker: Disallow uninitialized storage pointers as experimental 0.5.0 feature. * Type Checker: Disallow uninitialized storage pointers as experimental 0.5.0 feature.
* Syntax Analyser: Do not warn about experimental features if they do not concern code generation.
Bugfixes: Bugfixes:
* Assembly: Raise error on oversized number literals in assembly. * Assembly: Raise error on oversized number literals in assembly.

View File

@ -93,7 +93,9 @@ bool SyntaxChecker::visit(PragmaDirective const& _pragma)
m_errorReporter.syntaxError(_pragma.location(), "Duplicate experimental feature name."); m_errorReporter.syntaxError(_pragma.location(), "Duplicate experimental feature name.");
else else
{ {
m_sourceUnit->annotation().experimentalFeatures.insert(ExperimentalFeatureNames.at(literal)); auto feature = ExperimentalFeatureNames.at(literal);
m_sourceUnit->annotation().experimentalFeatures.insert(feature);
if (!ExperimentalFeatureOnlyAnalysis.count(feature))
m_errorReporter.warning(_pragma.location(), "Experimental features are turned on. Do not use experimental features on live deployments."); m_errorReporter.warning(_pragma.location(), "Experimental features are turned on. Do not use experimental features on live deployments.");
} }
} }

View File

@ -35,12 +35,6 @@ namespace test
class SMTCheckerFramework: public AnalysisFramework class SMTCheckerFramework: public AnalysisFramework
{ {
public:
SMTCheckerFramework()
{
m_warningsToFilter.push_back("Experimental features are turned on.");
}
protected: protected:
virtual std::pair<SourceUnit const*, ErrorList> virtual std::pair<SourceUnit const*, ErrorList>
parseAnalyseAndReturnError( parseAnalyseAndReturnError(
@ -103,6 +97,7 @@ BOOST_AUTO_TEST_CASE(warn_on_struct)
} }
)"; )";
CHECK_WARNING_ALLOW_MULTI(text, (vector<string>{ CHECK_WARNING_ALLOW_MULTI(text, (vector<string>{
"Experimental feature",
"Assertion checker does not yet implement this expression.", "Assertion checker does not yet implement this expression.",
"Assertion checker does not yet support the type of this variable." "Assertion checker does not yet support the type of this variable."
})); }));