Do not warn about analysis-only experimental features.

This commit is contained in:
chriseth 2018-02-21 16:33:59 +01:00
parent 090d703740
commit c182284d28
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.
* Standard JSON: Reject badly formatted invalid JSON inputs.
* 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:
* Assembly: Raise error on oversized number literals in assembly.

View File

@ -93,8 +93,10 @@ bool SyntaxChecker::visit(PragmaDirective const& _pragma)
m_errorReporter.syntaxError(_pragma.location(), "Duplicate experimental feature name.");
else
{
m_sourceUnit->annotation().experimentalFeatures.insert(ExperimentalFeatureNames.at(literal));
m_errorReporter.warning(_pragma.location(), "Experimental features are turned on. Do not use experimental features on live deployments.");
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.");
}
}
}

View File

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