Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: pkg/compiler/lib/src/resolution/semantic_visitor_mixins.dart

Issue 1238783003: Handle deferred access as pre-step in SemanticSendVisitor. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/resolution/semantic_visitor.dart ('k') | pkg/compiler/lib/src/resolution/send_structure.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698