diff --git a/dev/core/src/com/google/gwt/dev/jjs/ast/JArrayType.java b/dev/core/src/com/google/gwt/dev/jjs/ast/JArrayType.java index d05cdc4d97e..df5ebad516d 100644 --- a/dev/core/src/com/google/gwt/dev/jjs/ast/JArrayType.java +++ b/dev/core/src/com/google/gwt/dev/jjs/ast/JArrayType.java @@ -58,6 +58,11 @@ public String getJsniSignatureName() { return "[" + elementType.getJsniSignatureName(); } + @Override + public JEnumType isEnumOrSubclass() { + return null; + } + public JType getLeafType() { if (leafType == null) { if (elementType instanceof JArrayType) { @@ -94,6 +99,16 @@ public boolean canBeImplementedExternally() { return getLeafType().canBeImplementedExternally(); } + @Override + public boolean isJsType() { + return false; + } + + @Override + public boolean isJsFunction() { + return false; + } + @Override public boolean isJsNative() { return getLeafType().isJsNative(); @@ -110,6 +125,11 @@ public boolean canBeReferencedExternally() { && !getLeafType().isJavaLangObject(); } + @Override + public boolean isJavaLangObject() { + return false; + } + @Override public boolean replaces(JType originalType) { return (originalType instanceof JArrayType) diff --git a/dev/core/src/com/google/gwt/dev/jjs/ast/JDeclaredType.java b/dev/core/src/com/google/gwt/dev/jjs/ast/JDeclaredType.java index 29d8d158edb..56d77c59414 100755 --- a/dev/core/src/com/google/gwt/dev/jjs/ast/JDeclaredType.java +++ b/dev/core/src/com/google/gwt/dev/jjs/ast/JDeclaredType.java @@ -365,6 +365,11 @@ public Iterable getMembers() { return Iterables.concat(fields, methods); } + @Override + public boolean isArrayType() { + return false; + } + @Override public boolean isJsType() { return isJsType; diff --git a/dev/core/src/com/google/gwt/dev/jjs/ast/JInterfaceType.java b/dev/core/src/com/google/gwt/dev/jjs/ast/JInterfaceType.java index 01f1c275c3d..be8f9c39a7a 100644 --- a/dev/core/src/com/google/gwt/dev/jjs/ast/JInterfaceType.java +++ b/dev/core/src/com/google/gwt/dev/jjs/ast/JInterfaceType.java @@ -76,6 +76,16 @@ public boolean isJsoType() { return false; } + @Override + public boolean isJavaLangObject() { + return false; + } + + @Override + public JEnumType isEnumOrSubclass() { + return null; + } + public boolean hasDefaultMethods() { assert !isExternal(); return Iterables.any(getMethods(), new Predicate() { diff --git a/dev/core/src/com/google/gwt/dev/jjs/ast/JPrimitiveType.java b/dev/core/src/com/google/gwt/dev/jjs/ast/JPrimitiveType.java index 9bcabb5950b..c13dae2bb59 100644 --- a/dev/core/src/com/google/gwt/dev/jjs/ast/JPrimitiveType.java +++ b/dev/core/src/com/google/gwt/dev/jjs/ast/JPrimitiveType.java @@ -74,6 +74,31 @@ public boolean canBeNull() { return false; } + @Override + public boolean isArrayType() { + return false; + } + + @Override + public boolean isJsType() { + return false; + } + + @Override + public boolean isJsFunction() { + return false; + } + + @Override + public boolean isJsNative() { + return false; + } + + @Override + public boolean canBeImplementedExternally() { + return false; + } + @Override public boolean canBeSubclass() { return false; @@ -98,6 +123,11 @@ public String getJsniSignatureName() { return signatureName; } + @Override + public JEnumType isEnumOrSubclass() { + return null; + } + public String getWrapperTypeName() { return wrapperTypeName; } @@ -117,6 +147,11 @@ public boolean canBeReferencedExternally() { return this != JPrimitiveType.LONG; } + @Override + public boolean isJavaLangObject() { + return false; + } + @Override public void traverse(JVisitor visitor, Context ctx) { if (visitor.visit(this, ctx)) { diff --git a/dev/core/src/com/google/gwt/dev/jjs/ast/JReferenceType.java b/dev/core/src/com/google/gwt/dev/jjs/ast/JReferenceType.java index 91075689cd9..8398ab320b3 100644 --- a/dev/core/src/com/google/gwt/dev/jjs/ast/JReferenceType.java +++ b/dev/core/src/com/google/gwt/dev/jjs/ast/JReferenceType.java @@ -40,6 +40,11 @@ public String getJsniSignatureName() { return "N"; } + @Override + public JEnumType isEnumOrSubclass() { + return null; + } + @Override public boolean isAbstract() { return false; @@ -55,11 +60,46 @@ public boolean isJsoType() { return false; } + @Override + public boolean isArrayType() { + return false; + } + @Override public boolean isNullType() { return true; } + @Override + public boolean isJsType() { + return false; + } + + @Override + public boolean isJsFunction() { + return false; + } + + @Override + public boolean isJsNative() { + return false; + } + + @Override + public boolean canBeImplementedExternally() { + return false; + } + + @Override + public boolean canBeReferencedExternally() { + return false; + } + + @Override + public boolean isJavaLangObject() { + return false; + } + @Override public void traverse(JVisitor visitor, Context ctx) { if (visitor.visit(this, ctx)) { @@ -145,11 +185,41 @@ public boolean isArrayType() { return ref.isArrayType(); } + @Override + public boolean isJsType() { + return ref.isJsType(); + } + + @Override + public boolean isJsFunction() { + return ref.isJsFunction(); + } + @Override public boolean isJsoType() { return ref.isJsoType(); } + @Override + public boolean isJsNative() { + return ref.isJsNative(); + } + + @Override + public boolean canBeImplementedExternally() { + return ref.canBeImplementedExternally(); + } + + @Override + public boolean canBeReferencedExternally() { + return ref.canBeReferencedExternally(); + } + + @Override + public boolean isJavaLangObject() { + return ref.isJavaLangObject(); + } + @Override public boolean isExternal() { return ref.isExternal(); diff --git a/dev/core/src/com/google/gwt/dev/jjs/ast/JType.java b/dev/core/src/com/google/gwt/dev/jjs/ast/JType.java index 82a40f51b46..a645b8bd4dd 100644 --- a/dev/core/src/com/google/gwt/dev/jjs/ast/JType.java +++ b/dev/core/src/com/google/gwt/dev/jjs/ast/JType.java @@ -62,9 +62,7 @@ public JType(SourceInfo info, String name) { */ public abstract boolean canBeNull(); - public boolean isArrayType() { - return false; - } + public abstract boolean isArrayType(); /** * Returns {@code true} if this is {@link JReferenceType.JNullType.INSTANCE}. @@ -73,29 +71,17 @@ public boolean isNullType() { return false; } - public boolean isJsType() { - return false; - } + public abstract boolean isJsType(); - public boolean isJsFunction() { - return false; - } + public abstract boolean isJsFunction(); - public boolean isJsNative() { - return false; - } + public abstract boolean isJsNative(); - public boolean canBeImplementedExternally() { - return false; - } + public abstract boolean canBeImplementedExternally(); - public boolean canBeReferencedExternally() { - return false; - } + public abstract boolean canBeReferencedExternally(); - public boolean isJavaLangObject() { - return false; - } + public abstract boolean isJavaLangObject(); /** * Returns {@code true} if this is a JavaScriptObject type. @@ -161,9 +147,7 @@ public String getPackageName() { * Returns the (closest) enum supertype if the type is a subclass of an enum; it returns * {@code this} if {@code this} is a {@link JEnumType} and {@code null} otherwise. */ - public JEnumType isEnumOrSubclass() { - return null; - } + public abstract JEnumType isEnumOrSubclass(); /** * Binary name of the type.