| Index: compiler/java/com/google/dart/compiler/resolver/SupertypeResolver.java
|
| diff --git a/compiler/java/com/google/dart/compiler/resolver/SupertypeResolver.java b/compiler/java/com/google/dart/compiler/resolver/SupertypeResolver.java
|
| index 6af78affb2dada74c87410f12940b6059595aefa..0037be543d17bfefc94822b13fd52d9c382bc4a6 100644
|
| --- a/compiler/java/com/google/dart/compiler/resolver/SupertypeResolver.java
|
| +++ b/compiler/java/com/google/dart/compiler/resolver/SupertypeResolver.java
|
| @@ -53,7 +53,7 @@ public class SupertypeResolver {
|
| supertype = null;
|
| }
|
| } else {
|
| - supertype = classContext.resolveClass(superclassNode, false);
|
| + supertype = classContext.resolveClass(superclassNode, false, false);
|
| supertype.getClass(); // Quick null check.
|
| }
|
| if (supertype != null) {
|
| @@ -66,15 +66,17 @@ public class SupertypeResolver {
|
| assert classElement.getName().equals("Object") : classElement;
|
| }
|
|
|
| - InterfaceType defaultClass = classContext.resolveClass(node.getDefaultClass(), false);
|
| - if (defaultClass != null) {
|
| - Elements.setDefaultClass(classElement, defaultClass);
|
| - node.getDefaultClass().setType(defaultClass);
|
| + if (node.getDefaultClass() != null) {
|
| + Element defaultClassElement = classContext.resolveName(node.getDefaultClass().getExpression());
|
| + if (ElementKind.of(defaultClassElement).equals(ElementKind.CLASS)) {
|
| + Elements.setDefaultClass(classElement, (InterfaceType)defaultClassElement.getType());
|
| + node.getDefaultClass().setType(defaultClassElement.getType());
|
| + }
|
| }
|
|
|
| if (node.getInterfaces() != null) {
|
| for (DartTypeNode cls : node.getInterfaces()) {
|
| - Elements.addInterface(classElement, classContext.resolveInterface(cls, false));
|
| + Elements.addInterface(classElement, classContext.resolveInterface(cls, false, false));
|
| }
|
| }
|
|
|
| @@ -88,6 +90,7 @@ public class SupertypeResolver {
|
| classContext.resolveType(
|
| boundNode,
|
| false,
|
| + false,
|
| ResolverErrorCode.NO_SUCH_TYPE);
|
| boundNode.setType(bound);
|
| } else {
|
|
|