| Index: sdk/lib/_internal/compiler/implementation/resolution/members.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/resolution/members.dart b/sdk/lib/_internal/compiler/implementation/resolution/members.dart
|
| index 1dfc84ca20c5d4395e9c320c1234379751f700a9..529d4b71b4ceb4e446da5716c383c55329035b31 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/resolution/members.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/resolution/members.dart
|
| @@ -2131,17 +2131,22 @@ class ResolverVisitor extends MappingVisitor<Element> {
|
| if (identical(string, '!') ||
|
| identical(string, '&&') || identical(string, '||') ||
|
| identical(string, 'is') || identical(string, 'as') ||
|
| - identical(string, '===') || identical(string, '!==') ||
|
| identical(string, '?') ||
|
| identical(string, '>>>')) {
|
| return null;
|
| }
|
| + SourceString op = source;
|
| if (!isUserDefinableOperator(source.stringValue)) {
|
| - source = Elements.mapToUserOperator(source);
|
| + op = Elements.mapToUserOperatorOrNull(source);
|
| + }
|
| + if (op == null) {
|
| + // Unsupported operator. An error has been reported during parsing.
|
| + return new Selector.call(
|
| + source, library, node.argumentsNode.slowLength(), []);
|
| }
|
| return node.arguments.isEmpty
|
| - ? new Selector.unaryOperator(source)
|
| - : new Selector.binaryOperator(source);
|
| + ? new Selector.unaryOperator(op)
|
| + : new Selector.binaryOperator(op);
|
| }
|
|
|
| Identifier identifier = node.selector.asIdentifier();
|
|
|