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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/dart_backend/dart_tree_printer.dart

Issue 278823002: dart2dart: Method and constructor calls in new backend. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Bailout on super receiver. Update status for test case that no longer fails. Created 6 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 library dart_tree_printer; 1 library dart_tree_printer;
2 2
3 import 'dart_printer.dart'; 3 import 'dart_printer.dart';
4 import '../tree/tree.dart' as tree; 4 import '../tree/tree.dart' as tree;
5 import '../scanner/scannerlib.dart'; 5 import '../scanner/scannerlib.dart';
6 import '../util/util.dart'; 6 import '../util/util.dart';
7 import '../dart2jslib.dart' as dart2js; 7 import '../dart2jslib.dart' as dart2js;
8 import '../util/characters.dart' as characters; 8 import '../util/characters.dart' as characters;
9 import '../elements/elements.dart' as elements; 9 import '../elements/elements.dart' as elements;
10 import '../dart_types.dart' as types; 10 import '../dart_types.dart' as types;
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 makeExp(exp.object, PRIMARY, beginStmt: beginStmt), 297 makeExp(exp.object, PRIMARY, beginStmt: beginStmt),
298 makeIdentifier(exp.methodName), 298 makeIdentifier(exp.methodName),
299 argList(exp.arguments.map(makeArgument))); 299 argList(exp.arguments.map(makeArgument)));
300 } else if (exp is CallNew) { 300 } else if (exp is CallNew) {
301 precedence = CALLEE; 301 precedence = CALLEE;
302 tree.Node selector = makeName(exp.type.name); 302 tree.Node selector = makeName(exp.type.name);
303 if (exp.type.typeArguments.length > 0) { 303 if (exp.type.typeArguments.length > 0) {
304 selector = new tree.TypeAnnotation( 304 selector = new tree.TypeAnnotation(
305 selector, 305 selector,
306 typeArgList(exp.type.typeArguments.map(makeType))); 306 typeArgList(exp.type.typeArguments.map(makeType)));
307 setType(selector, exp.dartType, exp);
307 } 308 }
308 if (exp.constructorName != null) { 309 if (exp.constructorName != null) {
309 selector = new tree.Send( 310 selector = new tree.Send(
310 selector, 311 selector,
311 makeIdentifier(exp.constructorName)); 312 makeIdentifier(exp.constructorName));
312 } 313 }
313 tree.Send send = new tree.Send( 314 tree.Send send = new tree.Send(
314 null, 315 null,
315 selector, 316 selector,
316 argList(exp.arguments.map(makeArgument))); 317 argList(exp.arguments.map(makeArgument)));
317 result = new tree.NewExpression( 318 result = new tree.NewExpression(
318 exp.isConst ? constToken : newToken, 319 exp.isConst ? constToken : newToken,
319 send); 320 send);
321 setType(result, exp.dartType, exp);
322 setElement(send, exp.constructor, exp);
320 } else if (exp is CallStatic) { 323 } else if (exp is CallStatic) {
321 precedence = CALLEE; 324 precedence = CALLEE;
322 result = new tree.Send( 325 result = new tree.Send(
323 makeName(exp.className), 326 makeName(exp.className),
324 makeIdentifier(exp.methodName), 327 makeIdentifier(exp.methodName),
325 argList(exp.arguments.map(makeArgument))); 328 argList(exp.arguments.map(makeArgument)));
326 setElement(result, exp.element, exp); 329 setElement(result, exp.element, exp);
327 } else if (exp is Conditional) { 330 } else if (exp is Conditional) {
328 precedence = CONDITIONAL; 331 precedence = CONDITIONAL;
329 result = new tree.Conditional( 332 result = new tree.Conditional(
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after
876 printStringChunk(chunk.previous), 879 printStringChunk(chunk.previous),
877 node); 880 node);
878 } else { 881 } else {
879 return node; 882 return node;
880 } 883 }
881 } 884 }
882 return printStringChunk(output.chunk); 885 return printStringChunk(output.chunk);
883 } 886 }
884 887
885 } 888 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698