Index: sdk/lib/_internal/compiler/implementation/ssa/optimize.dart |
=================================================================== |
--- sdk/lib/_internal/compiler/implementation/ssa/optimize.dart (revision 19551) |
+++ sdk/lib/_internal/compiler/implementation/ssa/optimize.dart (working copy) |
@@ -541,7 +541,10 @@ |
} else { |
return graph.addConstantBool(false, constantSystem); |
} |
- // TODO(karlklose): remove the hasTypeArguments check. |
+ // Wee need the [:hasTypeArguments:] check because we don't have |
+ // the notion of generics in the backend. For example, [:this:] in |
+ // a class [:A<T>:], is currently always considered to have the |
+ // raw type. |
} else if (expressionType.isUseful() |
&& !expressionType.canBeNull() |
&& !RuntimeTypeInformation.hasTypeArguments(type)) { |
@@ -549,7 +552,7 @@ |
if (receiverType != null) { |
if (!receiverType.isMalformed && |
!type.isMalformed && |
- compiler.types.isSubtype(receiverType, type)) { |
+ compiler.types.isSubtype(receiverType.element.rawType, type)) { |
return graph.addConstantBool(true, constantSystem); |
} else if (expressionType.isExact()) { |
return graph.addConstantBool(false, constantSystem); |