| Index: pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
|
| diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
|
| index 0c28fa4cc9a53283df59ac6913a62231fc5a9492..19b0543c179877ab2a4d7ba2c7061d8822b6f116 100644
|
| --- a/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
|
| +++ b/pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart
|
| @@ -589,30 +589,24 @@ class TypeTest extends Primitive {
|
| Reference<Primitive> value;
|
| final DartType dartType;
|
|
|
| - /// If [dartType] is an [InterfaceType], this holds the internal
|
| - /// representation of the type arguments to [dartType]. Since these may
|
| - /// reference type variables from the enclosing class, they are not constant.
|
| + /// If [type] is an [InterfaceType], this holds the internal representation of
|
| + /// the type arguments to [type]. Since these may reference type variables
|
| + /// from the enclosing class, they are not constant.
|
| ///
|
| - /// If [dartType] is a [TypeVariableType], this is a singleton list with the
|
| - /// internal representation of the type held in that type variable.
|
| + /// If [type] is a [TypeVariableType], this is a singleton list with
|
| + /// the internal representation of the type held in that type variable.
|
| ///
|
| - /// If [dartType] is a [FunctionType], this is a singleton list with the
|
| + /// If [type] is a [FunctionType], this is a singleton list with the
|
| /// internal representation of that type,
|
| ///
|
| /// Otherwise the list is empty.
|
| final List<Reference<Primitive>> typeArguments;
|
|
|
| - /// The Interceptor for [value]. May be `null` if the test can be done
|
| - /// without an interceptor. May be the same as [value] after self-interceptor
|
| - /// optimization.
|
| - // TODO(24523): Remove this field.
|
| - Reference<Primitive> interceptor;
|
| -
|
| TypeTest(Primitive value,
|
| this.dartType,
|
| List<Primitive> typeArguments)
|
| - : this.value = new Reference<Primitive>(value),
|
| - this.typeArguments = _referenceList(typeArguments);
|
| + : this.value = new Reference<Primitive>(value),
|
| + this.typeArguments = _referenceList(typeArguments);
|
|
|
| accept(Visitor visitor) => visitor.visitTypeTest(this);
|
|
|
| @@ -620,22 +614,6 @@ class TypeTest extends Primitive {
|
| bool get isSafeForReordering => true;
|
| }
|
|
|
| -/// An "is" type test for a raw type, performed by testing a flag property.
|
| -///
|
| -/// Returns `true` if [interceptor] is for [dartType].
|
| -class TypeTestViaFlag extends Primitive {
|
| - Reference<Primitive> interceptor;
|
| - final DartType dartType;
|
| -
|
| - TypeTestViaFlag(Primitive interceptor, this.dartType)
|
| - : this.interceptor = new Reference<Primitive>(interceptor);
|
| -
|
| - accept(Visitor visitor) => visitor.visitTypeTestViaFlag(this);
|
| -
|
| - bool get isSafeForElimination => true;
|
| - bool get isSafeForReordering => true;
|
| -}
|
| -
|
| /// An "as" type cast.
|
| ///
|
| /// If [value] is `null` or is an instance of [type], [continuation] is invoked
|
| @@ -1393,7 +1371,6 @@ abstract class Visitor<T> {
|
| T visitTypeExpression(TypeExpression node);
|
| T visitCreateInvocationMirror(CreateInvocationMirror node);
|
| T visitTypeTest(TypeTest node);
|
| - T visitTypeTestViaFlag(TypeTestViaFlag node);
|
| T visitApplyBuiltinOperator(ApplyBuiltinOperator node);
|
| T visitApplyBuiltinMethod(ApplyBuiltinMethod node);
|
| T visitGetLength(GetLength node);
|
| @@ -1519,16 +1496,9 @@ class LeafVisitor implements Visitor {
|
| visitTypeTest(TypeTest node) {
|
| processTypeTest(node);
|
| processReference(node.value);
|
| - if (node.interceptor != null) processReference(node.interceptor);
|
| node.typeArguments.forEach(processReference);
|
| }
|
|
|
| - processTypeTestViaFlag(TypeTestViaFlag node) {}
|
| - visitTypeTestViaFlag(TypeTestViaFlag node) {
|
| - processTypeTestViaFlag(node);
|
| - processReference(node.interceptor);
|
| - }
|
| -
|
| processSetMutable(SetMutable node) {}
|
| visitSetMutable(SetMutable node) {
|
| processSetMutable(node);
|
|
|