Index: pkg/compiler/lib/src/ssa/nodes.dart |
diff --git a/pkg/compiler/lib/src/ssa/nodes.dart b/pkg/compiler/lib/src/ssa/nodes.dart |
index 371d76df1e653c4402ef67df2ad3c0b630e2d573..5ac6bc12b3aa69a31aa6ed57ab09e960ebe45fb2 100644 |
--- a/pkg/compiler/lib/src/ssa/nodes.dart |
+++ b/pkg/compiler/lib/src/ssa/nodes.dart |
@@ -1211,8 +1211,8 @@ abstract class HInstruction implements Spannable { |
// These methods should be overwritten by instructions that |
// participate in global value numbering. |
int typeCode() => HInstruction.UNDEFINED_TYPECODE; |
- bool typeEquals(HInstruction other) => false; |
- bool dataEquals(HInstruction other) => false; |
+ bool typeEquals(covariant HInstruction other) => false; |
+ bool dataEquals(covariant HInstruction other) => false; |
accept(HVisitor visitor); |
@@ -1695,11 +1695,11 @@ abstract class HInvokeDynamic extends HInvoke { |
HInvokeDynamic(Selector selector, this.mask, this.element, |
List<HInstruction> inputs, TypeMask type, |
[bool isIntercepted = false]) |
- : super(inputs, type), |
- this.selector = selector, |
+ : this.selector = selector, |
specializer = isIntercepted |
? InvokeDynamicSpecializer.lookupSpecializer(selector) |
- : const InvokeDynamicSpecializer(); |
+ : const InvokeDynamicSpecializer(), |
+ super(inputs, type); |
toString() => 'invoke dynamic: selector=$selector, mask=$mask'; |
HInstruction get receiver => inputs[0]; |
HInstruction getDartReceiver(ClosedWorld closedWorld) { |
@@ -2512,7 +2512,7 @@ class HThis extends HParameterValue { |
HThis(ThisLocal element, TypeMask type) : super(element, type); |
ThisLocal get sourceElement => super.sourceElement; |
- void set sourceElement(ThisLocal local) { |
+ void set sourceElement(covariant ThisLocal local) { |
super.sourceElement = local; |
} |
@@ -3001,8 +3001,8 @@ class HTypeConversion extends HCheck { |
HTypeConversion.withTypeRepresentation(this.typeExpression, this.kind, |
TypeMask type, HInstruction input, HInstruction typeRepresentation) |
: checkedType = type, |
- super(<HInstruction>[input, typeRepresentation], type), |
- receiverTypeCheckSelector = null { |
+ receiverTypeCheckSelector = null, |
+ super(<HInstruction>[input, typeRepresentation], type) { |
assert(!typeExpression.isTypedef); |
sourceElement = input.sourceElement; |
} |
@@ -3010,8 +3010,8 @@ class HTypeConversion extends HCheck { |
HTypeConversion.viaMethodOnType(this.typeExpression, this.kind, TypeMask type, |
HInstruction reifiedType, HInstruction input) |
: checkedType = type, |
- super(<HInstruction>[reifiedType, input], type), |
- receiverTypeCheckSelector = null { |
+ receiverTypeCheckSelector = null, |
+ super(<HInstruction>[reifiedType, input], type) { |
// This form is currently used only for function types. |
assert(typeExpression.isFunctionType); |
assert(kind == CHECKED_MODE_CHECK || kind == CAST_TYPE_CHECK); |