fix CCE and other failures in GenericsRegressionTests:
- argLength can now also occur if isDiamond, in which case we must keep going a little longer.
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java
index 6def1cb..4c92765 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/ParameterizedSingleTypeReference.java
@@ -336,10 +336,6 @@
 			if (((ClassScope) scope).detectHierarchyCycle(currentOriginal, this))
 				return null;
 		}
-//{ObjectTeams: already done?
-		if (argLength == 0)
-			return this.resolvedType;
-// SH}
 
 		final boolean isDiamond = (this.bits & ASTNode.IsDiamond) != 0;
 		TypeVariableBinding[] typeVariables = currentOriginal.typeVariables();
@@ -372,6 +368,10 @@
 				return null;
 			}
 		}
+//{ObjectTeams: already done?
+		if (!isDiamond && argLength == 0)
+			return this.resolvedType;
+// SH}
 
     	ParameterizedTypeBinding parameterizedType = scope.environment().createParameterizedType(currentOriginal, argTypes, enclosingType);
 		// check argument type compatibility for non <> cases - <> case needs no bounds check, we will scream foul if needed during inference.