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

Side by Side Diff: pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart

Issue 1182053010: Revert "Split TypedSelector into Selector and TypeMask." (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 library dart2js.ir_nodes; 4 library dart2js.ir_nodes;
5 5
6 import '../constants/expressions.dart'; 6 import '../constants/expressions.dart';
7 import '../constants/values.dart' as values show ConstantValue; 7 import '../constants/values.dart' as values show ConstantValue;
8 import '../dart_types.dart' show DartType, InterfaceType, TypeVariableType; 8 import '../dart_types.dart' show DartType, InterfaceType, TypeVariableType;
9 import '../elements/elements.dart'; 9 import '../elements/elements.dart';
10 import '../io/source_information.dart' show SourceInformation; 10 import '../io/source_information.dart' show SourceInformation;
11 import '../types/types.dart' show TypeMask;
12 import '../universe/universe.dart' show Selector, SelectorKind; 11 import '../universe/universe.dart' show Selector, SelectorKind;
13 12
14 import 'builtin_operator.dart'; 13 import 'builtin_operator.dart';
15 export 'builtin_operator.dart'; 14 export 'builtin_operator.dart';
16 15
17 abstract class Node { 16 abstract class Node {
18 /// A pointer to the parent node. Is null until set by optimization passes. 17 /// A pointer to the parent node. Is null until set by optimization passes.
19 Node parent; 18 Node parent;
20 19
21 accept(Visitor visitor); 20 accept(Visitor visitor);
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
264 /// 263 ///
265 /// The [selector] records the names of named arguments. The value of named 264 /// The [selector] records the names of named arguments. The value of named
266 /// arguments occur at the end of the [arguments] list, in normalized order. 265 /// arguments occur at the end of the [arguments] list, in normalized order.
267 /// 266 ///
268 /// Discussion: 267 /// Discussion:
269 /// If the [selector] is a [TypedSelector], the type information contained 268 /// If the [selector] is a [TypedSelector], the type information contained
270 /// there is used by optimization passes. This is likely to change. 269 /// there is used by optimization passes. This is likely to change.
271 class InvokeMethod extends Expression implements Invoke { 270 class InvokeMethod extends Expression implements Invoke {
272 Reference<Primitive> receiver; 271 Reference<Primitive> receiver;
273 Selector selector; 272 Selector selector;
274 TypeMask mask;
275 final List<Reference<Primitive>> arguments; 273 final List<Reference<Primitive>> arguments;
276 final Reference<Continuation> continuation; 274 final Reference<Continuation> continuation;
277 final SourceInformation sourceInformation; 275 final SourceInformation sourceInformation;
278 276
279 /// If true, it is known that the receiver cannot be `null`. 277 /// If true, it is known that the receiver cannot be `null`.
280 /// 278 ///
281 /// This field is `null` until initialized by optimization phases. 279 /// This field is `null` until initialized by optimization phases.
282 bool receiverIsNotNull; 280 bool receiverIsNotNull;
283 281
284 InvokeMethod(Primitive receiver, 282 InvokeMethod(Primitive receiver,
285 this.selector, 283 this.selector,
286 this.mask,
287 List<Primitive> arguments, 284 List<Primitive> arguments,
288 Continuation continuation, 285 Continuation continuation,
289 {this.sourceInformation}) 286 {this.sourceInformation})
290 : this.receiver = new Reference<Primitive>(receiver), 287 : this.receiver = new Reference<Primitive>(receiver),
291 this.arguments = _referenceList(arguments), 288 this.arguments = _referenceList(arguments),
292 this.continuation = new Reference<Continuation>(continuation); 289 this.continuation = new Reference<Continuation>(continuation);
293 290
294 accept(Visitor visitor) => visitor.visitInvokeMethod(this); 291 accept(Visitor visitor) => visitor.visitInvokeMethod(this);
295 } 292 }
296 293
(...skipping 962 matching lines...) Expand 10 before | Expand all | Expand 10 after
1259 const RemovalVisitor(); 1256 const RemovalVisitor();
1260 1257
1261 processReference(Reference reference) { 1258 processReference(Reference reference) {
1262 reference.unlink(); 1259 reference.unlink();
1263 } 1260 }
1264 1261
1265 static void remove(Node node) { 1262 static void remove(Node node) {
1266 (const RemovalVisitor()).visit(node); 1263 (const RemovalVisitor()).visit(node);
1267 } 1264 }
1268 } 1265 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart ('k') | pkg/compiler/lib/src/cps_ir/type_propagation.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698