Restrict experimental solidity to constantinople and above

This commit is contained in:
Nikola Matic
2023-05-17 17:03:43 +02:00
parent 33e7fc1cba
commit 7a34d34045
10 changed files with 23 additions and 4 deletions
+2
View File
@@ -248,6 +248,8 @@ ASTPointer<PragmaDirective> Parser::parsePragmaDirective(bool const _finishedPar
if (literals.size() >= 2 && literals[0] == "experimental" && literals[1] == "solidity")
{
if (m_evmVersion < EVMVersion::constantinople())
fatalParserError(7637_error, "Experimental solidity requires Constantinople EVM version at the minimum.");
if (_finishedParsingTopLevelPragmas)
fatalParserError(8185_error, "Experimental pragma \"solidity\" can only be set at the beginning of the source unit.");
m_experimentalSolidityEnabledInCurrentSourceUnit = true;