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

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

Issue 1112563002: Refactor SsaBuilder.visitStaticSend and visitGetterSend. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated cf. comments. Created 5 years, 7 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 | Annotate | Revision Log
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 enum SendStructureKind { 7 enum SendStructureKind {
8 GET, 8 GET,
9 SET, 9 SET,
10 INVOKE, 10 INVOKE,
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 if (semantics == null) { 227 if (semantics == null) {
228 return internalError(node, 'No semantics for $node'); 228 return internalError(node, 'No semantics for $node');
229 } 229 }
230 Selector selector = elements.getSelector(node); 230 Selector selector = elements.getSelector(node);
231 switch (kind) { 231 switch (kind) {
232 case SendStructureKind.GET: 232 case SendStructureKind.GET:
233 return new GetStructure(semantics, selector); 233 return new GetStructure(semantics, selector);
234 case SendStructureKind.SET: 234 case SendStructureKind.SET:
235 return new SetStructure(semantics, selector); 235 return new SetStructure(semantics, selector);
236 case SendStructureKind.INVOKE: 236 case SendStructureKind.INVOKE:
237 if (semantics.kind == AccessKind.SUPER_METHOD) { 237 switch (semantics.kind) {
238 // TODO(johnniwinther): Find all statically resolved case that should 238 case AccessKind.STATIC_METHOD:
239 // go here (top level, static, local, ...). 239 case AccessKind.SUPER_METHOD:
240 if (!selector.callStructure.signatureApplies(semantics.element)) { 240 case AccessKind.TOPLEVEL_METHOD:
241 return new IncompatibleInvokeStructure(semantics, selector); 241 // TODO(johnniwinther): Should local function also be handled here?
242 } 242 if (!selector.callStructure.signatureApplies(semantics.element)) {
243 return new IncompatibleInvokeStructure(semantics, selector);
244 }
245 break;
246 default:
247 break;
243 } 248 }
244 return new InvokeStructure(semantics, selector); 249 return new InvokeStructure(semantics, selector);
245 case SendStructureKind.UNARY: 250 case SendStructureKind.UNARY:
246 return new UnaryStructure(semantics, unaryOperator, selector); 251 return new UnaryStructure(semantics, unaryOperator, selector);
247 case SendStructureKind.NOT: 252 case SendStructureKind.NOT:
248 assert(selector == null); 253 assert(selector == null);
249 return new NotStructure(semantics, selector); 254 return new NotStructure(semantics, selector);
250 case SendStructureKind.BINARY: 255 case SendStructureKind.BINARY:
251 return new BinaryStructure(semantics, binaryOperator, selector); 256 return new BinaryStructure(semantics, binaryOperator, selector);
252 case SendStructureKind.INDEX: 257 case SendStructureKind.INDEX:
(...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after
785 return internalError(node, "Unexpected variable $element."); 790 return internalError(node, "Unexpected variable $element.");
786 } 791 }
787 if (element.isConst) { 792 if (element.isConst) {
788 ConstantExpression constant = elements.getConstant(element.initializer); 793 ConstantExpression constant = elements.getConstant(element.initializer);
789 return new ConstantVariableStructure(kind, node, element, constant); 794 return new ConstantVariableStructure(kind, node, element, constant);
790 } else { 795 } else {
791 return new NonConstantVariableStructure(kind, node, element); 796 return new NonConstantVariableStructure(kind, node, element);
792 } 797 }
793 } 798 }
794 } 799 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/resolution/semantic_visitor_mixins.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