Index: codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java,v retrieving revision 1.137 diff -u -r1.137 CompletionParser.java --- codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java 2 Jun 2005 17:15:25 -0000 1.137 +++ codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java 3 Jun 2005 11:01:20 -0000 @@ -1226,8 +1226,10 @@ // creates an allocation expression CompletionOnQualifiedAllocationExpression allocExpr = new CompletionOnQualifiedAllocationExpression(); allocExpr.arguments = arguments; - pushOnGenericsLengthStack(0); - pushOnGenericsIdentifiersLengthStack(identifierLengthStack[identifierLengthPtr]); + if(this.genericsLengthPtr < 0) { + pushOnGenericsLengthStack(0); + pushOnGenericsIdentifiersLengthStack(identifierLengthStack[identifierLengthPtr]); + } allocExpr.type = super.getTypeReference(0); // we don't want a completion node here, so call super if (invocType == QUALIFIED_ALLOCATION) { allocExpr.enclosingInstance = this.expressionStack[qualifierExprPtr]; @@ -2496,6 +2498,16 @@ this.qualifier = -1; this.invocationType = NO_RECEIVER; break; + case TokenNameGREATER: // explicit constructor invocation, eg. Fred[(]1, 2) + case TokenNameRIGHT_SHIFT: // or fred>[(]1, 2) + case TokenNameUNSIGNED_RIGHT_SHIFT: //or Fred>>[(]1, 2) + if (topKnownElementKind(COMPLETION_OR_ASSIST_PARSER) == K_SELECTOR) { + this.pushOnElementStack(K_SELECTOR_INVOCATION_TYPE, (this.invocationType == QUALIFIED_ALLOCATION) ? QUALIFIED_ALLOCATION : ALLOCATION); + this.pushOnElementStack(K_SELECTOR_QUALIFIER, this.qualifier); + } + this.qualifier = -1; + this.invocationType = NO_RECEIVER; + break; } break; case TokenNameLBRACE: Index: codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java,v retrieving revision 1.67 diff -u -r1.67 AssistParser.java --- codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java 23 Apr 2005 22:20:02 -0000 1.67 +++ codeassist/org/eclipse/jdt/internal/codeassist/impl/AssistParser.java 3 Jun 2005 11:01:20 -0000 @@ -675,6 +675,13 @@ case TokenNamesuper: // explicit constructor invocation, eg. super(1, 2) this.pushOnElementStack(K_SELECTOR, SUPER_CONSTRUCTOR); break; + case TokenNameGREATER: // explicit constructor invocation, eg. Fred[(]1, 2) + case TokenNameRIGHT_SHIFT: // or fred>[(]1, 2) + case TokenNameUNSIGNED_RIGHT_SHIFT: //or Fred>>[(]1, 2) + if(this.identifierPtr > -1) { + this.pushOnElementStack(K_SELECTOR, this.identifierPtr); + } + break; } break; }