diff --git a/libsolidity/ast/ASTJsonImporter.cpp b/libsolidity/ast/ASTJsonImporter.cpp index 5edf94551..a715dda71 100644 --- a/libsolidity/ast/ASTJsonImporter.cpp +++ b/libsolidity/ast/ASTJsonImporter.cpp @@ -22,6 +22,7 @@ */ #include +#include #include #include @@ -395,11 +396,14 @@ ASTPointer ASTJsonImporter::createUsingForDirective(Json::Val for (Json::Value const& function: _node["functionList"]) { functions.emplace_back(createIdentifierPath(function["function"])); - operators.emplace_back( - function.isMember("operator") ? - optional{scanSingleToken(function["operator"])} : - nullopt - ); + if (function.isMember("operator")) + { + Token const token = scanSingleToken(function["operator"]); + solAssert(util::contains(frontend::overridableOperators, token)); + operators.emplace_back(optional{token}); + } + else + operators.emplace_back(nullopt); } return createASTNode(