Index: compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.java,v --- compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.java 26 Sep 2006 16:28:34 -0000 1.36 +++ compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedQualifiedTypeReference.java 26 Sep 2006 17:04:44 -0000 @@ -124,8 +124,8 @@ this.resolvedType = (ReferenceBinding) binding; reportInvalidType(scope); // be resilient, still attempt resolving arguments - if (binding instanceof ProblemReferenceBinding) { - TypeReference[] args = this.typeArguments[((ProblemReferenceBinding) binding).compoundName.length - 1]; + for (int i = 0, max = this.tokens.length; i < max; i++) { + TypeReference[] args = this.typeArguments[i]; if (args != null) { int argLength = args.length; for (int j = 0; j < argLength; j++) { @@ -149,18 +149,20 @@ if (!(this.resolvedType.isValidBinding())) { reportInvalidType(scope); // be resilient, still attempt resolving arguments - TypeReference[] args = this.typeArguments[i]; - if (args != null) { - int argLength = args.length; - for (int j = 0; j < argLength; j++) { - TypeReference typeArgument = args[j]; - if (isClassScope) { - typeArgument.resolveType((ClassScope) scope); - } else { - typeArgument.resolveType((BlockScope) scope); - } - } - } + for (int j = i; j < max; j++) { + TypeReference[] args = this.typeArguments[j]; + if (args != null) { + int argLength = args.length; + for (int k = 0; k < argLength; k++) { + TypeReference typeArgument = args[k]; + if (isClassScope) { + typeArgument.resolveType((ClassScope) scope); + } else { + typeArgument.resolveType((BlockScope) scope); + } + } + } + } return null; } ReferenceBinding currentType = (ReferenceBinding) this.resolvedType;