diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/ReorgCorrectionsSubProcessor.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/ReorgCorrectionsSubProcessor.java index db29c9bbdd..c3d991e537 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/ReorgCorrectionsSubProcessor.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/ReorgCorrectionsSubProcessor.java @@ -31,9 +31,7 @@ import org.eclipse.jdt.internal.corext.fix.UnusedCodeFixCore; import org.eclipse.jdt.internal.corext.refactoring.changes.RenameCompilationUnitChange; import org.eclipse.jdt.internal.corext.util.Messages; -import org.eclipse.jdt.internal.ui.fix.UnusedCodeCleanUp; -import org.eclipse.jdt.ui.text.java.IInvocationContext; -import org.eclipse.jdt.ui.text.java.IProblemLocation; +import org.eclipse.jdt.internal.ui.fix.UnusedCodeCleanUpCore; import org.eclipse.jdt.internal.ui.text.correction.IProposalRelevance; import org.eclipse.jdt.internal.ui.text.correction.ReorgCorrectionsBaseSubProcessor; import org.eclipse.jdt.internal.ui.text.correction.UnresolvedElementsBaseSubProcessor; @@ -43,6 +41,8 @@ import org.eclipse.jdt.ls.core.internal.corrections.CorrectionMessages; import org.eclipse.jdt.ls.core.internal.corrections.ProposalKindWrapper; import org.eclipse.jdt.ls.core.internal.handlers.CodeActionHandler; +import org.eclipse.jdt.ui.text.java.IInvocationContext; +import org.eclipse.jdt.ui.text.java.IProblemLocation; import org.eclipse.lsp4j.CodeActionKind; import org.eclipse.ltk.core.refactoring.Change; import org.eclipse.ltk.core.refactoring.CompositeChange; @@ -128,7 +128,7 @@ public void addRemoveImportStatementProposals(IInvocationContext context, IProbl * @see org.eclipse.jdt.internal.ui.text.correction.ReorgCorrectionsBaseSubProcessor#createRemoveUnusedImportProposal(org.eclipse.jdt.internal.corext.fix.IProposableFix, org.eclipse.jdt.internal.ui.fix.UnusedCodeCleanUp, int, org.eclipse.jdt.ui.text.java.IInvocationContext) */ @Override - protected ProposalKindWrapper createRemoveUnusedImportProposal(IProposableFix fix, UnusedCodeCleanUp unusedCodeCleanUp, int relevance, IInvocationContext context) { + protected ProposalKindWrapper createRemoveUnusedImportProposal(IProposableFix fix, UnusedCodeCleanUpCore unusedCodeCleanUp, int relevance, IInvocationContext context) { if (fix != null) { try { CompilationUnitChange change = fix.createChange(null); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/TypeMismatchSubProcessor.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/TypeMismatchSubProcessor.java index 7b976fdb98..a797f92711 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/TypeMismatchSubProcessor.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/TypeMismatchSubProcessor.java @@ -216,7 +216,7 @@ protected ProposalKindWrapper createChangeMethodSignatureProposal(String label, */ @Override protected ProposalKindWrapper createNewVariableCorrectionProposal(String label, ICompilationUnit cu, int local, SimpleName simpleName, ITypeBinding senderBinding, int relevance) { - NewVariableCorrectionProposalCore p = new NewVariableCorrectionProposalCore(label, cu, NewVariableCorrectionProposalCore.LOCAL, simpleName, null, relevance); + NewVariableCorrectionProposalCore p = new NewVariableCorrectionProposalCore(label, cu, NewVariableCorrectionProposalCore.LOCAL, simpleName, null, relevance, false); return CodeActionHandler.wrap(p, CodeActionKind.QuickFix); } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/AssignToVariableAssistCommandProposal.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/AssignToVariableAssistCommandProposal.java index af5a6f7c20..9e4ce64ffb 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/AssignToVariableAssistCommandProposal.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/AssignToVariableAssistCommandProposal.java @@ -25,7 +25,7 @@ public class AssignToVariableAssistCommandProposal extends AssignToVariableAssis private List commandArguments; public AssignToVariableAssistCommandProposal(ICompilationUnit cu, int variableKind, ExpressionStatement node, ITypeBinding typeBinding, int relevance, String command, List commandArguments) { - super(cu, variableKind, node, typeBinding, relevance); + super(cu, variableKind, node, typeBinding, relevance, false); this.command = command; this.commandArguments = commandArguments; } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/QuickAssistProcessor.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/QuickAssistProcessor.java index e3d32f60e2..f411acce5f 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/QuickAssistProcessor.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/QuickAssistProcessor.java @@ -337,7 +337,7 @@ private static boolean getAssignParamToFieldProposals(IInvocationContext context ASTNode fieldDeclFrag = root.findDeclaringNode(curr); if (fieldDeclFrag instanceof VariableDeclarationFragment fragment) { if (fragment.getInitializer() == null) { - AssignToVariableAssistProposalCore p = new AssignToVariableAssistProposalCore(context.getCompilationUnit(), paramDecl, fragment, typeBinding, IProposalRelevance.ASSIGN_PARAM_TO_EXISTING_FIELD); + AssignToVariableAssistProposalCore p = new AssignToVariableAssistProposalCore(context.getCompilationUnit(), paramDecl, fragment, typeBinding, IProposalRelevance.ASSIGN_PARAM_TO_EXISTING_FIELD, false); resultingCollections.add(CodeActionHandler.wrap(p, JavaCodeActionKind.QUICK_ASSIST)); } } @@ -345,7 +345,7 @@ private static boolean getAssignParamToFieldProposals(IInvocationContext context } } - AssignToVariableAssistProposalCore fieldProposal = new AssignToVariableAssistProposalCore(context.getCompilationUnit(), paramDecl, null, typeBinding, IProposalRelevance.ASSIGN_PARAM_TO_NEW_FIELD); + AssignToVariableAssistProposalCore fieldProposal = new AssignToVariableAssistProposalCore(context.getCompilationUnit(), paramDecl, null, typeBinding, IProposalRelevance.ASSIGN_PARAM_TO_NEW_FIELD, false); resultingCollections.add(CodeActionHandler.wrap(fieldProposal, JavaCodeActionKind.QUICK_ASSIST)); return true; } @@ -378,7 +378,7 @@ private static boolean getAssignAllParamsToFieldsProposals(IInvocationContext co return true; } - AssignToVariableAssistProposalCore fieldProposal = new AssignToVariableAssistProposalCore(context.getCompilationUnit(), parameters, IProposalRelevance.ASSIGN_ALL_PARAMS_TO_NEW_FIELDS); + AssignToVariableAssistProposalCore fieldProposal = new AssignToVariableAssistProposalCore(context.getCompilationUnit(), parameters, IProposalRelevance.ASSIGN_ALL_PARAMS_TO_NEW_FIELDS, false); resultingCollections.add(CodeActionHandler.wrap(fieldProposal, JavaCodeActionKind.QUICK_ASSIST)); return true; } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/RefactorProposalUtility.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/RefactorProposalUtility.java index 096c8b0d42..0294d481a8 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/RefactorProposalUtility.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/RefactorProposalUtility.java @@ -512,7 +512,7 @@ public static ProposalKindWrapper getAssignVariableProposal(CodeActionParams par Arrays.asList(ASSIGN_VARIABLE_COMMAND, params)); return CodeActionHandler.wrap(p, JavaCodeActionKind.REFACTOR_ASSIGN_VARIABLE); } else { - AssignToVariableAssistProposalCore p = new AssignToVariableAssistProposalCore(cu, AssignToVariableAssistProposalCore.LOCAL, expressionStatement, typeBinding, relevance); + AssignToVariableAssistProposalCore p = new AssignToVariableAssistProposalCore(cu, AssignToVariableAssistProposalCore.LOCAL, expressionStatement, typeBinding, relevance, false); return CodeActionHandler.wrap(p, JavaCodeActionKind.REFACTOR_ASSIGN_VARIABLE); } } @@ -553,7 +553,7 @@ public static ProposalKindWrapper getAssignFieldProposal(CodeActionParams params Arrays.asList(ASSIGN_FIELD_COMMAND, params)); return CodeActionHandler.wrap(proposal, JavaCodeActionKind.REFACTOR_ASSIGN_FIELD); } else { - AssignToVariableAssistProposalCore proposal = new AssignToVariableAssistProposalCore(cu, AssignToVariableAssistProposalCore.FIELD, expressionStatement, typeBinding, relevance); + AssignToVariableAssistProposalCore proposal = new AssignToVariableAssistProposalCore(cu, AssignToVariableAssistProposalCore.FIELD, expressionStatement, typeBinding, relevance, false); return CodeActionHandler.wrap(proposal, JavaCodeActionKind.REFACTOR_ASSIGN_FIELD); } } diff --git a/org.eclipse.jdt.ls.target/org.eclipse.jdt.ls.tp.target b/org.eclipse.jdt.ls.target/org.eclipse.jdt.ls.tp.target index a5b8820ddb..ec632a218f 100644 --- a/org.eclipse.jdt.ls.target/org.eclipse.jdt.ls.tp.target +++ b/org.eclipse.jdt.ls.target/org.eclipse.jdt.ls.tp.target @@ -25,7 +25,7 @@ - + diff --git a/org.eclipse.jdt.ls.tests/fakejdk/22/rtstubs.jar b/org.eclipse.jdt.ls.tests/fakejdk/22/rtstubs.jar new file mode 100644 index 0000000000..fb6cb93825 Binary files /dev/null and b/org.eclipse.jdt.ls.tests/fakejdk/22/rtstubs.jar differ diff --git a/org.eclipse.jdt.ls.tests/projects/eclipse/java22/.classpath b/org.eclipse.jdt.ls.tests/projects/eclipse/java22/.classpath new file mode 100644 index 0000000000..85c4985e82 --- /dev/null +++ b/org.eclipse.jdt.ls.tests/projects/eclipse/java22/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/org.eclipse.jdt.ls.tests/projects/eclipse/java22/.project b/org.eclipse.jdt.ls.tests/projects/eclipse/java22/.project new file mode 100644 index 0000000000..6ff1922ca2 --- /dev/null +++ b/org.eclipse.jdt.ls.tests/projects/eclipse/java22/.project @@ -0,0 +1,17 @@ + + + java22 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/org.eclipse.jdt.ls.tests/projects/eclipse/java22/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.jdt.ls.tests/projects/eclipse/java22/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..e8812d9617 --- /dev/null +++ b/org.eclipse.jdt.ls.tests/projects/eclipse/java22/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,16 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=22 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=22 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=enabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=22 + diff --git a/org.eclipse.jdt.ls.tests/projects/eclipse/java22/src/main/java/UnnamedWithString.java b/org.eclipse.jdt.ls.tests/projects/eclipse/java22/src/main/java/UnnamedWithString.java new file mode 100644 index 0000000000..8f14cf779f --- /dev/null +++ b/org.eclipse.jdt.ls.tests/projects/eclipse/java22/src/main/java/UnnamedWithString.java @@ -0,0 +1,7 @@ +String foo() { + return "foo"; +} + +void main() { + System.out.println(foo()); +} diff --git a/org.eclipse.jdt.ls.tests/projects/eclipse/java22/src/main/java/foo/bar/Foo.java b/org.eclipse.jdt.ls.tests/projects/eclipse/java22/src/main/java/foo/bar/Foo.java new file mode 100644 index 0000000000..33940688a9 --- /dev/null +++ b/org.eclipse.jdt.ls.tests/projects/eclipse/java22/src/main/java/foo/bar/Foo.java @@ -0,0 +1,11 @@ +package foo.bar; + +/** + * It's a Foo class + */ +public class Foo { + public Foo() { + System.out.println(); + super(); + } +} diff --git a/org.eclipse.jdt.ls.tests/projects/eclipse/java22/src/main/java/org/sample/Test.java b/org.eclipse.jdt.ls.tests/projects/eclipse/java22/src/main/java/org/sample/Test.java new file mode 100644 index 0000000000..aca1a4ec7e --- /dev/null +++ b/org.eclipse.jdt.ls.tests/projects/eclipse/java22/src/main/java/org/sample/Test.java @@ -0,0 +1,4 @@ +package org.sample; + +public class Test { +} \ No newline at end of file diff --git a/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/.classpath b/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/.classpath new file mode 100644 index 0000000000..1d7640411c --- /dev/null +++ b/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/.classpath @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/.project b/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/.project new file mode 100644 index 0000000000..4305a9050e --- /dev/null +++ b/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/.project @@ -0,0 +1,23 @@ + + + salut-java22 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..091155e9e5 --- /dev/null +++ b/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,17 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=22 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=22 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=enabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=22 + + diff --git a/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000000..f897a7f1cb --- /dev/null +++ b/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/pom.xml b/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/pom.xml new file mode 100644 index 0000000000..5f879e3c09 --- /dev/null +++ b/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/pom.xml @@ -0,0 +1,26 @@ + + 4.0.0 + foo.bar + salut-java22 + 0.0.1-SNAPSHOT + + + + maven-compiler-plugin + 3.8.1 + + 22 + --enable-preview + + + + + + + org.apache.commons + commons-lang3 + 3.5 + + + diff --git a/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/src/main/java/org/sample/Bar.java b/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/src/main/java/org/sample/Bar.java new file mode 100644 index 0000000000..c8839a8886 --- /dev/null +++ b/org.eclipse.jdt.ls.tests/projects/maven/salut-java22/src/main/java/org/sample/Bar.java @@ -0,0 +1,14 @@ +package org.sample; + +/** + * This is Bar + */ +public class Bar { + + public static void main(String[] args) { + Object foo = "x"; + if (foo instanceof String str) { + System.out.println(str); + } + } +} diff --git a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/correction/ModifierCorrectionsQuickFixTest.java b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/correction/ModifierCorrectionsQuickFixTest.java index ace9c2fdf1..4119222e6d 100644 --- a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/correction/ModifierCorrectionsQuickFixTest.java +++ b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/correction/ModifierCorrectionsQuickFixTest.java @@ -1203,11 +1203,9 @@ public void testClassExtendFinalClass() throws Exception { @Test public void testAddSealedMissingClassModifierProposal() throws Exception { - Map options21 = new HashMap<>(); - JavaModelUtil.setComplianceOptions(options21, JavaCore.VERSION_21); - options21.put(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.ENABLED); - options21.put(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES, JavaCore.IGNORE); - fJProject.setOptions(options21); + Map options17 = new HashMap<>(); + JavaModelUtil.setComplianceOptions(options17, JavaCore.VERSION_17); + fJProject.setOptions(options17); IPackageFragment pack1 = fSourceFolder.createPackageFragment("test", false, null); assertNoErrors(fJProject.getResource()); @@ -1250,11 +1248,9 @@ public void testAddSealedMissingClassModifierProposal() throws Exception { @Test public void testAddSealedAsDirectSuperClass() throws Exception { - Map options21 = new HashMap<>(); - JavaModelUtil.setComplianceOptions(options21, JavaCore.VERSION_21); - options21.put(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.ENABLED); - options21.put(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES, JavaCore.IGNORE); - fJProject.setOptions(options21); + Map options17 = new HashMap<>(); + JavaModelUtil.setComplianceOptions(options17, JavaCore.VERSION_17); + fJProject.setOptions(options17); IPackageFragment pack1 = fSourceFolder.createPackageFragment("test", false, null); assertNoErrors(fJProject.getResource()); @@ -1279,11 +1275,9 @@ public void testAddSealedAsDirectSuperClass() throws Exception { @Test public void testAddPermitsToDirectSuperClass() throws Exception { - Map options21 = new HashMap<>(); - JavaModelUtil.setComplianceOptions(options21, JavaCore.VERSION_21); - options21.put(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.ENABLED); - options21.put(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES, JavaCore.IGNORE); - fJProject.setOptions(options21); + Map options17 = new HashMap<>(); + JavaModelUtil.setComplianceOptions(options17, JavaCore.VERSION_17); + fJProject.setOptions(options17); IPackageFragment pack1 = fSourceFolder.createPackageFragment("test", false, null); assertNoErrors(fJProject.getResource()); diff --git a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/correction/UnresolvedTypesQuickFixTest.java b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/correction/UnresolvedTypesQuickFixTest.java index 58a62a516a..1a671e0353 100644 --- a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/correction/UnresolvedTypesQuickFixTest.java +++ b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/correction/UnresolvedTypesQuickFixTest.java @@ -1492,11 +1492,9 @@ public void testDontImportTestClassesInMainCode() throws Exception { @Test public void testTypeInSealedTypeDeclaration() throws Exception { - Map options21 = new HashMap<>(); - JavaModelUtil.setComplianceOptions(options21, JavaCore.VERSION_21); - options21.put(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.ENABLED); - options21.put(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES, JavaCore.IGNORE); - fJProject1.setOptions(options21); + Map options17 = new HashMap<>(); + JavaModelUtil.setComplianceOptions(options17, JavaCore.VERSION_17); + fJProject1.setOptions(options17); IPackageFragment pack1 = fSourceFolder.createPackageFragment("test1", false, null); StringBuilder buf = new StringBuilder(); diff --git a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/EclipseProjectImporterTest.java b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/EclipseProjectImporterTest.java index 290f5ac620..d801822f27 100644 --- a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/EclipseProjectImporterTest.java +++ b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/EclipseProjectImporterTest.java @@ -191,7 +191,7 @@ public void testPreviewFeatures16() throws Exception { @Test public void testPreviewFeaturesDisabledByDefault() throws Exception { - String name = "java21"; + String name = "java22"; importProjects("eclipse/" + name); IProject project = getProject(name); assertIsJavaProject(project); diff --git a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/InvisibleProjectImporterTest.java b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/InvisibleProjectImporterTest.java index 8afc281f28..f78784f26e 100644 --- a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/InvisibleProjectImporterTest.java +++ b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/InvisibleProjectImporterTest.java @@ -204,7 +204,7 @@ public void getPackageName() throws Exception { public void testPreviewFeaturesEnabledByDefault() throws Exception { String defaultJVM = JavaRuntime.getDefaultVMInstall().getId(); try { - TestVMType.setTestJREAsDefault("21"); + TestVMType.setTestJREAsDefault("22"); IProject invisibleProject = copyAndImportFolder("singlefile/java14", "foo/bar/Foo.java"); assertTrue(invisibleProject.exists()); assertNoErrors(invisibleProject); diff --git a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/MavenProjectImporterTest.java b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/MavenProjectImporterTest.java index 5ddc1d6a71..9e2483046d 100644 --- a/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/MavenProjectImporterTest.java +++ b/org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/managers/MavenProjectImporterTest.java @@ -359,6 +359,17 @@ public void testJava21Project() throws Exception { IJavaProject javaProject = JavaCore.create(project); assertEquals(JavaCore.ENABLED, javaProject.getOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, false)); assertEquals(JavaCore.IGNORE, javaProject.getOption(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES, false)); + assertHasErrors(project, "Preview features enabled at an invalid source release level"); + } + + @Test + public void testJava22Project() throws Exception { + IProject project = importMavenProject("salut-java22"); + assertIsJavaProject(project); + assertEquals("22", getJavaSourceLevel(project)); + IJavaProject javaProject = JavaCore.create(project); + assertEquals(JavaCore.ENABLED, javaProject.getOption(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, false)); + assertEquals(JavaCore.IGNORE, javaProject.getOption(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES, false)); assertNoErrors(project); }