Author: [email protected]
Date: Tue Jun 23 12:53:37 2009
New Revision: 5614
Modified:
changes/jat/ihm/dev/core/src/com/google/gwt/core/ext/typeinfo/JParameterizedType.java
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/JavaBinaryOracleImpl.java
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/asm/ResolveParameterizedType.java
Log:
Fix generic type handling in another case where the signature omits the
type parameter, handle the case where there are no binary resources found.
Modified:
changes/jat/ihm/dev/core/src/com/google/gwt/core/ext/typeinfo/JParameterizedType.java
==============================================================================
---
changes/jat/ihm/dev/core/src/com/google/gwt/core/ext/typeinfo/JParameterizedType.java
(original)
+++
changes/jat/ihm/dev/core/src/com/google/gwt/core/ext/typeinfo/JParameterizedType.java
Tue Jun 23 12:53:37 2009
@@ -99,7 +99,8 @@
});
this.typeArgs = Lists.create(typeArgs);
- assert (this.typeArgs.indexOf(null) == -1);
+ assert (this.typeArgs.indexOf(null) == -1)
+ : "Unresolved typeArg creating JParameterizedType from " +
baseType;
// NOTE: Can't perform substitutions until we are done building
}
Modified:
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/JavaBinaryOracleImpl.java
==============================================================================
---
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/JavaBinaryOracleImpl.java
(original)
+++
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/JavaBinaryOracleImpl.java
Tue Jun 23 12:53:37 2009
@@ -248,9 +248,9 @@
private Map<String, JavaBinary> binaryMap = new HashMap<String,
JavaBinary>();
private Set<String> classNames = new HashSet<String>();
- private Set<JavaBinary> exposedBinaries;
- private Map<String, JavaBinary> exposedBinaryMap;
- private Set<String> exposedClassNames;
+ private Set<JavaBinary> exposedBinaries = Collections.emptySet();
+ private Map<String, JavaBinary> exposedBinaryMap =
Collections.emptyMap();
+ private Set<String> exposedClassNames = Collections.emptySet();
private Set<Resource> cachedResources = Collections.emptySet();
Modified:
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/asm/ResolveParameterizedType.java
==============================================================================
---
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/asm/ResolveParameterizedType.java
(original)
+++
changes/jat/ihm/dev/core/src/com/google/gwt/dev/javac/asm/ResolveParameterizedType.java
Tue Jun 23 12:53:37 2009
@@ -199,7 +199,8 @@
JGenericType genericType = type.isGenericType();
if (genericType != null) {
int actual = typeArgs.length;
- int expected = genericType.getTypeParameters().length;
+ JTypeParameter[] typeParams = genericType.getTypeParameters();
+ int expected = typeParams.length;
if (actual == 0 && expected > 0) {
// If no type parameters were supplied, this is a raw type usage.
type = genericType.getRawType();
@@ -226,11 +227,25 @@
JClassType[] outerArgs = null;
JGenericType genericEncGeneric = genericEnc.isGenericType();
if (genericEncGeneric != null) {
- JTypeParameter[] typeParams =
genericEncGeneric.getTypeParameters();
- int n = typeParams.length;
+ JTypeParameter[] encTypeParams =
genericEncGeneric.getTypeParameters();
+ int n = encTypeParams.length;
outerArgs = new JClassType[n];
for (int i = 0; i < n; ++i) {
- outerArgs[i] = lookup.lookup(typeParams[i].getName());
+ outerArgs[i] = lookup.lookup(encTypeParams[i].getName());
+ if (outerArgs[i] == null) {
+ // check to see if our current type has a parameter of the
same
+ // name, and use it if so.
+ for (int j = 0; j < expected; ++j) {
+ if
(typeParams[j].getName().equals(encTypeParams[j].getName())) {
+ outerArgs[i] = typeArgs[j];
+ break;
+ }
+ }
+ }
+ assert outerArgs[i] != null
+ : "Unable to resolve type parameter "
+ + encTypeParams[i].getName() + " in enclosing type "
+ + genericEnc + " of type " + genericType;
}
}
outer = (JClassType) resolveGeneric(genericEnc, null, outerArgs);
--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---