Chromium Code Reviews| Index: frog/leg/resolver.dart |
| =================================================================== |
| --- frog/leg/resolver.dart (revision 3845) |
| +++ frog/leg/resolver.dart (working copy) |
| @@ -622,11 +622,17 @@ |
| visitSend(Send node) { |
| Element target = resolveSend(node); |
| if (node.isOperator) { |
| - if (node.selector.asIdentifier().source.stringValue === 'is') { |
| + Operator op = node.selector.asOperator(); |
| + if (op.source.stringValue === 'is') { |
| resolveTypeTest(node.arguments.head); |
| assert(node.arguments.tail.isEmpty()); |
| mapping.setSelector(node, Selector.BINARY_OPERATOR); |
| } else if (node.arguments.isEmpty()) { |
| + if (node.isPrefix && op.source.stringValue === '+' |
| + && node.receiver.asLiteralInt() == null |
|
ahe
2012/02/02 17:43:27
===
ngeoffray
2012/02/03 08:43:46
Done.
|
| + && node.receiver.asLiteralDouble() == null) { |
|
ahe
2012/02/02 17:43:27
===
ngeoffray
2012/02/03 08:43:46
Done.
|
| + error(node, MessageKind.NO_UNARY_ADD); |
|
ahe
2012/02/02 17:43:27
"expected a literal number"
ngeoffray
2012/02/03 08:43:46
Done.
|
| + } |
| mapping.setSelector(node, Selector.UNARY_OPERATOR); |
| } else { |
| visit(node.argumentsNode); |