We were only checking for unparameterized types if the raw type alone was instantiable. This patch checks for unparameterized types if the raw type or any of its subtypes are instantiable. Found by: rustyshelf Patch by: mmendez Review by: scottb git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1332 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java b/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java index c16edc9..20effd4 100644 --- a/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java +++ b/user/src/com/google/gwt/user/rebind/rpc/SerializableTypeOracleBuilder.java
@@ -990,10 +990,6 @@ isSpeculative)) { tic.setInstantiable(true); anySubtypes = true; - - if (!rawTypeOk) { - checkForUnparameterizedType(logger, classType); - } } // Speculatively check all subtypes. @@ -1011,7 +1007,16 @@ } } - if (!anySubtypes && !isSpeculative) { + if (anySubtypes) { + if (!rawTypeOk) { + /* + * There is at least one instantiable type and raw types are + * not allowed; check if this type is an unparameterized type. + */ + checkForUnparameterizedType(logger, classType); + } + } else if (!isSpeculative) { + // No instantiable types were found logger.log( getLogLevel(isSpeculative), "Type '"