Index: compiler/java/com/google/dart/compiler/type/Types.java |
diff --git a/compiler/java/com/google/dart/compiler/type/Types.java b/compiler/java/com/google/dart/compiler/type/Types.java |
index 163e862baf401368ac7a14011c9c68218c1b73d6..83dfd691dab34e7ab91ba02de0aabe727d143eed 100644 |
--- a/compiler/java/com/google/dart/compiler/type/Types.java |
+++ b/compiler/java/com/google/dart/compiler/type/Types.java |
@@ -163,6 +163,13 @@ public class Types { |
if (isSubtypeOfInterface(t, s)) { |
return true; |
} |
+ if (t.getKind() == TypeKind.VARIABLE) { |
+ Type bound = ((TypeVariable) t).getTypeVariableElement().getBound(); |
+ if (bound != null) { |
+ return isSubtype(bound, s); |
+ } |
+ return true; |
+ } |
if (t.getKind().equals(TypeKind.FUNCTION_ALIAS)) { |
return isSubtypeOfFunction(asFunctionType((FunctionAliasType) t), asFunctionType(s)); |
} |