| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 part of dart2js.semantics_visitor; | 5 part of dart2js.semantics_visitor; |
| 6 | 6 |
| 7 /// Interface for bulk handling of a [Node] in a semantic visitor. | 7 /// Interface for bulk handling of a [Node] in a semantic visitor. |
| 8 abstract class BulkHandle<R, A> { | 8 abstract class BulkHandle<R, A> { |
| 9 /// Handle [node] either regardless of semantics or to report that [node] is | 9 /// Handle [node] either regardless of semantics or to report that [node] is |
| 10 /// unhandled. [message] contains a message template for the latter case: | 10 /// unhandled. [message] contains a message template for the latter case: |
| (...skipping 2460 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2471 } | 2471 } |
| 2472 | 2472 |
| 2473 @override | 2473 @override |
| 2474 R visitLogicalOr( | 2474 R visitLogicalOr( |
| 2475 Send node, | 2475 Send node, |
| 2476 Node left, | 2476 Node left, |
| 2477 Node right, | 2477 Node right, |
| 2478 A arg) { | 2478 A arg) { |
| 2479 return bulkHandleNode(node, 'Lazy or `#` unhandled.', arg); | 2479 return bulkHandleNode(node, 'Lazy or `#` unhandled.', arg); |
| 2480 } | 2480 } |
| 2481 |
| 2482 @override |
| 2483 void previsitDeferredAccess( |
| 2484 Send node, |
| 2485 PrefixElement prefix, |
| 2486 A arg) { |
| 2487 bulkHandleNode(node, 'Deferred access `#` unhandled.', arg); |
| 2488 } |
| 2481 } | 2489 } |
| 2482 | 2490 |
| 2483 /// Mixin that implements all visitor methods for `super` calls in | 2491 /// Mixin that implements all visitor methods for `super` calls in |
| 2484 /// [SemanticSendVisitor] by delegating to a bulk handler. | 2492 /// [SemanticSendVisitor] by delegating to a bulk handler. |
| 2485 /// | 2493 /// |
| 2486 /// Use this mixin to provide a trivial implementation for `super` calls | 2494 /// Use this mixin to provide a trivial implementation for `super` calls |
| 2487 /// visitor methods. | 2495 /// visitor methods. |
| 2488 abstract class SuperBulkMixin<R, A> | 2496 abstract class SuperBulkMixin<R, A> |
| 2489 implements SemanticSendVisitor<R, A>, BulkHandle<R, A> { | 2497 implements SemanticSendVisitor<R, A>, BulkHandle<R, A> { |
| 2490 | 2498 |
| (...skipping 1012 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3503 | 3511 |
| 3504 | 3512 |
| 3505 /// [SemanticSendVisitor] that visits subnodes. | 3513 /// [SemanticSendVisitor] that visits subnodes. |
| 3506 class TraversalSendMixin<R, A> implements SemanticSendVisitor<R, A> { | 3514 class TraversalSendMixin<R, A> implements SemanticSendVisitor<R, A> { |
| 3507 @override | 3515 @override |
| 3508 R apply(Node node, A arg) { | 3516 R apply(Node node, A arg) { |
| 3509 throw new UnimplementedError("TraversalMixin.apply unimplemented"); | 3517 throw new UnimplementedError("TraversalMixin.apply unimplemented"); |
| 3510 } | 3518 } |
| 3511 | 3519 |
| 3512 @override | 3520 @override |
| 3521 void previsitDeferredAccess( |
| 3522 Send node, |
| 3523 PrefixElement prefix, |
| 3524 A arg) { |
| 3525 } |
| 3526 |
| 3527 @override |
| 3513 R errorInvalidAssert( | 3528 R errorInvalidAssert( |
| 3514 Send node, | 3529 Send node, |
| 3515 NodeList arguments, | 3530 NodeList arguments, |
| 3516 A arg) { | 3531 A arg) { |
| 3517 apply(arguments, arg); | 3532 apply(arguments, arg); |
| 3518 return null; | 3533 return null; |
| 3519 } | 3534 } |
| 3520 | 3535 |
| 3521 @override | 3536 @override |
| 3522 R visitClassTypeLiteralSet( | 3537 R visitClassTypeLiteralSet( |
| (...skipping 7214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10737 NewExpression node, | 10752 NewExpression node, |
| 10738 ConstructorElement constructor, | 10753 ConstructorElement constructor, |
| 10739 InterfaceType type, | 10754 InterfaceType type, |
| 10740 NodeList arguments, | 10755 NodeList arguments, |
| 10741 CallStructure callStructure, | 10756 CallStructure callStructure, |
| 10742 A arg) { | 10757 A arg) { |
| 10743 return handleConstructorInvoke( | 10758 return handleConstructorInvoke( |
| 10744 node, constructor, type, arguments, callStructure, arg); | 10759 node, constructor, type, arguments, callStructure, arg); |
| 10745 } | 10760 } |
| 10746 } | 10761 } |
| OLD | NEW |