OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 import '../closure.dart'; | 5 import '../closure.dart'; |
6 import '../common.dart'; | 6 import '../common.dart'; |
7 import '../compiler.dart' show Compiler; | 7 import '../compiler.dart' show Compiler; |
8 import '../constants/constant_system.dart'; | 8 import '../constants/constant_system.dart'; |
9 import '../constants/values.dart'; | 9 import '../constants/values.dart'; |
10 import '../dart_types.dart'; | 10 import '../dart_types.dart'; |
(...skipping 3208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3219 class HTypeInfoReadVariable extends HInstruction { | 3219 class HTypeInfoReadVariable extends HInstruction { |
3220 /// The type variable being read. | 3220 /// The type variable being read. |
3221 final TypeVariableType variable; | 3221 final TypeVariableType variable; |
3222 | 3222 |
3223 HTypeInfoReadVariable( | 3223 HTypeInfoReadVariable( |
3224 this.variable, HInstruction receiver, TypeMask instructionType) | 3224 this.variable, HInstruction receiver, TypeMask instructionType) |
3225 : super(<HInstruction>[receiver], instructionType) { | 3225 : super(<HInstruction>[receiver], instructionType) { |
3226 setUseGvn(); | 3226 setUseGvn(); |
3227 } | 3227 } |
3228 | 3228 |
3229 HInstruction get object => inputs.single; | |
3230 | |
3231 accept(HVisitor visitor) => visitor.visitTypeInfoReadVariable(this); | 3229 accept(HVisitor visitor) => visitor.visitTypeInfoReadVariable(this); |
3232 | 3230 |
3233 bool canThrow() => false; | 3231 bool canThrow() => false; |
3234 | 3232 |
3235 int typeCode() => HInstruction.TYPE_INFO_READ_VARIABLE_TYPECODE; | 3233 int typeCode() => HInstruction.TYPE_INFO_READ_VARIABLE_TYPECODE; |
3236 bool typeEquals(HInstruction other) => other is HTypeInfoReadVariable; | 3234 bool typeEquals(HInstruction other) => other is HTypeInfoReadVariable; |
3237 | 3235 |
3238 bool dataEquals(HTypeInfoReadVariable other) { | 3236 bool dataEquals(HTypeInfoReadVariable other) { |
3239 return variable.element == other.variable.element; | 3237 return variable.element == other.variable.element; |
3240 } | 3238 } |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3420 class HDynamicType extends HRuntimeType { | 3418 class HDynamicType extends HRuntimeType { |
3421 HDynamicType(DynamicType dartType, TypeMask instructionType) | 3419 HDynamicType(DynamicType dartType, TypeMask instructionType) |
3422 : super(const <HInstruction>[], dartType, instructionType); | 3420 : super(const <HInstruction>[], dartType, instructionType); |
3423 | 3421 |
3424 accept(HVisitor visitor) => visitor.visitDynamicType(this); | 3422 accept(HVisitor visitor) => visitor.visitDynamicType(this); |
3425 | 3423 |
3426 int typeCode() => HInstruction.DYNAMIC_TYPE_TYPECODE; | 3424 int typeCode() => HInstruction.DYNAMIC_TYPE_TYPECODE; |
3427 | 3425 |
3428 bool typeEquals(HInstruction other) => other is HDynamicType; | 3426 bool typeEquals(HInstruction other) => other is HDynamicType; |
3429 } | 3427 } |
OLD | NEW |