| 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 404712705bb0c122126c55007452648534a6164b..0c2dad12f8b250d37234edbdaa68e2bc2db6dbb4 100644
|
| --- a/compiler/java/com/google/dart/compiler/type/Types.java
|
| +++ b/compiler/java/com/google/dart/compiler/type/Types.java
|
| @@ -72,11 +72,14 @@ public class Types {
|
| if (interfaceType.getElement().isInterface()) {
|
| types.add(interfaceType);
|
| for (InterfaceType intf : interfaceType.getElement().getInterfaces()) {
|
| + intf = asSupertype(interfaceType, intf);
|
| types.addAll(getSuperTypes(intf));
|
| }
|
| } else {
|
| - for (InterfaceType st = interfaceType; st != null; st = st.getElement().getSupertype()) {
|
| + InterfaceType st = interfaceType;
|
| + while (st != null) {
|
| types.add(st);
|
| + st = asSupertype(st, st.getElement().getSupertype());
|
| }
|
| }
|
| }
|
| @@ -385,7 +388,7 @@ public class Types {
|
| }
|
| }
|
|
|
| - private InterfaceType asSupertype(InterfaceType type, InterfaceType supertype) {
|
| + private static InterfaceType asSupertype(InterfaceType type, InterfaceType supertype) {
|
| if (supertype == null) {
|
| return null;
|
| }
|
|
|