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

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

Issue 1313323002: Add visitor methods specific to ??= to SemanticSendVisitor. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments. Created 5 years, 3 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 library dart2js.resolution.members; 5 library dart2js.resolution.members;
6 6
7 import '../common/names.dart' show 7 import '../common/names.dart' show
8 Selectors; 8 Selectors;
9 import '../compiler.dart' show 9 import '../compiler.dart' show
10 Compiler, 10 Compiler,
(...skipping 3441 matching lines...) Expand 10 before | Expand all | Expand 10 after
3452 3452
3453 // TODO(23998): Remove these when selectors are only accessed 3453 // TODO(23998): Remove these when selectors are only accessed
3454 // through the send structure. 3454 // through the send structure.
3455 registry.setGetterSelectorInComplexSendSet(node, getterSelector); 3455 registry.setGetterSelectorInComplexSendSet(node, getterSelector);
3456 registry.setSelector(node, setterSelector); 3456 registry.setSelector(node, setterSelector);
3457 registry.setOperatorSelectorInComplexSendSet(node, operatorSelector); 3457 registry.setOperatorSelectorInComplexSendSet(node, operatorSelector);
3458 3458
3459 registry.registerDynamicInvocation( 3459 registry.registerDynamicInvocation(
3460 new UniverseSelector(operatorSelector, null)); 3460 new UniverseSelector(operatorSelector, null));
3461 3461
3462 SendStructure sendStructure = 3462 SendStructure sendStructure;
3463 new CompoundStructure(semantics, operator); 3463 if (operator.kind == AssignmentOperatorKind.IF_NULL) {
3464 sendStructure = new SetIfNullStructure(semantics);
3465 } else {
3466 sendStructure = new CompoundStructure(semantics, operator);
3467 }
3464 registry.registerSendStructure(node, sendStructure); 3468 registry.registerSendStructure(node, sendStructure);
3465 } 3469 }
3466 } 3470 }
3467 return new ResolutionResult.forElement(semantics.setter); 3471 return new ResolutionResult.forElement(semantics.setter);
3468 } 3472 }
3469 3473
3470 ResolutionResult visitSendSet(SendSet node) { 3474 ResolutionResult visitSendSet(SendSet node) {
3471 if (node.isIndex) { 3475 if (node.isIndex) {
3472 // `a[b] = c` 3476 // `a[b] = c`
3473 if (node.isSuperCall) { 3477 if (node.isSuperCall) {
(...skipping 1167 matching lines...) Expand 10 before | Expand all | Expand 10 after
4641 } 4645 }
4642 return const NoneResult(); 4646 return const NoneResult();
4643 } 4647 }
4644 } 4648 }
4645 4649
4646 /// Looks up [name] in [scope] and unwraps the result. 4650 /// Looks up [name] in [scope] and unwraps the result.
4647 Element lookupInScope(Compiler compiler, Node node, 4651 Element lookupInScope(Compiler compiler, Node node,
4648 Scope scope, String name) { 4652 Scope scope, String name) {
4649 return Elements.unwrap(scope.lookup(name), compiler, node); 4653 return Elements.unwrap(scope.lookup(name), compiler, node);
4650 } 4654 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/resolution/access_semantics.dart ('k') | pkg/compiler/lib/src/resolution/semantic_visitor.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698