### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core.tests.compiler Index: src/org/eclipse/jdt/core/tests/compiler/parser/GenericsCompletionParserTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/GenericsCompletionParserTest.java,v retrieving revision 1.29 diff -u -r1.29 GenericsCompletionParserTest.java --- src/org/eclipse/jdt/core/tests/compiler/parser/GenericsCompletionParserTest.java 28 Mar 2007 08:26:43 -0000 1.29 +++ src/org/eclipse/jdt/core/tests/compiler/parser/GenericsCompletionParserTest.java 26 Jul 2007 11:46:58 -0000 @@ -10800,4 +10800,77 @@ expectedReplacedSource, "full ast"); } +//https://bugs.eclipse.org/bugs/show_bug.cgi?id=197400 +public void test0214_Diet() { + + String str = + "public class X {\n" + + " static {\n" + + " <>\n" + + " }" + + "}\n"; + + String completeBehind = "<"; + int cursorLocation = str.lastIndexOf("<") + completeBehind.length() - 1; + String expectedCompletionNodeToString = ""; + String expectedParentNodeToString = ""; + String completionIdentifier = ""; + String expectedReplacedSource = ""; + String expectedUnitDisplayString = + "public class X {\n" + + " static {\n" + + " }\n" + + " () {\n" + + " }\n" + + " public X() {\n" + + " }\n" + + "}\n"; + + checkDietParse( + str.toCharArray(), + cursorLocation, + expectedCompletionNodeToString, + expectedParentNodeToString, + expectedUnitDisplayString, + completionIdentifier, + expectedReplacedSource, + "diet ast"); +} +//https://bugs.eclipse.org/bugs/show_bug.cgi?id=197400 +public void test0214_Method() { + + String str = + "public class X {\n" + + " static {\n" + + " <>\n" + + " }" + + "}\n"; + + String completeBehind = "<"; + int cursorLocation = str.lastIndexOf("<") + completeBehind.length() - 1; + String expectedCompletionNodeToString = ""; + String expectedParentNodeToString = ""; + String completionIdentifier = ""; + String expectedReplacedSource = ""; + // we are not in a constructor then the completion node isn't attached to the ast + String expectedUnitDisplayString = + "public class X {\n" + + " static {\n" + + " }\n" + + " () {\n" + + " }\n" + + " public X() {\n" + + " }\n" + + "}\n"; + + checkMethodParse( + str.toCharArray(), + cursorLocation, + expectedCompletionNodeToString, + expectedParentNodeToString, + expectedUnitDisplayString, + completionIdentifier, + expectedReplacedSource, + "full ast"); +} } #P org.eclipse.jdt.core Index: codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java,v retrieving revision 1.180 diff -u -r1.180 CompletionParser.java --- codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java 11 Jul 2007 13:40:50 -0000 1.180 +++ codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java 26 Jul 2007 11:47:00 -0000 @@ -987,7 +987,8 @@ } else { currentElement = currentElement.add(ref, 0); } - } else if (currentElement.enclosingMethod().methodDeclaration.isConstructor()) { + } else if (currentElement.enclosingMethod() != null && + currentElement.enclosingMethod().methodDeclaration.isConstructor()) { currentElement = currentElement.add((TypeReference)node, 0); } }