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

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: Formatting and copyright notice. 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 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
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.
4
1 library dart_tree_printer; 5 library dart_tree_printer;
2 6
3 import 'dart_printer.dart'; 7 import 'dart_printer.dart';
4 import '../tree/tree.dart' as tree; 8 import '../tree/tree.dart' as tree;
5 import '../scanner/scannerlib.dart'; 9 import '../scanner/scannerlib.dart';
6 import '../util/util.dart'; 10 import '../util/util.dart';
7 import '../dart2jslib.dart' as dart2js; 11 import '../dart2jslib.dart' as dart2js;
8 import '../util/characters.dart' as characters; 12 import '../util/characters.dart' as characters;
9 import '../elements/elements.dart' as elements; 13 import '../elements/elements.dart' as elements;
10 import '../dart_types.dart' as types; 14 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), 301 makeExp(exp.object, PRIMARY, beginStmt: beginStmt),
298 makeIdentifier(exp.methodName), 302 makeIdentifier(exp.methodName),
299 argList(exp.arguments.map(makeArgument))); 303 argList(exp.arguments.map(makeArgument)));
300 } else if (exp is CallNew) { 304 } else if (exp is CallNew) {
301 precedence = CALLEE; 305 precedence = CALLEE;
302 tree.Node selector = makeName(exp.type.name); 306 tree.Node selector = makeName(exp.type.name);
303 if (exp.type.typeArguments.length > 0) { 307 if (exp.type.typeArguments.length > 0) {
304 selector = new tree.TypeAnnotation( 308 selector = new tree.TypeAnnotation(
305 selector, 309 selector,
306 typeArgList(exp.type.typeArguments.map(makeType))); 310 typeArgList(exp.type.typeArguments.map(makeType)));
311 setType(selector, exp.dartType, exp);
307 } 312 }
308 if (exp.constructorName != null) { 313 if (exp.constructorName != null) {
309 selector = new tree.Send( 314 selector = new tree.Send(
310 selector, 315 selector,
311 makeIdentifier(exp.constructorName)); 316 makeIdentifier(exp.constructorName));
312 } 317 }
313 tree.Send send = new tree.Send( 318 tree.Send send = new tree.Send(
314 null, 319 null,
315 selector, 320 selector,
316 argList(exp.arguments.map(makeArgument))); 321 argList(exp.arguments.map(makeArgument)));
317 result = new tree.NewExpression( 322 result = new tree.NewExpression(
318 exp.isConst ? constToken : newToken, 323 exp.isConst ? constToken : newToken,
319 send); 324 send);
325 setType(result, exp.dartType, exp);
326 setElement(send, exp.constructor, exp);
320 } else if (exp is CallStatic) { 327 } else if (exp is CallStatic) {
321 precedence = CALLEE; 328 precedence = CALLEE;
322 result = new tree.Send( 329 result = new tree.Send(
323 makeName(exp.className), 330 makeName(exp.className),
324 makeIdentifier(exp.methodName), 331 makeIdentifier(exp.methodName),
325 argList(exp.arguments.map(makeArgument))); 332 argList(exp.arguments.map(makeArgument)));
326 setElement(result, exp.element, exp); 333 setElement(result, exp.element, exp);
327 } else if (exp is Conditional) { 334 } else if (exp is Conditional) {
328 precedence = CONDITIONAL; 335 precedence = CONDITIONAL;
329 result = new tree.Conditional( 336 result = new tree.Conditional(
(...skipping 546 matching lines...) Expand 10 before | Expand all | Expand 10 after
876 printStringChunk(chunk.previous), 883 printStringChunk(chunk.previous),
877 node); 884 node);
878 } else { 885 } else {
879 return node; 886 return node;
880 } 887 }
881 } 888 }
882 return printStringChunk(output.chunk); 889 return printStringChunk(output.chunk);
883 } 890 }
884 891
885 } 892 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698