| 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 021ec432079972abe10a3e3ba7c2c660ff7fe7db..14faa69525a74218929789f859a36ec793aab128 100644
|
| --- a/compiler/java/com/google/dart/compiler/type/Types.java
|
| +++ b/compiler/java/com/google/dart/compiler/type/Types.java
|
| @@ -213,6 +213,10 @@ public class Types {
|
| intf = asSupertype(interfaceType, intf);
|
| types.addAll(getSuperTypes(intf));
|
| }
|
| + for (InterfaceType mixin : interfaceType.getElement().getMixins()) {
|
| + mixin = asSupertype(interfaceType, mixin);
|
| + types.add(mixin);
|
| + }
|
| if (!interfaceType.getElement().isInterface()) {
|
| InterfaceType superClass = interfaceType.getElement().getSupertype();
|
| superClass= asSupertype(interfaceType, superClass);
|
| @@ -545,13 +549,19 @@ public class Types {
|
| }
|
| }
|
| // interfaces
|
| - for (InterfaceType intrface : tElement.getInterfaces()) {
|
| - InterfaceType result = checkedAsInstanceOf(asSupertype(ti, intrface), element,
|
| + for (InterfaceType intf : tElement.getInterfaces()) {
|
| + InterfaceType result = checkedAsInstanceOf(asSupertype(ti, intf), element,
|
| variablesReferenced, checkedTypes);
|
| if (result != null) {
|
| return result;
|
| }
|
| }
|
| + // mixins
|
| + for (InterfaceType mixin : tElement.getMixins()) {
|
| + if (mixin.getElement().equals(element)) {
|
| + return asSupertype(ti, mixin);
|
| + }
|
| + }
|
| // no
|
| return null;
|
| }
|
|
|