### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core.tests.compiler Index: src/org/eclipse/jdt/core/tests/compiler/parser/JavadocCompletionParserTest.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/parser/JavadocCompletionParserTest.java,v retrieving revision 1.7 diff -u -r1.7 JavadocCompletionParserTest.java --- src/org/eclipse/jdt/core/tests/compiler/parser/JavadocCompletionParserTest.java 5 Jan 2006 08:16:55 -0000 1.7 +++ src/org/eclipse/jdt/core/tests/compiler/parser/JavadocCompletionParserTest.java 10 Jan 2006 09:59:55 -0000 @@ -11,6 +11,7 @@ package org.eclipse.jdt.core.tests.compiler.parser; import java.util.Locale; +import java.util.Map; import java.util.StringTokenizer; import junit.framework.Test; @@ -41,6 +42,7 @@ } CompletionJavadoc javadoc; + String sourceLevel; public JavadocCompletionParserTest(String testName) { super(testName); @@ -61,6 +63,7 @@ */ protected void setUp() throws Exception { super.setUp(); + this.sourceLevel = null; } protected void assertCompletionNodeResult(String source, String expected) { @@ -82,7 +85,14 @@ actual ); } - +protected Map getCompilerOptions() { + Map options = super.getCompilerOptions(); + if (this.sourceLevel == null) { + return options; + } + options.put(CompilerOptions.OPTION_Source, this.sourceLevel); + return options; +} protected void verifyCompletionInJavadoc(String source, String after) { CompilerOptions options = new CompilerOptions(getCompilerOptions()); CompletionParser parser = new CompletionParser(new ProblemReporter(DefaultErrorHandlingPolicies.proceedWithAllProblems(), @@ -283,6 +293,21 @@ verifyCompletionInJavadoc(source, "@"); verifyAllTagsCompletion(); } +/** + * @bug [javadoc][assist] @linkplain no longer proposed when 1.4 compliance is used + * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=123096" + */ +public void test008() { + this.sourceLevel = CompilerOptions.VERSION_1_3; + String source = "package javadoc;\n" + + "/**\n" + + " * Completion on empty tag name:\n" + + " * @\n" + + " */\n" + + "public class Test {}\n"; + verifyCompletionInJavadoc(source, "@"); + verifyAllTagsCompletion(); +} /** * @tests Tests to verify completion node flags #P org.eclipse.jdt.core Index: compiler/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java,v retrieving revision 1.52 diff -u -r1.52 AbstractCommentParser.java --- compiler/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java 29 Nov 2005 08:31:20 -0000 1.52 +++ compiler/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java 10 Jan 2006 09:59:59 -0000 @@ -47,6 +47,7 @@ // Options public boolean checkDocComment = false; public boolean reportProblems; + protected long complianceLevel; protected long sourceLevel; // Results @@ -100,6 +101,7 @@ if (sourceParser != null) { this.checkDocComment = this.sourceParser.options.docCommentSupport; this.sourceLevel = this.sourceParser.options.sourceLevel; + this.complianceLevel = this.sourceParser.options.complianceLevel; } } Index: codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionJavadocParser.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionJavadocParser.java,v retrieving revision 1.18 diff -u -r1.18 CompletionJavadocParser.java --- codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionJavadocParser.java 6 Jan 2006 12:35:14 -0000 1.18 +++ codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionJavadocParser.java 10 Jan 2006 09:59:58 -0000 @@ -278,7 +278,7 @@ * Init tags arrays for current source level. */ private void initLevelTags() { - int level = ((int)(this.sourceLevel >>> 16)) - ClassFileConstants.MAJOR_VERSION_1_1 + 1; + int level = ((int)(this.complianceLevel >>> 16)) - ClassFileConstants.MAJOR_VERSION_1_1 + 1; // Init block tags this.levelTags[BLOCK_IDX] = new char[BLOCK_ALL_TAGS_LENGTH][]; this.levelTagsLength[BLOCK_IDX] = 0;