"Operator has not been user-defined." is displayed only is operator can be user-defined

This commit is contained in:
wechman
2022-09-28 13:09:15 +02:00
parent 5942912bf1
commit dcce3fa89b
6 changed files with 58 additions and 8 deletions
+1 -7
View File
@@ -23,6 +23,7 @@
#include <libsolidity/parsing/Parser.h>
#include <libsolidity/ast/OverridableOperators.h>
#include <libsolidity/interface/Version.h>
#include <libyul/AST.h>
#include <libyul/AsmParser.h>
@@ -980,13 +981,6 @@ ASTPointer<UsingForDirective> Parser::parseUsingDirective()
{
advance();
Token operator_ = m_scanner->currentToken();
vector<Token> static const overridableOperators = {
Token::BitOr, Token::BitAnd, Token::BitXor,
Token::Add, Token::Sub, Token::Mul, Token::Div, Token::Mod,
Token::Equal, Token::NotEqual,
Token::LessThan, Token::GreaterThan, Token::LessThanOrEqual, Token::GreaterThanOrEqual,
Token::BitNot, Token::SHL, Token::SAR, Token::Exp, Token::Not
};
if (!util::contains(overridableOperators, operator_))
{
parserError(