diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/TextBlockTest.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/TextBlockTest.java
index 5588b14d1cb..95dda688251 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/TextBlockTest.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/TextBlockTest.java
@@ -19,22 +19,8 @@
import junit.framework.Test;
-/**
- * This is almost a copy of the one in org.eclipse.jdt.tests.latestBREE.
- * The other one also includes tests that are coded using the latest language
- * features and API. However, the bundle is not yet setup to run with the build
- * hence this is a temporary arrangement to keep the tests being run. The recommended
- * strategy is to keep this one updated and when the time comes, move this over
- * to the other bundle after synch-up of tests from both.
- * @author jay
- */
public class TextBlockTest extends AbstractRegressionTest {
- static {
-// TESTS_NUMBERS = new int [] { 40 };
-// TESTS_NAMES = new String[] { "testCompliances_13" };
- }
-
public static Class> testClass() {
return TextBlockTest.class;
}
@@ -1617,4 +1603,77 @@ public void testBug578649_2() {
"123\b45",
getCompilerOptions());
}
+
+
+ /*
+ * positive - html code with indentation with empty lines
+ * output compared with String API
+ */
+ public void test016b() {
+ String text = "\n" +
+ "
\n" +
+ " Hello, world
\n" +
+ " \n" +
+ " ";
+ runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n" +
+ " static String html = \"\"\"\n" +
+ text + "\\n" +
+ "\"\"\";\n" +
+ " public static void main(String[] args) {\n" +
+ " System.out.println(html);\n" +
+ " }\n" +
+ "}\n"
+ },
+ text.stripIndent().translateEscapes(),
+ null,
+ new String[] {"--enable-preview"});
+
+ }
+ /*
+ * positive - escaped '\', compare with String::translateEscapes
+ */
+ public void test022() {
+ String text = "abc\\\\def";
+ runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n" +
+ " public static String textb = \"\"\"\n" +
+ text +
+ "\"\"\";\n" +
+ " public static void main(String[] args) {\n" +
+ " System.out.print(textb);\n" +
+ " }\n" +
+ "}\n"
+ },
+ text.translateEscapes(),
+ null,
+ new String[] {"--enable-preview"});
+ }
+ /*
+ * positive - escaped """, compare output with
+ * String::translateEscapes
+ * String::stripIndent
+ */
+ public void test023() {
+ String text = "abc\\\"\"\"def\" ";
+ runConformTest(
+ new String[] {
+ "X.java",
+ "public class X {\n" +
+ " public static String textb = \"\"\"\n" +
+ text +
+ "\"\"\";\n" +
+ " public static void main(String[] args) {\n" +
+ " System.out.println(textb);\n" +
+ " }\n" +
+ "}\n"
+ },
+ text.translateEscapes().stripIndent(),
+ null,
+ new String[] {"--enable-preview"});
+ }
}
diff --git a/org.eclipse.jdt.tests.latestBREE/.classpath b/org.eclipse.jdt.tests.latestBREE/.classpath
deleted file mode 100644
index a0ffe6ed8dc..00000000000
--- a/org.eclipse.jdt.tests.latestBREE/.classpath
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/org.eclipse.jdt.tests.latestBREE/.project b/org.eclipse.jdt.tests.latestBREE/.project
deleted file mode 100644
index 55a5e828010..00000000000
--- a/org.eclipse.jdt.tests.latestBREE/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
- org.eclipse.jdt.tests.latestBREE
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.pde.ManifestBuilder
-
-
-
-
- org.eclipse.pde.SchemaBuilder
-
-
-
-
-
- org.eclipse.pde.PluginNature
- org.eclipse.jdt.core.javanature
-
-
diff --git a/org.eclipse.jdt.tests.latestBREE/.settings/org.eclipse.core.resources.prefs b/org.eclipse.jdt.tests.latestBREE/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 22e9eaec5a4..00000000000
--- a/org.eclipse.jdt.tests.latestBREE/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/org/eclipse/jdt/core/tests/compiler/regression/latest/TextBlockTest.java=UTF-8
-encoding/=UTF-8
diff --git a/org.eclipse.jdt.tests.latestBREE/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.jdt.tests.latestBREE/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 7e69c71939d..00000000000
--- a/org.eclipse.jdt.tests.latestBREE/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,115 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
-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=15
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=15
-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.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=warning
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=15
diff --git a/org.eclipse.jdt.tests.latestBREE/META-INF/MANIFEST.MF b/org.eclipse.jdt.tests.latestBREE/META-INF/MANIFEST.MF
deleted file mode 100644
index 085cb61dd10..00000000000
--- a/org.eclipse.jdt.tests.latestBREE/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,21 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: LatestBREE
-Bundle-SymbolicName: org.eclipse.jdt.tests.latestBREE
-Bundle-Version: 1.0.0.qualifier
-Bundle-Activator: org.eclipse.jdt.tests.latestbree.Activator
-Require-Bundle: org.junit;bundle-version="3.8.1",
- org.eclipse.jdt.debug;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.jdt.core;bundle-version="[3.36.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.29.0,4.0.0)",
- org.eclipse.test.performance;bundle-version="[3.10.0,4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.jdt.annotation;bundle-version="[1.1.0,2.0.0)";resolution:=optional,
- org.eclipse.jdt.annotation;bundle-version="[2.0.0,3.0.0)";resolution:=optional,
- org.eclipse.jdt.core.tests.model;bundle-version="[3.10.0,4.0.0)",
- org.eclipse.jdt.core.tests.compiler;bundle-version="[3.10.0,4.0.0)"
-Bundle-RequiredExecutionEnvironment: JavaSE-15
-Automatic-Module-Name: org.eclipse.jdt.tests.latestBREE
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.jdt.core.tests.compiler.regression.latest,
- org.eclipse.jdt.tests.latestbree
diff --git a/org.eclipse.jdt.tests.latestBREE/build.properties b/org.eclipse.jdt.tests.latestBREE/build.properties
deleted file mode 100644
index 34d2e4d2dad..00000000000
--- a/org.eclipse.jdt.tests.latestBREE/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
- .
diff --git a/org.eclipse.jdt.tests.latestBREE/pom.xml b/org.eclipse.jdt.tests.latestBREE/pom.xml
deleted file mode 100644
index 5f8606b7e20..00000000000
--- a/org.eclipse.jdt.tests.latestBREE/pom.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
-
- 4.0.0
-
- tests-pom
- org.eclipse.jdt
- 4.13.0-SNAPSHOT
- ../tests-pom/
-
- org.eclipse.jdt.tests.latestBREE
- 1.0.0-SNAPSHOT
- eclipse-test-plugin
-
-
- true
-
-
-
-
-
- org.eclipse.tycho
- tycho-surefire-plugin
-
-
- org/eclipse/jdt/core/tests/compiler/regression//latest/TestAll.class
-
- ${tycho.surefire.argLine}
-
-
-
-
-
-
-
- test-on-javase-13
-
-
-
- org.apache.maven.plugins
- maven-toolchains-plugin
-
-
-
- JavaSE-13
-
-
-
-
-
-
-
- --add-modules ALL-SYSTEM -Dcompliance=1.4,1.7,1.8,13
-
-
-
- test-on-javase-14
-
-
-
- org.apache.maven.plugins
- maven-toolchains-plugin
-
-
-
- JavaSE-14
-
-
-
-
-
-
-
- --add-modules ALL-SYSTEM -Dcompliance=1.4,1.7,1.8,13,14
-
-
-
- test-on-javase-15
-
-
-
- org.apache.maven.plugins
- maven-toolchains-plugin
-
-
-
- JavaSE-15
-
-
-
-
-
-
-
- --add-modules ALL-SYSTEM -Dcompliance=1.4,1.7,1.8,13,14,15
-
-
-
-
-
diff --git a/org.eclipse.jdt.tests.latestBREE/src/org/eclipse/jdt/core/tests/compiler/regression/latest/TestAll.java b/org.eclipse.jdt.tests.latestBREE/src/org/eclipse/jdt/core/tests/compiler/regression/latest/TestAll.java
deleted file mode 100644
index cdf4712cb7a..00000000000
--- a/org.eclipse.jdt.tests.latestBREE/src/org/eclipse/jdt/core/tests/compiler/regression/latest/TestAll.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.eclipse.jdt.core.tests.compiler.regression.latest;
-
-import java.util.ArrayList;
-
-import org.eclipse.jdt.core.tests.junit.extension.TestCase;
-import org.eclipse.jdt.core.tests.model.CompletionTests13;
-import org.eclipse.jdt.core.tests.util.AbstractCompilerTest;
-import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-@SuppressWarnings({ "unchecked", "rawtypes" })
-public class TestAll extends junit.framework.TestCase {
-
-public TestAll(String testName) {
- super(testName);
-}
-public static Test suite() {
-
- // Common test suites
- ArrayList standardTests = new ArrayList();
- standardTests.add(TextBlockTest.class);
- standardTests.add(CompletionTests13.class);
- TestSuite all = new TestSuite(TestAll.class.getName());
- int possibleComplianceLevels = AbstractCompilerTest.getPossibleComplianceLevels();
- if ((possibleComplianceLevels & AbstractCompilerTest.F_13) != 0) {
- ArrayList tests_13 = (ArrayList)standardTests.clone();
- TestCase.resetForgottenFilters(tests_13);
- all.addTest(AbstractCompilerTest.buildComplianceTestSuite(ClassFileConstants.getComplianceLevelForJavaVersion(ClassFileConstants.MAJOR_VERSION_13), tests_13));
- }
- return all;
-}
-}
diff --git a/org.eclipse.jdt.tests.latestBREE/src/org/eclipse/jdt/core/tests/compiler/regression/latest/TextBlockTest.java b/org.eclipse.jdt.tests.latestBREE/src/org/eclipse/jdt/core/tests/compiler/regression/latest/TextBlockTest.java
deleted file mode 100644
index c7560b3466c..00000000000
--- a/org.eclipse.jdt.tests.latestBREE/src/org/eclipse/jdt/core/tests/compiler/regression/latest/TextBlockTest.java
+++ /dev/null
@@ -1,1398 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019, 2020 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.core.tests.compiler.regression.latest;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest;
-import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
-
-import junit.framework.Test;
-
-public class TextBlockTest extends AbstractRegressionTest {
-
- static {
-// TESTS_NUMBERS = new int [] { 40 };
-// TESTS_NAMES = new String[] { "testCompliances_13" };
- }
-
- public static Class> testClass() {
- return TextBlockTest.class;
- }
- public static Test suite() {
- return buildMinimalComplianceTestSuite(testClass(), F_14);
- }
- public TextBlockTest(String testName){
- super(testName);
- }
- protected Map getCompilerOptions() {
- return getCompilerOptions(true);
- }
- // Enables the tests to run individually
- protected Map getCompilerOptions(boolean previewFlag) {
- Map defaultOptions = super.getCompilerOptions();
- defaultOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_14);
- defaultOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_14);
- defaultOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_14);
- defaultOptions.put(CompilerOptions.OPTION_EnablePreviews, previewFlag ? CompilerOptions.ENABLED : CompilerOptions.DISABLED);
- defaultOptions.put(CompilerOptions.OPTION_ReportPreviewFeatures, CompilerOptions.IGNORE);
- return defaultOptions;
- }
- protected void runConformTest(String[] testFiles, String expectedOutput, Map customOptions, String[] vmArguments) {
- runConformTest(testFiles, expectedOutput, customOptions, vmArguments, new JavacTestOptions("-source 14 --enable-preview"));
- }
- public void test001() {
- runNegativeTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\"\"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(textb);\n" +
- " }\n" +
- "}\n"
- },
- "----------\n" +
- "1. ERROR in X.java (at line 2)\n" +
- " public static String textb = \"\"\"\"\"\";\n" +
- " ^^\n" +
- "Syntax error on token \"\"\"\", invalid AssignmentOperator\n" +
- "----------\n");
- }
- public void test002() {
- runNegativeTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\" \"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(textb);\n" +
- " }\n" +
- "}\n"
- },
- "----------\n" +
- "1. ERROR in X.java (at line 2)\n" +
- " public static String textb = \"\"\" \"\"\";\n" +
- " ^^^\n" +
- "Syntax error on token \"\" \"\", invalid AssignmentOperator\n" +
- "----------\n");
- }
- public void test003() {
- runNegativeTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\"\n" +
- "\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(textb);\n" +
- " }\n" +
- "}\n"
- },
- "----------\n" +
- "1. ERROR in X.java (at line 2)\n" +
- " public static String textb = \"\"\"\n" +
- "\";\n" +
- " ^^^^^\n" +
- "Text block is not properly closed with the delimiter\n" +
- "----------\n");
- }
- public void test003a() {
- runNegativeTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\"\n" +
- "\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(textb);\n" +
- " }\n" +
- "}\n"
- },
- "----------\n" +
- "1. ERROR in X.java (at line 2)\n" +
- " public static String textb = \"\"\"\n" +
- "\n" +
- " ^^^^\n" +
- "Text block is not properly closed with the delimiter\n" +
- "----------\n");
- }
- /*
- * negative - unescaped '\' in a text block
- */
- public void test004() {
- runNegativeTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\"\n" +
- "abc\\def" +
- "\"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(textb);\n" +
- " }\n" +
- "}\n"
- },
- "----------\n" +
- "1. ERROR in X.java (at line 2)\n" +
- " public static String textb = \"\"\"\n" +
- "abc\\def\"\"\";\n" +
- " ^^^^^^^^^\n" +
- "Invalid escape sequence (valid ones are \\b \\t \\n \\f \\r \\\" \\\' \\\\ )\n" +
- "----------\n");
- }
- /* empty text block */
- public void test005() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\"\n" +
- "\"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(textb);\n" +
- " }\n" +
- "}\n"
- },
- "",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - escaped '\'
- */
- public void test006() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\"\n" +
- "abc\\\\def" +
- "\"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.print(textb);\n" +
- " }\n" +
- "}\n"
- },
- "abc\\def",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * Positive - Multi line text block with varying indentation
- * and \n
- */
- public void test007() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\"\n" +
- " line 1\n" +
- " line 2\n" +
- " \n" +
- " line 3\"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.print(textb);\n" +
- " }\n" +
- "}\n"
- },
- "line 1\n" + // test framework trims the leading whitespace
- " line 2\n" +
- "\n" +
- "line 3",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * Positive - Multi line text block with varying indentation
- * and \n and \r
- */
- public void test008() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\"\n" +
- " line 1\n" +
- " line 2\r" +
- " \r" +
- " line 3\"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(textb);\n" +
- " }\n" +
- "}\n"
- },
- "line 1\n" +
- " line 2\n" +
- "\n" +
- "line 3", // the trailing whitespace is trimmed by the test framework
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * Positive - Multi line text block with varying indentation
- * and \n and \r
- */
- public void test008a() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\"\n" +
- " line 1\n" +
- " line 2\r" +
- " \r" +
- " line 3\n\"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.print(\"<\");\n" +
- " System.out.print(textb);\n" +
- " System.out.print(\">\");\n" +
- " }\n" +
- "}\n"
- },
- "< line 1\n" +
- " line 2\n" +
- "\n" +
- " line 3\n" +
- ">", // the trailing whitespace is trimmed by the test framework
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - using unescaped '"' in text block
- */
- public void test009() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\"\n" +
- "\"abc-def" +
- "\"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(textb);\n" +
- " }\n" +
- "}\n"
- },
- "\"abc-def",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - using escaped '"' in text block
- */
- public void test010() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\"\n" +
- "\"abc-def\\\"\"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(textb);\n" +
- " }\n" +
- "}\n"
- },
- "\"abc-def\"",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - using escaped \ and escaped " in text block
- */
- public void test011() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\"\n" +
- "\"abc\\\"\"\"def\"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(textb);\n" +
- " }\n" +
- "}\n"
- },
- "\"abc\"\"\"def",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - using Unicode in text block
- * and compare with an equal String literal
- */
- public void test012() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\"\n" +
- "\\u0ba4\\u0bae\\u0bbf\\u0bb4\"\"\";\n" +
- " public static String str = \"\\u0ba4\\u0bae\\u0bbf\\u0bb4\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(str.equals(textb));\n" +
- " }\n" +
- "}\n"
- },
- "true",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - bigger piece of code as text block
- */
- public void test013() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- "static String code = \"\"\"\n" +
- " public void print(Object o) {\n" +
- " System.out.println(Objects.toString(o));\n" +
- " }\n" +
- " \"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.print(code);\n" +
- " }\n" +
- "}\n"
- },
- "public void print(Object o) {\n" +
- " System.out.println(Objects.toString(o));\n" +
- "}",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - concatenation of string with text block
- */
- public void test014() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " static String code = \"public void print(Object o) {\\n\" +\n" +
- " \"\"\"\n" +
- " System.out.println(Objects.toString(o));\n" +
- " }\n" +
- " \"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.print(code);\n" +
- " }\n" +
- "}\n"
- },
- "public void print(Object o) {\n" +
- " System.out.println(Objects.toString(o));\n" +
- "}",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - freely using quotes
- */
- public void test015() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " static String story = \"\"\"\n" +
- " \"When I use a word,\" Humpty Dumpty said,\n" +
- " in rather a scornful tone, \"it means just what I\n" +
- " choose it to mean - neither more nor less.\"\n" +
- " \"The question is,\" said Alice, \"whether you\n" +
- " can make words mean so many different things.\"\n" +
- " \"The question is,\" said Humpty Dumpty,\n" +
- " \"which is to be master - that's all.\"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.print(story);\n" +
- " }\n" +
- "}\n"
- },
- "\"When I use a word,\" Humpty Dumpty said,\n" +
- "in rather a scornful tone, \"it means just what I\n" +
- "choose it to mean - neither more nor less.\"\n" +
- "\"The question is,\" said Alice, \"whether you\n" +
- "can make words mean so many different things.\"\n" +
- "\"The question is,\" said Humpty Dumpty,\n" +
- "\"which is to be master - that's all.",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - html code with indentation
- */
- public void test016() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " static String html = \"\"\"\n" +
- " \n" +
- " \n" +
- " Hello, world
\n" +
- " \n" +
- " \"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.print(html);\n" +
- " }\n" +
- "}\n"
- },
- "\n" +
- " \n" +
- " Hello, world
\n" +
- " \n" +
- "",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - html code with indentation with empty lines
- */
- public void test016a() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " static String html = \"\"\"\n" +
- " \\r\\n" +
- " \\r\\n" +
- " Hello, world
\\r\\n" +
- " \\r\\n" +
- " \\r\\n" +
- " \"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(html);\n" +
- " }\n" +
- "}\n"
- },
- "\n" +
- " \n" +
- " Hello, world
\n" +
- " \n" +
- " ",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - html code with indentation with empty lines
- * output compared with String API
- */
- public void test016b() {
- String text = "\n" +
- " \n" +
- " Hello, world
\n" +
- " \n" +
- " ";
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " static String html = \"\"\"\n" +
- text + "\\n" +
- "\"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(html);\n" +
- " }\n" +
- "}\n"
- },
- text.stripIndent().translateEscapes(),
- null,
- new String[] {"--enable-preview"});
-
- }
- /*
- * positive - html code with indentation with \r as terminator
- */
- public void test016c() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " static String html = \"\"\"\n" +
- " \n" +
- " \n" +
- " Hello, world
\n" +
- " \n" +
- " \n" +
- " \"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(html);\n" +
- " }\n" +
- "}\n"
- },
- "\n" +
- " \n" +
- " Hello, world
\n" +
- " \n" +
- "",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - html code with indentation and trailing whitespace
- */
- public void test017() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " static String html = \"\"\"\n" +
- " \n" +
- " \n" +
- " Hello, world
\n" +
- " \n" +
- " \n" +
- " \"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(html);\n" +
- " }\n" +
- "}\n"
- },
- "\n" +
- " \n" +
- " Hello, world
\n" +
- " \n" +
- "",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - using octal escape char for trailing whitespace
- */
- public void test018() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " static String html = \"\"\"\n" +
- " \\040\\040\n" +
- " \\040\\040\n" +
- " Hello, world
\\040\\040\\040\n" +
- " \\040\\040\n" +
- " \"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.print(html);\n" +
- " }\n" +
- "}\n"
- },
- " \n" +
- " \n" +
- " Hello, world
\n" +
- " \n" +
- "",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - using text block as a method argument
- */
- public void test019() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(\"\"\"\n" +
- " \\n" +
- " \\n" +
- " Hello, world
\\n" +
- " \\n" +
- " \\n" +
- " \"\"\");\n" +
- " }\n" +
- "}\n"
- },
- "\n" +
- " \n" +
- " Hello, world
\n" +
- " \n" +
- " ",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - using variable assigned with text block as a method argument
- */
- public void test020() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static void main(String[] args) {\n" +
- " String html = \"\"\"\n" +
- " \n" +
- " \n" +
- " Hello, world
\n" +
- " \n" +
- " \n" +
- " \"\"\";\n" +
- " System.out.println(html);\n" +
- " }\n" +
- "}\n"
- },
- "\n" +
- " \n" +
- " Hello, world
\n" +
- " \n" +
- "",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - assigning strings and text blocks interchangeably.
- */
- public void test021() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static void main(String[] args) {\n" +
- " String html = \"\"\"\n" +
- " \n" +
- " \n" +
- " Hello, world
\n" +
- " \n" +
- " \n" +
- " \"\"\";\n" +
- " String s = html;\n" +
- " System.out.println(s);\n" +
- " }\n" +
- "}\n"
- },
- "\n" +
- " \n" +
- " Hello, world
\n" +
- " \n" +
- "",
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - escaped '\', compare with String::translateEscapes
- */
- public void test022() {
- String text = "abc\\\\def";
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\"\n" +
- text +
- "\"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.print(textb);\n" +
- " }\n" +
- "}\n"
- },
- text.translateEscapes(),
- null,
- new String[] {"--enable-preview"});
- }
- /*
- * positive - escaped """, compare output with
- * String::translateEscapes
- * String::stripIndent
- */
- public void test023() {
- String text = "abc\\\"\"\"def\" ";
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\"\n" +
- text +
- "\"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(textb);\n" +
- " }\n" +
- "}\n"
- },
- text.translateEscapes().stripIndent(),
- null,
- new String[] {"--enable-preview"});
- }
- public void test024() {
- runConformTest(
- new String[] {
- "Main.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class Main {\n" +
- " public static void main(String[] args) {\n" +
- " runConformTest(\n" +
- " new String[] {\n" +
- " \"XYZ.java\",\n" +
- " \"\"\"\n" +
- " public class XYZ {\n" +
- " public static String textb = \\\"\"\"\n" +
- " abc\\\\\\\"\"\"def\" \n" +
- " \\\"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(textb);\n" +
- " }\n" +
- " }\"\"\"" +
- " }, \n" +
- " \"\",\n" +
- " null,\n" +
- " new String[] {\"--enable-preview\"});\n" +
- " }\n" +
- " private static void runConformTest(String[] strings, String text, Object object, String[] strings2) {\n" +
- " System.out.println(strings[1]);\n" +
- " }\n" +
- "}"
- },
- "public class XYZ {\n" +
- " public static String textb = \"\"\"\n" +
- " abc\\\"\"\"def\"\n" +
- " \"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(textb);\n" +
- " }\n" +
- "}",
- null,
- new String[] {"--enable-preview"});
- }
- public void test025() {
- runNegativeTest(
- new String[] {
- """
- X.java""",
- """
- public class X {
- public static String textb = \"""
- abc\\def\""";
- public static void main(String[] args) {
- System.out.println(textb);
- }
- }
- """
- },
- "----------\n" +
- "1. ERROR in X.java (at line 2)\n" +
- " public static String textb = \"\"\"\n" +
- " abc\\def\"\"\";\n" +
- " ^^^^^^^^^^^^\n" +
- "Invalid escape sequence (valid ones are \\b \\t \\n \\f \\r \\\" \\\' \\\\ )\n" +
- "----------\n",
- null,
- true,
- getCompilerOptions());
- }
- public void test026() {
- String text = "abc\\\\def";
- runConformTest(
- new String[] {
- """
- X.java""",
- """
- public class X {
- public static String textb = \"""
- abc\\\\def\""";
- public static void main(String[] args) {
- System.out.println(textb);
- }
- }
- """
- },
- text.translateEscapes(),
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void test027() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static void main (String[] args) {\n" +
- " String xyz = \n" +
- " \"\"\"\n" +
- " public class Switch {\n" +
- " public static void bar(int arg0) {\n" +
- " int arg1 = 0;\n" +
- " pointer: foo(\n" +
- " switch (0 + arg0) {\n" +
- " case 1 -> 1;\n" +
- " default -> {break p;}\\n\"\n" +
- " }\n" +
- " });\n" +
- " public static void foo(int arg0) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- " }\\n\"\"\"; \n" +
- " System.out.println(xyz);\n" +
- " }\n" +
- "}"
- },
- "public class Switch {\n" +
- " public static void bar(int arg0) {\n" +
- " int arg1 = 0;\n" +
- " pointer: foo(\n" +
- " switch (0 + arg0) {\n" +
- " case 1 -> 1;\n" +
- " default -> {break p;}\n" +
- "\"\n" +
- " }\n" +
- " });\n" +
- " public static void foo(int arg0) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- " }",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- // An empty text block
- public void test028() {
- runConformTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static void main (String[] args) {\n" +
- " String xyz = \n" +
- " \"\"\"\n" +
- " \\n\"\"\"; \n" +
- " System.out.println(xyz);\n" +
- " }\n" +
- "}"
- },
- "",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- // An empty text block
- public void test029() {
- runConformTest(
- new String[] {
- "Cls2.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class Cls2 {\n" +
- " public static String str = \"\"\"\n" +
- " Hello Guru \n" +
- " \n" +
- " \"\"\";\n" +
- " public static void main (String[] args) {\n" +
- " System.out.println(str);\n" +
- " }\n" +
- "}"
- },
- "Hello Guru", // output comparison tool strips off all trailing whitespace
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testBug550356() {
- Map options = getCompilerOptions(false);
- runNegativeTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\"\n" +
- "\"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(textb);\n" +
- " }\n" +
- "}\n"
- },
- "----------\n" +
- "1. ERROR in X.java (at line 2)\n" +
- " public static String textb = \"\"\"\n" +
- "\"\"\";\n" +
- " ^^^^^^^\n" +
- "Text Blocks is a preview feature and disabled by default. Use --enable-preview to enable\n" +
- "----------\n",
- null,
- true,
- options);
- }
- public void testBug551948_1() {
- runConformTest(
- new String[] {
- "Cls2.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class Cls2 {\n" +
- "static String text = \"\"\"\n" +
- " Lorem ipsum dolor sit amet, consectetur adipiscing \\\n" +
- " elit, sed do eiusmod tempor incididunt ut labore \\\n" +
- " et dolore magna aliqua.\\\n" +
- " \"\"\";\n" +
- " public static void main (String[] args) {\n" +
- " System.out.print(text);\n" +
- " }\n" +
- "}"
- },
- "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", // output comparison tool strips off all trailing whitespace
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testBug551948_2() {
- runConformTest(
- new String[] {
- "Cls2.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class Cls2 {\n" +
- "static String noLastLF = \"\"\"\n" +
- " abc\n" +
- " def\\\n" +
- " ghi\"\"\";\n" +
- " public static void main (String[] args) {\n" +
- " System.out.print(noLastLF);\n" +
- " }\n" +
- "}"
- },
- "abc\n defghi",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testBug551948_3() {
- runConformTest(
- new String[] {
- "Cls2.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class Cls2 {\n" +
- "static String python = \"\"\"\n" +
- " if x == True and \\\\\n" +
- " y == False\n" +
- " \"\"\";\n" +
- " public static void main (String[] args) {\n" +
- " System.out.print(python);\n" +
- " }\n" +
- "}"
- },
- "if x == True and \\\n" +
- " y == False",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testBug551948_4() {
- runConformTest(
- new String[] {
- "Cls2.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class Cls2 {\n" +
- "static String colors = \"\"\"\n" +
- " red \\\n" +
- " green \\\n" +
- " blue \\\n" +
- " orange\"\"\"; \n" +
- " public static void main (String[] args) {\n" +
- " System.out.print(colors);\n" +
- " }\n" +
- "}"
- },
- "red green blue orange",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testBug551948_5() {
- runNegativeTest(
- new String[] {
- "Cls2.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class Cls2 {\n" +
- "static String colors = \"\"\"\n" +
- " \\red \n" +
- " \\green \n" +
- " \\blue \n" +
- " \\orange\"\"\"; \n" +
- " public static void main (String[] args) {\n" +
- " System.out.print(colors);\n" +
- " }\n" +
- "}"
- },
- "----------\n" +
- "1. ERROR in Cls2.java (at line 3)\n" +
- " static String colors = \"\"\"\n" +
- " \\red \n" +
- " \\green \n" +
- " ^^^^^^^^^^^^^^^^^^^^^^\n" +
- "Invalid escape sequence (valid ones are \\b \\t \\n \\f \\r \\\" \\\' \\\\ )\n" +
- "----------\n",
- null,
- true,
- getCompilerOptions(true));
- }
- public void testBug551948_6() {
- runConformTest(
- new String[] {
- "Cls2.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class Cls2 {\n" +
- "static String str = \"A\\sline\\swith\\sspaces\";\n" +
- " public static void main (String[] args) {\n" +
- " System.out.print(str);\n" +
- " }\n" +
- "}"
- },
- "A line with spaces",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testBug551948_7() {
- runConformTest(
- new String[] {
- "Cls2.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class Cls2 {\n" +
- "static String colors = \"\"\"\n" +
- " red \\s\n" +
- " green\\s\n" +
- " blue \\s\n" +
- " \"\"\";\n" +
- " public static void main (String[] args) {\n" +
- " System.out.print(colors);\n" +
- " }\n" +
- "}"
- },
- "red \ngreen \nblue", // trailing whitespaces are trimmed
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testBug551948_8() {
- runConformTest(
- new String[] {
- "Cls2.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class Cls2 {\n" +
- "static String s = \"\"\"\n" +
- "aaa\n" +
- "\n" +
- "bbb\n" +
- "\n" +
- "\n" +
- "ccc" +
- "\"\"\";\n" +
- " public static void main (String[] args) {\n" +
- " System.out.print(s);\n" +
- " }\n" +
- "}"
- },
- "aaa\n\n" +
- "bbb\n\n\n" +
- "ccc",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testCompliances_1() {
- runConformTest(
- new String[] {
- "C.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class C {\n" +
- " public static void main(String argv[]) {\n" +
- " String textBlock = \"\"\"\n" +
- "\n" +
- " aa\"\"\";\n" +
- " System.out.print(compare(textBlock));\n" +
- " }\n" +
- " private static boolean compare(String textBlock) {\n" +
- " char LF = (char) 0x000A;\n" +
- " String str = \"\" + LF + \"aa\";\n" +
- " return textBlock.equals(str);\n" +
- " }\n" +
- "}"
- },
- "true",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testCompliances_2() {
- runConformTest(
- new String[] {
- "C.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class C {\n" +
- " public static void main(String argv[]) {\n" +
- " String textBlock = \"\"\"\n" +
- "\\n" +
- "\\n" +
- "\"\"\";\n" +
- " System.out.print(compare(textBlock));\n" +
- " }\n" +
- " private static boolean compare(String textBlock) {\n" +
- " char LF = (char) 0x000A;\n" +
- " String str = \"\" + LF + LF + \"\";\n" +
- " return textBlock.equals(str);\n" +
- " }\n" +
- "}"
- },
- "true",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testCompliances_3() {
- runConformTest(
- new String[] {
- "C.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class C {\n" +
- " public static void main(String argv[]) {\n" +
- " String textBlock = \"\"\"\n" +
- "\n" +
- "\"\"\";\n" +
- " System.out.print(textBlock);\n" +
- " System.out.print(compare(textBlock));\n" +
- " }\n" +
- " private static boolean compare(String textBlock) {\n" +
- " char LF = (char) 0x000A;\n" +
- " String str = \"\" + '\\u0015' + LF + \"\";\n" +
- " return textBlock.equals(str.stripIndent());\n" +
- " }\n" +
- "}"
- },
- "true",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testCompliances_4() {
- runConformTest(
- new String[] {
- "C.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class C {\n" +
- " public static void main(String argv[]) {\n" +
- " String textBlock = \"\"\"\n" +
- "v\r" +
- "\r" +
- "vaa\"\"\";\n" +
- " char[] cs = textBlock.toCharArray();\n" +
- " for (char c : cs) {\n" +
- " //System.out.print((int)c);\n" +
- " //System.out.print(',');\n" +
- " }\n" +
- " //System.out.println();\n" +
- " System.out.print(compare(textBlock));\n" +
- " }\n" +
- " private static boolean compare(String textBlock) {\n" +
- " char LF = (char) 0x000A;\n" +
- " String str = \"v\" + LF + LF + '\\u0076' + \"aa\";\n" +
- " return textBlock.equals(str.stripIndent());\n" +
- " }\n" +
- "}"
- },
- "true",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testCompliances_5() {
- runConformTest(
- new String[] {
- "C.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class C {\n" +
- " public static void main(String argv[]) {\n" +
- " String textBlock = \"\"\"\n" +
- "aa\f" +
- "\f" +
- "\"\"\";\n" +
- " System.out.print(compare(textBlock));\n" +
- " }\n" +
- " private static boolean compare(String textBlock) {\n" +
- " char LF = (char) 0x000A;\n" +
- " String str = \"aa\" + LF + LF + \"\";\n" +
- " return textBlock.equals(str);\n" +
- " }\n" +
- "}"
- },
- "false",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testCompliances_6() {
- runConformTest(
- new String[] {
- "C.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class C {\n" +
- " public static void main(String argv[]) {\n" +
- " String textBlock = \"\"\"\n" +
- "\n" +
- "\"\"\";\n" +
- " System.out.print(compare(textBlock));\n" +
- " }\n" +
- " private static boolean compare(String textBlock) {\n" +
- " char LF = (char) 0x000A;\n" +
- " String str = \"\" + '\\u0015' + LF + \"\";\n" +
- " return textBlock.equals(str);\n" +
- " }\n" +
- "}"
- },
- "true",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testCompliances_7() {
- runConformTest(
- new String[] {
- "C.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class C {\n" +
- " public static void main(String argv[]) {\n" +
- " String textBlock = \"\"\"\n" +
- "aav\n" +
- "\"\"\";\n" +
- " System.out.print(compare(textBlock));\n" +
- " }\n" +
- " private static boolean compare(String textBlock) {\n" +
- " char LF = (char) 0x000A;\n" +
- " String str = \"aa\" + '\\u0076' + LF + \"\";\n" +
- " return textBlock.equals(str.stripIndent());\n" +
- " }\n" +
- "}"
- },
- "true",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testCompliances_8() {
- runConformTest(
- new String[] {
- "C.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class C {\n" +
- " public static void main(String argv[]) {\n" +
- " String textBlock = \"\"\"\n" +
- "\\\"some\\\"\\n \\\"string\\\" \\n \\\"here\\\"\\n\"\"\";\n" +
- " System.out.print(textBlock.length());\n" +
- " }\n" +
- "}"
- },
- "26",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- // Escaped """ with escaping at the first '"'
- public void testCompliances_9() {
- runConformTest(
- new String[] {
- "C.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class C {\n" +
- " public static void main(String argv[]) {\n" +
- " String textBlock = \"\"\"\n" +
- "some string ends with \\\"\"\"\\n\"\"\";\n" +
- " System.out.print(textBlock.length());\n" +
- " }\n" +
- "}"
- },
- "26",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- // Escaped """ with escaping at the second '"'
- public void testCompliances_10() {
- runConformTest(
- new String[] {
- "C.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class C {\n" +
- " public static void main(String argv[]) {\n" +
- " String textBlock = \"\"\"\n" +
- "some string ends with \"\\\"\"\\n\"\"\";\n" +
- " System.out.print(textBlock.length());\n" +
- " }\n" +
- "}"
- },
- "26",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- // Escaped """ with escaping at the third '"'
- public void testCompliances_11() {
- runConformTest(
- new String[] {
- "C.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class C {\n" +
- " public static void main(String argv[]) {\n" +
- " String textBlock = \"\"\"\n" +
- "some string ends with \"\"\\\"\\n\"\"\";\n" +
- " System.out.print(textBlock.length());\n" +
- " }\n" +
- "}"
- },
- "26",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testCompliances_12() {
- runConformTest(
- new String[] {
- "C.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class C {\n" +
- " public static void main(String argv[]) {\n" +
- " String textBlock = \"\"\"\n" +
- "\r\n" +
- " aa\"\"\";\n" +
- " System.out.print(compare(textBlock));\n" +
- " }\n" +
- " private static boolean compare(String textBlock) {\n" +
- " char LF = (char) 0x000A;\n" +
- " String str = \"\" + LF + \"aa\";\n" +
- " return textBlock.equals(str);\n" +
- " }\n" +
- "}"
- },
- "true",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testCompliances_13() {
- runConformTest(
- new String[] {
- "C.java",
- "@SuppressWarnings(\"preview\")\n" +
- "public class C {\n" +
- " public static void main(String argv[]) {\n" +
- " String textb = \"\"\"\n" +
- "\\0\\1\\2\\3\\4\\5\\6\\7\\10\\11\\12\\13\\14\\15\\16\\17\\20\\21\\22\\23\\24\\25\\26\\27\\30\\31\\32\\33\\34\\35\\36\\37\\40\\41\\42\\43\\44\\45\\46\\47\\50\\51\\52\\53\\54\\55\\56\\57\\60\\61\\62\\63\\64\\65\\66\\67\\70\\71\\72\\73\\74\\75\\76\\77\\100\\101\\102\\103\\104\\105\\106\\107\\110\\111\\112\\113\\114\\115\\116\\117\\120\\121\\122\\123\\124\\125\\126\\127\\130\\131\\132\\133\\134\\135\\136\\137\\140\\141\\142\\143\\144\\145\\146\\147\\150\\151\\152\\153\\154\\155\\156\\157\\160\\161\\162\\163\\164\\165\\166\\167\\170\\171\\172\\173\\174\\175\\176\\177\\200\\201\\202\\203\\204\\205\\206\\207\\210\\211\\212\\213\\214\\215\\216\\217\\220\\221\\222\\223\\224\\225\\226\\227\\230\\231\\232\\233\\234\\235\\236\\237\\240\\241\\242\\243\\244\\245\\246\\247\\250\\251\\252\\253\\254\\255\\256\\257\\260\\261\\262\\263\\264\\265\\266\\267\\270\\271\\272\\273\\274\\275\\276\\277\\300\\301\\302\\303\\304\\305\\306\\307\\310\\311\\312\\313\\314\\315\\316\\317\\320\\321\\322\\323\\324\\325\\326\\327\\330\\331\\332\\333\\334\\335\\336\\337\\340\\341\\342\\343\\344\\345\\346\\347\\350\\351\\352\\353\\354\\355\\356\\357\\360\\361\\362\\363\\364\\365\\366\\367\\370\\371\\372\\373\\374\\375\\376\\377\"\"\";\n" +
- " System.out.println(textb.length());\n" +
- " for (int i=0; i<=0xFF; i++) {\n" +
- " if (i != (int)textb.charAt(i)) {\n" +
- " System.out.println(\"Error in octal escape :\" + i);\n" +
- " }\n" +
- " }\n" +
- " }\n" +
- "}"
- },
- "256",
- getCompilerOptions(),
- new String[] {"--enable-preview"});
- }
- public void testBug553252() {
- Map defaultOptions = super.getCompilerOptions();
- Map copy = new HashMap(defaultOptions);
- copy.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_13);
- copy.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_13);
- copy.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_13);
- copy.put(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.ENABLED);
- copy.put(CompilerOptions.OPTION_ReportPreviewFeatures, CompilerOptions.IGNORE);
- runNegativeTest(
- new String[] {
- "X.java",
- "public class X {\n" +
- " public static String textb = \"\"\"\n" +
- "\"\"\";\n" +
- " public static void main(String[] args) {\n" +
- " System.out.println(textb);\n" +
- " }\n" +
- "}\n"
- },
- "----------\n" +
- "1. ERROR in X.java (at line 0)\n" +
- " public class X {\n" +
- " ^\n" +
- "Preview features enabled at an invalid source release level 13, preview can be enabled only at source level 14\n" +
- "----------\n",
- null,
- true,
- copy);
- }
-}
diff --git a/org.eclipse.jdt.tests.latestBREE/src/org/eclipse/jdt/core/tests/model/CompletionTests13.java b/org.eclipse.jdt.tests.latestBREE/src/org/eclipse/jdt/core/tests/model/CompletionTests13.java
deleted file mode 100644
index 1f6c244471f..00000000000
--- a/org.eclipse.jdt.tests.latestBREE/src/org/eclipse/jdt/core/tests/model/CompletionTests13.java
+++ /dev/null
@@ -1,1601 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2019 IBM and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- *******************************************************************************/
-package org.eclipse.jdt.core.tests.model;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.internal.codeassist.RelevanceConstants;
-import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
-
-import junit.framework.Test;
-
-public class CompletionTests13 extends AbstractJavaModelCompletionTests {
-
- static {
-// TESTS_NAMES = new String[]{"test034"};
- }
-
- public CompletionTests13(String name) {
- super(name);
- }
- public void setUpSuite() throws Exception {
- if (COMPLETION_PROJECT == null) {
- COMPLETION_PROJECT = setUpJavaProject("Completion", "13");
- } else {
- setUpProjectCompliance(COMPLETION_PROJECT, "13");
- }
- super.setUpSuite();
- }
- public static Test suite() {
- return buildModelTestSuite(CompletionTests13.class);
- }
- public void test001() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/Switch.java",
- "public class Switch {\n" +
- " public static void bar(MyDay day) {\n" +
- " switch (day) {\n" +
- " case SATURDAY, SUN ->\n" +
- " System.out.println(day.toString());\n" +
- " }\n" +
- " }\n" +
- " public static void main(String[] args) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- "}\n" +
- "enum MyDay { SATURDAY, SUNDAY}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "SATURDAY, SUN";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "SUNDAY[FIELD_REF]{SUNDAY, LMyDay;, LMyDay;, SUNDAY, null, "+
- (RelevanceConstants.R_DEFAULT + RelevanceConstants.R_RESOLVED + RelevanceConstants.R_INTERESTING+
- RelevanceConstants.R_CASE + RelevanceConstants.R_EXACT_EXPECTED_TYPE +
- RelevanceConstants.R_ENUM + RelevanceConstants.R_ENUM_CONSTANT +
- RelevanceConstants.R_UNQUALIFIED + RelevanceConstants.R_NON_RESTRICTED)+ "}",
- requestor.getResults());
- }
- public void test002() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/Switch.java",
- "public class Switch {\n" +
- " public static void bar(MyDay day) {\n" +
- " switch (day) {\n" +
- " case SATURDAY, SUN :\n" +
- " System.out.println(day.toString());\n" +
- " }\n" +
- " }\n" +
- " public static void main(String[] args) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- "}\n" +
- "enum MyDay { SATURDAY, SUNDAY}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "SATURDAY, SUN";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "SUNDAY[FIELD_REF]{SUNDAY, LMyDay;, LMyDay;, SUNDAY, null, "+
- (RelevanceConstants.R_DEFAULT + RelevanceConstants.R_RESOLVED + RelevanceConstants.R_INTERESTING+
- RelevanceConstants.R_CASE + RelevanceConstants.R_EXACT_EXPECTED_TYPE +
- RelevanceConstants.R_ENUM + RelevanceConstants.R_ENUM_CONSTANT +
- RelevanceConstants.R_UNQUALIFIED + RelevanceConstants.R_NON_RESTRICTED)+ "}",
- requestor.getResults());
- }
- public void test003() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/Switch.java",
- "public class Switch {\n" +
- " public static void bar(MyDay day) {\n" +
- " switch (day) {\n" +
- " case SATU -> \n" +
- " System.out.println(day.toString());\n" +
- " }\n" +
- " }\n" +
- " public static void main(String[] args) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- "}\n" +
- "enum MyDay { SATURDAY, SUNDAY}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "SATU";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "SATURDAY[FIELD_REF]{SATURDAY, LMyDay;, LMyDay;, SATURDAY, null, "+
- (RelevanceConstants.R_DEFAULT + RelevanceConstants.R_RESOLVED + RelevanceConstants.R_INTERESTING+
- RelevanceConstants.R_CASE + RelevanceConstants.R_EXACT_EXPECTED_TYPE +
- RelevanceConstants.R_ENUM + RelevanceConstants.R_ENUM_CONSTANT +
- RelevanceConstants.R_UNQUALIFIED + RelevanceConstants.R_NON_RESTRICTED)+ "}",
- requestor.getResults());
- }
- public void test004() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/Switch.java",
- "public class Switch {\n" +
- " public static void bar(MyDay day) {\n" +
- " switch (day) {\n" +
- " case SATURDAY, SUNDAY, MOND -> \n" +
- " System.out.println(day.toString());\n" +
- " }\n" +
- " }\n" +
- " public static void main(String[] args) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- "}\n" +
- "enum MyDay { SATURDAY, SUNDAY, MONDAY}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "MOND";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "MONDAY[FIELD_REF]{MONDAY, LMyDay;, LMyDay;, MONDAY, null, "+
- (RelevanceConstants.R_DEFAULT + RelevanceConstants.R_RESOLVED + RelevanceConstants.R_INTERESTING+
- RelevanceConstants.R_CASE + RelevanceConstants.R_EXACT_EXPECTED_TYPE +
- RelevanceConstants.R_ENUM + RelevanceConstants.R_ENUM_CONSTANT +
- RelevanceConstants.R_UNQUALIFIED + RelevanceConstants.R_NON_RESTRICTED)+ "}",
- requestor.getResults());
- }
- public void test005() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/Switch.java",
- "public class Switch {\n" +
- " public static void bar(MyDay day) {\n" +
- " switch (day) {\n" +
- " case SATURDAY, SUND, MONDAY -> \n" +
- " System.out.println(day.toString());\n" +
- " }\n" +
- " }\n" +
- " public static void main(String[] args) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- "}\n" +
- "enum MyDay { SATURDAY, SUNDAY, MONDAY}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "SUND";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "SUNDAY[FIELD_REF]{SUNDAY, LMyDay;, LMyDay;, SUNDAY, null, "+
- (RelevanceConstants.R_DEFAULT + RelevanceConstants.R_RESOLVED + RelevanceConstants.R_INTERESTING+
- RelevanceConstants.R_CASE + RelevanceConstants.R_EXACT_EXPECTED_TYPE +
- RelevanceConstants.R_ENUM + RelevanceConstants.R_ENUM_CONSTANT +
- RelevanceConstants.R_UNQUALIFIED + RelevanceConstants.R_NON_RESTRICTED)+ "}",
- requestor.getResults());
- }
- public void test005a() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/Switch.java",
- "public class Switch {\n" +
- " public static void bar(MyDay day) {\n" +
- " switch (day) {\n" +
- " case SATURDAY, SUNDAY -> \n" +
- " System.out.println(day.toString());\n" +
- " case MON -> \n" +
- " System.out.println(day.toString());\n" +
- " }\n" +
- " }\n" +
- " public static void main(String[] args) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- "}\n" +
- "enum MyDay { SATURDAY, SUNDAY, MONDAY}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "case MON";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "MONDAY[FIELD_REF]{MONDAY, LMyDay;, LMyDay;, MONDAY, null, "+
- (RelevanceConstants.R_DEFAULT + RelevanceConstants.R_RESOLVED + RelevanceConstants.R_INTERESTING+
- RelevanceConstants.R_CASE + RelevanceConstants.R_EXACT_EXPECTED_TYPE +
- RelevanceConstants.R_ENUM + RelevanceConstants.R_ENUM_CONSTANT +
- RelevanceConstants.R_UNQUALIFIED + RelevanceConstants.R_NON_RESTRICTED)+ "}",
- requestor.getResults());
- }
- public void test006() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/Switch.java",
- """
- public class Switch {
- public static void bar(MyDay day) {
- switch (day.toS) {
- case "SATURDAY" ->
- System.out.println(day.toString());
- }
- }
- public static void main(String[] args) {
- bar(MyDay.SUNDAY);
- }
- }
- enum MyDay { SATURDAY, SUNDAY}
- """
- );
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "day.toS";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "toString[METHOD_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, 60}",
- requestor.getResults());
- }
- public void test007() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/Switch.java",
- "public class Switch {\n" +
- " public static void bar(MyDay day) {\n" +
- " switch (day.o) {\n" +
- " case 0 -> \n" +
- " System.out.println(day.toString());\n" +
- " }\n" +
- " }\n" +
- " public static void main(String[] args) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- "}\n" +
- "enum MyDay { SATURDAY, SUNDAY}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "day.o";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "ordinal[METHOD_REF]{ordinal(), Ljava.lang.Enum;, ()I, ordinal, null, 60}",
- requestor.getResults());
- }
- public void test008() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/Switch.java",
- "public class Switch {\n" +
- " public static void bar(MyDay day) {\n" +
- " switch (1 + day.o) {\n" +
- " case 0 -> \n" +
- " System.out.println(day.toString());\n" +
- " }\n" +
- " }\n" +
- " public static void main(String[] args) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- "}\n" +
- "enum MyDay { SATURDAY, SUNDAY}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "day.o";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "ordinal[METHOD_REF]{ordinal(), Ljava.lang.Enum;, ()I, ordinal, null, 90}",
- requestor.getResults());
- }
- public void test009() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/Switch.java",
- "public class Switch {\n" +
- " public static void bar(MyDay day) {\n" +
- " switch (1 + da) {\n" +
- " case 0 -> \n" +
- " System.out.println(day.toString());\n" +
- " }\n" +
- " }\n" +
- " public static void main(String[] args) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- "}\n" +
- "enum MyDay { SATURDAY, SUNDAY}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "1 + da";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "day[LOCAL_VARIABLE_REF]{day, null, LMyDay;, day, null, 52}",
- requestor.getResults());
- }
- public void test010() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/Switch.java",
- "public class Switch {\n" +
- " public static void bar(MyDay day) {\n" +
- " switch (1 + da + 1) {\n" +
- " case 0 -> \n" +
- " System.out.println(day.toString());\n" +
- " }\n" +
- " }\n" +
- " public static void main(String[] args) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- "}\n" +
- "enum MyDay { SATURDAY, SUNDAY}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "1 + da";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "day[LOCAL_VARIABLE_REF]{day, null, LMyDay;, day, null, 52}",
- requestor.getResults());
- }
- public void test011() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/Switch.java",
- "public class Switch {\n" +
- " public static void bar(int arg0) {\n" +
- " foo(\n" +
- " switch (arg) {\n" +
- " case 1 -> 1;\n" +
- " default -> 0;\n" +
- " }\n" +
- " });\n" +
- " public static void foo(int arg0) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- "}\n");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "switch (arg";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "arg0[LOCAL_VARIABLE_REF]{arg0, null, I, arg0, null, 52}",
- requestor.getResults());
- }
- public void test012() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/Switch.java",
- "public class Switch {\n" +
- " public static void bar(int arg0) {\n" +
- " foo(\n" +
- " switch (arg0) {\n" +
- " case 1 -> arg;\n" +
- " default -> 0;\n" +
- " }\n" +
- " });\n" +
- " public static void foo(int arg0) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- "}\n");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "-> arg";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "arg0[LOCAL_VARIABLE_REF]{arg0, null, I, arg0, null, 52}",
- requestor.getResults());
- }
- public void test013() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/Switch.java",
- "public class Switch {\n" +
- " public static void bar(int arg0) {\n" +
- " foo(\n" +
- " switch (0 + arg) {\n" +
- " case 1 -> 1;\n" +
- " default -> 0;\n" +
- " }\n" +
- " });\n" +
- " public static void foo(int arg0) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- "}\n");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "0 + arg";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "arg0[LOCAL_VARIABLE_REF]{arg0, null, I, arg0, null, 82}",
- requestor.getResults());
- }
- public void test014() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "public class X {\n" +
- " public static void bar(int arg0) {\n" +
- " foo(\n" +
- " swi);\n" +
- " public static void foo(int arg0) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- "}\n");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "swi";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "switch[KEYWORD]{switch, null, null, switch, null, 49}",
- requestor.getResults());
- }
- public void test015() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- """
- public class Switch {
- public static void bar(int arg0) {
- pointer: foo(
- switch (0 + arg0) {
- case 1 -> {break ;}
- default -> 0;
- }
- });
- public static void foo(int arg0) {
- bar(MyDay.SUNDAY);
- }
- }""");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "break ";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "pointer[LABEL_REF]{pointer, null, null, pointer, null, 49}",
- requestor.getResults());
- }
- public void test016() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "public class Switch {\n" +
- " public static void bar(int arg0) {\n" +
- " foo(\n" +
- " switch (0 + arg0) {\n" +
- " case 1 -> {break 1;}\n" +
- " default -> ar;\n" +
- " }\n" +
- " });\n" +
- " public static void foo(int arg0) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- "}\n");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "-> ar";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "arg0[LOCAL_VARIABLE_REF]{arg0, null, I, arg0, null, 52}",
- requestor.getResults());
- }
- public void test017() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- """
- public class Switch {
- public static void bar(int arg0) {
- int arg1 = 0;
- pointer: foo(
- switch (0 + arg0) {
- case 1 -> 1;
- default -> {break p;}
- }
- });
- public static void foo(int arg0) {
- bar(MyDay.SUNDAY);
- }
- }""");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "break p";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "pointer[LABEL_REF]{pointer, null, null, pointer, null, 49}",
- requestor.getResults());
- }
- public void test017a() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "public class Switch {\n" +
- " public static void bar(int arg0) {\n" +
- " foo(\n" +
- " argLabel: switch (0 + arg0) {\n" +
- " case 1 -> 1;\n" +
- " default -> {break ar;}\n" +
- " }\n" +
- " });\n" +
- " public static void foo(int arg0) {\n" +
- " bar(MyDay.SUNDAY);\n" +
- " }\n" +
- "}\n");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "break ar";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "argLabel[LABEL_REF]{argLabel, null, null, argLabel, null, 49}",
- requestor.getResults());
- }
- public void test018a() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "import org.eclipse.jdt.annotation.*;\n" +
- "import java.util.function.*;\n" +
- "interface IN0 {} \n" +
- "interface IN1 extends IN0 {} \n" +
- "interface IN2 extends IN0 {}\n" +
- "public class X {\n" +
- " @NonNull IN1 n_1() { return new IN1() {}; } \n" +
- " IN2 n_2() { return null; } \n" +
- " void m(@NonNull Supplier<@NonNull M> m2) { } \n" +
- " void testSw(int i) { \n" +
- " m(switch(i) { \n" +
- " case 1 -> this::n_; \n" +
- " case 2 -> () -> n1(); \n" +
- " case 3 -> null; \n" +
- " case 4 -> () -> n2(); \n" +
- " default -> this::n2; }); \n" +
- " }\n" +
- "}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "this::n_";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "n_1[METHOD_NAME_REFERENCE]{n_1, LX;, ()LIN1;, n_1, null, 60}\n" +
- "n_2[METHOD_NAME_REFERENCE]{n_2, LX;, ()LIN2;, n_2, null, 60}",
- requestor.getResults());
- }
- public void test018b() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "import org.eclipse.jdt.annotation.*;\n" +
- "interface IN0 {} \n" +
- "interface IN1 extends IN0 {} \n" +
- "interface IN2 extends IN0 {}\n" +
- "public class X {\n" +
- " @NonNull IN1 n_1() { return new IN1() {}; } \n" +
- " IN2 n_2() { return null; } \n" +
- " void m(@NonNull Supplier<@NonNull M> m2) { } \n" +
- " void testSw(int i) { \n" +
- " m(switch(i) { \n" +
- " case 2 -> () -> n_; \n" +
- " }\n" +
- "}\n" +
- "interface Supplier {\n" +
- " T get();\n" +
- "}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "-> n_";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "n_1[METHOD_REF]{n_1(), LX;, ()LIN1;, n_1, null, 52}\n" +
- "n_2[METHOD_REF]{n_2(), LX;, ()LIN2;, n_2, null, 52}",
- requestor.getResults());
- }
- public void test018c() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "import org.eclipse.jdt.annotation.*;\n" +
- "interface IN0 {} \n" +
- "interface IN1 extends IN0 {} \n" +
- "interface IN2 extends IN0 {}\n" +
- "public class X {\n" +
- " @NonNull IN1 n_1() { return new IN1() {}; } \n" +
- " IN2 n_2() { return null; } \n" +
- " void m(@NonNull Supplier<@NonNull M> m2) { } \n" +
- " void testSw(int i) { \n" +
- " m(switch(i) { \n" +
- " default -> this::n_; }); \n" +
- " }\n" +
- "}\n" +
- "interface Supplier {\n" +
- " T get();\n" +
- "}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "this::n_";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "n_1[METHOD_NAME_REFERENCE]{n_1, LX;, ()LIN1;, n_1, null, 60}\n" +
- "n_2[METHOD_NAME_REFERENCE]{n_2, LX;, ()LIN2;, n_2, null, 60}",
- requestor.getResults());
- }
- public void test018d() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "import org.eclipse.jdt.annotation.*;\n" +
- "interface IN0 {} \n" +
- "interface IN1 extends IN0 {} \n" +
- "interface IN2 extends IN0 {}\n" +
- "public class X {\n" +
- " @NonNull IN1 n_1() { return new IN1() {}; } \n" +
- " IN2 n_2() { return null; } \n" +
- " void m(@NonNull Supplier<@NonNull M> m2) { } \n" +
- " void testSw(int i) { \n" +
- " m(switch(i) { \n" +
- " default -> () -> n_; }); \n" +
- " }\n" +
- "}\n" +
- "interface Supplier {\n" +
- " T get();\n" +
- "}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "() -> n_";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "n_1[METHOD_REF]{n_1(), LX;, ()LIN1;, n_1, null, 52}\n" +
- "n_2[METHOD_REF]{n_2(), LX;, ()LIN2;, n_2, null, 52}",
- requestor.getResults());
- }
- public void test018e() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "import org.eclipse.jdt.annotation.*;\n" +
- "interface IN0 {} \n" +
- "interface IN1 extends IN0 {} \n" +
- "interface IN2 extends IN0 {}\n" +
- "public class X {\n" +
- " @NonNull IN1 n_1() { return new IN1() {}; } \n" +
- " IN2 n_2() { return null; } \n" +
- " void m(@NonNull Supplier<@NonNull M> m2) { } \n" +
- " void testSw(int i) { \n" +
- " m(switch(i) { \n" +
- " case 1 -> this::n_1; \n" +
- " case 2 -> () -> n_; \n" +
- " }\n" +
- "}\n" +
- "interface Supplier {\n" +
- " T get();\n" +
- "}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "() -> n_";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "n_1[LOCAL_VARIABLE_REF]{n_1, null, Ljava.lang.Object;, n_1, null, 51}\n" +
- "n_1[METHOD_REF]{n_1(), LX;, ()LIN1;, n_1, null, 52}\n" +
- "n_2[METHOD_REF]{n_2(), LX;, ()LIN2;, n_2, null, 52}",
- requestor.getResults());
- }
- public void test018f() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "import org.eclipse.jdt.annotation.*;\n" +
- "interface IN0 {} \n" +
- "interface IN1 extends IN0 {} \n" +
- "interface IN2 extends IN0 {}\n" +
- "public class X {\n" +
- " @NonNull IN1 n_1() { return new IN1() {}; } \n" +
- " IN2 n_2() { return null; } \n" +
- " void m(@NonNull Supplier<@NonNull M> m2) { } \n" +
- " void testSw(int i) { \n" +
- " m(switch(i) { \n" +
- " case 1 -> () -> n_1; \n" +
- " case 2 -> this::n_; \n" +
- " }\n" +
- "}\n" +
- "interface Supplier {\n" +
- " T get();\n" +
- "}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "this::n_";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "n_1[METHOD_NAME_REFERENCE]{n_1, LX;, ()LIN1;, n_1, null, 60}\n" +
- "n_2[METHOD_NAME_REFERENCE]{n_2, LX;, ()LIN2;, n_2, null, 60}",
- requestor.getResults());
- }
- public void test019() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "import org.eclipse.jdt.annotation.*;\n" +
- " void m(@NonNull Supplier<@NonNull M> m2) { } \n" +
- "public class X {\n" +
- " void testSw(int i) { \n" +
- " m(swi);\n" +
- "}\n" +
- "interface Supplier {\n" +
- " T get();\n" +
- "}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "swi";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "switch[KEYWORD]{switch, null, null, switch, null, 49}",
- requestor.getResults());
- }
- public void test020() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "public class X {\n" +
- " static final String MONDAY = \"MONDAY\";\n" +
- " static final String TUESDAY = \"TUESDAY\";\n" +
- " static final String WEDNESDAY = \"WEDNESDAY\";\n" +
- " static final String THURSDAY = \"THURSDAY\";\n" +
- " static final String FRIDAY = \"FRIDAY\";\n" +
- " static final String SATURDAY = \"SATURDAY\";\n" +
- " static final String SUNDAY = \"SUNDAY\"; \n" +
- " @SuppressWarnings(\"preview\")\n" +
- " public static void main(String[] args) {\n" +
- " String day = \"MONDAY\";\n" +
- " switch (day) {\n" +
- " case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);\n" +
- " case TUESDAY -> System.out.println(7);\n" +
- " case THURSDAY, SATURDAY -> System.out.println(8);\n" +
- " case WEDNESDAY -> System.out.println(9);\n" +
- " }\n" +
- " int k = switch (day) {\n" +
- " case MONDAY -> throw new NullPointerException();\n" +
- " case TUESDAY -> 1;\n" +
- " case WEDNESDAY -> {break 10;}\n" +
- " default -> {\n" +
- " int g = day.h();\n" +
- " int result = f(g);\n" +
- " break result;\n" +
- " }};\n" +
- " }\n" +
- " static int f(int k) {\n" +
- " return k*k;\n" +
- " }\n" +
- "}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "day.h";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "hashCode[METHOD_REF]{hashCode, Ljava.lang.Object;, ()I, hashCode, null, 90}",
- requestor.getResults());
- }
- public void test021() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "public class X {\n" +
- " static final String MONDAY = \"MONDAY\";\n" +
- " static final String TUESDAY = \"TUESDAY\";\n" +
- " static final String WEDNESDAY = \"WEDNESDAY\";\n" +
- " static final String THURSDAY = \"THURSDAY\";\n" +
- " static final String FRIDAY = \"FRIDAY\";\n" +
- " static final String SATURDAY = \"SATURDAY\";\n" +
- " static final String SUNDAY = \"SUNDAY\"; \n" +
- " @SuppressWarnings(\"preview\")\n" +
- " public static void main(String[] args) {\n" +
- " String day = \"MONDAY\";\n" +
- " int k = switch (day) {\n" +
- " case MONDAY -> throw new NullPointerException();\n" +
- " case TUESDAY -> 1;\n" +
- " case WEDNESDAY -> {break 10;}\n" +
- " default -> {\n" +
- " int g = day.h();\n" +
- " int result = f(g);\n" +
- " break result;\n" +
- " }};\n" +
- " }\n" +
- " static int f(int k) {\n" +
- " return k*k;\n" +
- " }\n" +
- "}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "day.h";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "hashCode[METHOD_REF]{hashCode, Ljava.lang.Object;, ()I, hashCode, null, 90}",
- requestor.getResults());
- }
- /*
- * Try completion for break keyword inside switch expression - negative
- */
- public void test022() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "public class X {\n" +
- " static final String MONDAY = \"MONDAY\";\n" +
- " static final String TUESDAY = \"TUESDAY\";\n" +
- " static final String WEDNESDAY = \"WEDNESDAY\";\n" +
- " @SuppressWarnings(\"preview\")\n" +
- " public static void main(String[] args) {\n" +
- " String day = \"MONDAY\";\n" +
- " int k = switch (day) {\n" +
- " case MONDAY -> throw new NullPointerException();\n" +
- " case TUESDAY -> 1;\n" +
- " case WEDNESDAY -> {br;}\n" +
- " default -> {\n" +
- " int g = day.hashCode();\n" +
- " int result = f(g);\n" +
- " yield result;\n" +
- " }};\n" +
- " }\n" +
- " static int f(int k) {\n" +
- " return k*k;\n" +
- " }\n" +
- "}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "case WEDNESDAY -> {br";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "break[KEYWORD]{break, null, null, break, null, 49}",
- requestor.getResults());
- }
- /*
- * Try completion for yield keyword - positive
- */
- public void test023() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- """
- public class X {
- @SuppressWarnings("preview")
- public static void main(String[] args) {
- String day = "MONDAY";
- int k = switch (day) {
- case "M" -> throw new NullPointerException();
- case "T" -> 1;
- case "W" -> {yi ;}
- default -> {
- int g = day.hashCode();
- int result = f(g);
- yield result;
- }};
- }
- static int f(int k) {
- return k*k;
- }
- }
- """);
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "case \"W\" -> {yi";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "yield[KEYWORD]{yield, null, null, yield, null, 49}",
- requestor.getResults());
- }
- /*
- * Try completion for yield with identifier - positive
- */
- public void test024() throws JavaModelException {
- String old = COMPLETION_PROJECT.getOption(CompilerOptions.OPTION_EnablePreviews, true);
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.ENABLED);
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "public class X {\n" +
- " @SuppressWarnings(\"preview\")\n" +
- " public static void main(String day) {\n" +
- " int k = switch (day) {\n" +
- " default -> {\n" +
- " int g = day.hashCode();\n" +
- " int result = f(g);\n" +
- " yield res;\n" +
- " }};\n" +
- " }\n" +
- " static int f(int k) {\n" +
- " return k*k;\n" +
- " }\n" +
- "}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "yield res";
- int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "result[LOCAL_VARIABLE_REF]{result, null, I, result, null, 52}",
- requestor.getResults());
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, old);
- }
- /*
- * Try completion for yield with identifier with a preceding case with yield - positive
- */
- public void test024a() throws JavaModelException {
- String old = COMPLETION_PROJECT.getOption(CompilerOptions.OPTION_EnablePreviews, true);
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.ENABLED);
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "public class X {\n" +
- " @SuppressWarnings(\"preview\")\n" +
- " public static void main(String day) {\n" +
- " int k = switch (day) {\n" +
- " case TUESDAY -> { yield 1;}\n" +
- " default -> {\n" +
- " int g = day.hashCode();\n" +
- " int result = f(g);\n" +
- " yield res;\n" +
- " }};\n" +
- " }\n" +
- " static int f(int k) {\n" +
- " return k*k;\n" +
- " }\n" +
- "}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "yield res";
- int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "result[LOCAL_VARIABLE_REF]{result, null, I, result, null, 52}",
- requestor.getResults());
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, old);
- }
- /*
- * Try completion for yield with identifier with a preceding case with yield - positive
- */
- public void test024b() throws JavaModelException {
- String old = COMPLETION_PROJECT.getOption(CompilerOptions.OPTION_EnablePreviews, true);
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.ENABLED);
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "public class X {\n" +
- " @SuppressWarnings(\"preview\")\n" +
- " public static void main(String day) {\n" +
- " int k = switch (day) {\n" +
- " case TUESDAY -> { yield 1;}\n" +
- " default -> {\n" +
- " int g = day.hashCode();\n" +
- " int result = f(g);\n" +
- " yield 0 + res;\n" +
- " }};\n" +
- " }\n" +
- " static int f(int k) {\n" +
- " return k*k;\n" +
- " }\n" +
- "}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "yield 0 + res";
- int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "result[LOCAL_VARIABLE_REF]{result, null, I, result, null, 52}",
- requestor.getResults());
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, old);
- }
- /*
- * Try completion in a switch expression case block without any assist keyword
- */
- public void test024c() throws JavaModelException {
- String old = COMPLETION_PROJECT.getOption(CompilerOptions.OPTION_EnablePreviews, true);
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.ENABLED);
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "public class X {\n" +
- " @SuppressWarnings(\"preview\")\n" +
- " public static void main(String day) {\n" +
- " int k = switch (day) {\n" +
- " case TUESDAY -> { yield 1;}\n" +
- " default -> {\n" +
- " int[] g = new int[0];\n" +
- " yield g.;\n" +
- " }};\n" +
- " }\n" +
- " static int f(int k) {\n" +
- " return k*k;\n" +
- " }\n" +
- "}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "yield g.";
- int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "length[FIELD_REF]{length, [I, I, length, null, 49}\n" +
- "clone[METHOD_REF]{clone(), [I, ()[I, clone, null, 60}\n" +
- "equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), 60}\n" +
- "finalize[METHOD_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, 60}\n" +
- "getClass[METHOD_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class<+Ljava.lang.Object;>;, getClass, null, 60}\n" +
- "hashCode[METHOD_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, 60}\n" +
- "notify[METHOD_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, 60}\n" +
- "notifyAll[METHOD_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, 60}\n" +
- "toString[METHOD_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, 60}\n" +
- "wait[METHOD_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, 60}\n" +
- "wait[METHOD_REF]{wait(), Ljava.lang.Object;, (J)V, wait, (millis), 60}\n" +
- "wait[METHOD_REF]{wait(), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), 60}",
- requestor.getResults());
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, old);
- }
- /*
- * Try completion in a switch expression case block without any assist keyword
- */
- public void test024d() throws JavaModelException {
- String old = COMPLETION_PROJECT.getOption(CompilerOptions.OPTION_EnablePreviews, true);
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.ENABLED);
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "public class X {\n" +
- " @SuppressWarnings(\"preview\")\n" +
- " public static void main(String[] args) {\n" +
- " String day = args[0];\n" +
- " int k = switch (day) {\n" +
- " case TUESDAY -> { yield 1;}\n" +
- " default -> {\n" +
- " int[] g = args.;\n" +
- " yield g;\n" +
- " }};\n" +
- " }\n" +
- " static int f(int k) {\n" +
- " return k*k;\n" +
- " }\n" +
- "}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "int[] g = args.";
- int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "length[FIELD_REF]{length, [Ljava.lang.String;, I, length, null, 49}\n" +
- "finalize[METHOD_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, 55}\n" +
- "notify[METHOD_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, 55}\n" +
- "notifyAll[METHOD_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, 55}\n" +
- "wait[METHOD_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, 55}\n" +
- "wait[METHOD_REF]{wait(), Ljava.lang.Object;, (J)V, wait, (millis), 55}\n" +
- "wait[METHOD_REF]{wait(), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), 55}\n" +
- "clone[METHOD_REF]{clone(), [Ljava.lang.String;, ()[Ljava.lang.String;, clone, null, 60}\n" +
- "equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), 60}\n" +
- "getClass[METHOD_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class<+Ljava.lang.Object;>;, getClass, null, 60}\n" +
- "hashCode[METHOD_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, 60}\n" +
- "toString[METHOD_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, 60}",
- requestor.getResults());
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, old);
- }
- /*
- * Try completion for yield with value inside switch - positive
- */
- public void test025() throws JavaModelException {
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- "public class X {\n" +
- " static final String MONDAY = \"MONDAY\";\n" +
- " static final String TUESDAY = \"TUESDAY\";\n" +
- " static final String WEDNESDAY = \"WEDNESDAY\";\n" +
- " @SuppressWarnings(\"preview\")\n" +
- " public static void main(String[] args) {\n" +
- " resolve: {" +
- " String day = \"MONDAY\";\n" +
- " int k = switch (day) {\n" +
- " case MONDAY -> throw new NullPointerException();\n" +
- " case TUESDAY -> 1;\n" +
- " case WEDNESDAY -> {yield 10;}\n" +
- " default -> {\n" +
- " yield day.h;\n" +
- " }};\n" +
- " }" +
- " }\n" +
- " static int f(int k) {\n" +
- " return k*k;\n" +
- " }\n" +
- "}");
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "yield day.h";
- int cursorLocation = str.indexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "hashCode[METHOD_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, 60}",
- requestor.getResults());
- }
- /*
- * Try completion for yield keyword - inside nested block
- */
- public void test026() throws JavaModelException {
- String old = COMPLETION_PROJECT.getOption(CompilerOptions.OPTION_EnablePreviews, true);
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.ENABLED);
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- """
- public class X {
- @SuppressWarnings("preview")
- public static void main(String day) {
- int k = switch (day) {
- case "W" -> {yield 2;}
- default -> {
- int g = day.hashCode();
- int result = f(g);
- {
- yie;
- }
- }};
- }
- static int f(int k) {
- return k*k;
- }
- }
- """);
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "yie";
- int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "yield[KEYWORD]{yield, null, null, yield, null, 49}",
- requestor.getResults());
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, old);
- }
- /*
- * Try completion for yield - inside nested block
- */
- public void test027() throws JavaModelException {
- String old = COMPLETION_PROJECT.getOption(CompilerOptions.OPTION_EnablePreviews, true);
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.ENABLED);
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- """
- public class X {
- @SuppressWarnings("preview")
- public static void main(String day) {
- int k = switch (day) {
- case "W" -> {yield 2;}
- default -> {
- int g = day.hashCode();
- int result = f(g);
- {
- yield res;
- }
- }};
- }
- static int f(int k) {
- return k*k;
- }
- }
- """);
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "yield res";
- int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "result[LOCAL_VARIABLE_REF]{result, null, I, result, null, 52}",
- requestor.getResults());
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, old);
- }
- /*
- * Try completion for yield - inside nested block
- */
- public void test028() throws JavaModelException {
- String old = COMPLETION_PROJECT.getOption(CompilerOptions.OPTION_EnablePreviews, true);
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.ENABLED);
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- """
- public class X {
- @SuppressWarnings("preview")
- public static void main(String day) {
- int k = switch (day) {
- case "W" -> {yield 2;}
- default -> {
- int g = day.hashCode();
- int result = f(g);
- {
- for(int i = 0; i < 3; i++) {
- if (i == 0) {
- yield day.h
- }
- }
- yield 0;
- }
- }};
- }
- static int f(int k) {
- return k*k;
- }
- }
- """);
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "yield day.h";
- int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "hashCode[METHOD_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, 60}",
- requestor.getResults());
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, old);
- }
- /*
- * Try completion of other keywords inside switch expression nested block
- */
- public void test029() throws JavaModelException {
- String old = COMPLETION_PROJECT.getOption(CompilerOptions.OPTION_EnablePreviews, true);
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.ENABLED);
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- """
- public class X {
- @SuppressWarnings("preview")
- public static void main(String day) {
- int k = switch (day) {
- case "W" -> {yield 2;}
- default -> {
- int g = day.hashCode();
- int result = f(g);
- {
- for(int i = 0; i < 3; i++) {
- if (i == 0) {
- thr
- }
- }
- yield 0;
- }
- }};
- }
- static int f(int k) {
- return k*k;
- }
- }
- """);
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "thr";
- int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "Throwable[TYPE_REF]{Throwable, java.lang, Ljava.lang.Throwable;, null, null, 42}\n" +
- "throw[KEYWORD]{throw, null, null, throw, null, 49}",
- requestor.getResults());
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, old);
- }
- /*
- * Try completion of other keywords inside switch expression nested block
- */
- public void test030() throws JavaModelException {
- String old = COMPLETION_PROJECT.getOption(CompilerOptions.OPTION_EnablePreviews, true);
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.ENABLED);
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- """
- public class X {
- @SuppressWarnings("preview")
- public static void main(String day) {
- int k = switch (day) {
- case "W" -> {yield 2;}
- default -> {
- int g = day.hashCode();
- int result = f(g);
- {
- for(int i = 0; i < 3; i++) {
- if (i == 0) {
- throw Exc
- }
- }
- yield 0;
- }
- }};
- }
- static int f(int k) {
- return k*k;
- }
- }
- """);
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "throw Exc";
- int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "Exception[TYPE_REF]{Exception, java.lang, Ljava.lang.Exception;, null, null, 52}",
- requestor.getResults());
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, old);
- }
- /*
- * Try completion inside a lambda nested inside a switch expression
- */
- public void test031() throws JavaModelException {
- String old = COMPLETION_PROJECT.getOption(CompilerOptions.OPTION_EnablePreviews, true);
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.ENABLED);
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- """
- public class X {
- @SuppressWarnings("preview")
- public static void main(String[] args) {
- String day = "";
- int i = switch (day) {
- default -> {
- for (int j = 0; j < 3; j++) {
- if (j == 0) {
- IntPredicate pre = (_value) -> !test(_v);
- };
- }
- }
- yield 0;
- }
- };
- }
- private static boolean test(int value) {
- return false;
- }
- }
- interface IntPredicate {
- boolean test(int value);
- }
- """);
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "test(_v";
- int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "_value[LOCAL_VARIABLE_REF]{_value, null, I, _value, null, 52}",
- requestor.getResults());
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, old);
- }
- /*
- * Try completion inside a lambda (block) nested inside a switch expression
- */
- public void test032() throws JavaModelException {
- String old = COMPLETION_PROJECT.getOption(CompilerOptions.OPTION_EnablePreviews, true);
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.ENABLED);
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- """
- public class X {
- @SuppressWarnings("preview")
- public static void main(String[] args) {
- String day = "";
- int i = switch (day) {
- default -> {
- for (int j = 0; j < 3; j++) {
- if (j == 0) {
- IntPredicate pre = (_value) -> {
- return !test(_v);
- };
- }
- }
- yield 0;
- }
- };
- }
- private static boolean test(int value) {
- return false;
- }
- }
- interface IntPredicate {
- boolean test(int value);
- }
- """);
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "test(_v";
- int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "_value[LOCAL_VARIABLE_REF]{_value, null, I, _value, null, 52}",
- requestor.getResults());
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, old);
- }
- /*
- * Try completion inside a switch expression nested inside a lambda expression
- */
- public void test033() throws JavaModelException {
- String old = COMPLETION_PROJECT.getOption(CompilerOptions.OPTION_EnablePreviews, true);
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.ENABLED);
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- """
- public class X {
- @SuppressWarnings("preview")
- public static void main(String[] args) {
- IntPredicate pre = (_value) -> !test(
- switch (_value) {
- default -> {
- yield _v;
- }
- }
- );
- }
- private static boolean test(int value) {
- return false;
- }
- }
- interface IntPredicate {
- boolean test(int value);
- }
- """);
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "yield _v";
- int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "_value[LOCAL_VARIABLE_REF]{_value, null, I, _value, null, 52}",
- requestor.getResults());
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, old);
- }
- /*
- * Try completion inside a switch expression nested inside a lambda expression
- */
- public void test034() throws JavaModelException {
- String old = COMPLETION_PROJECT.getOption(CompilerOptions.OPTION_EnablePreviews, true);
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.ENABLED);
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/X.java",
- """
- public class X {
- @SuppressWarnings("preview")
- public static void main(String[] args) {
- IntPredicate pre = (_value) -> {
- return !test(
- switch (_value) {
- default -> {
- yield _v;
- }
- }
- );
- };
- }
- private static boolean test(int value) {
- return false;
- }
- }
- interface IntPredicate {
- boolean test(int value);
- }
- """);
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "yield _v";
- int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "_value[LOCAL_VARIABLE_REF]{_value, null, I, _value, null, 52}",
- requestor.getResults());
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, old);
- }
- public void testBug545783() throws JavaModelException {
- String old = COMPLETION_PROJECT.getOption(CompilerOptions.OPTION_EnablePreviews, true);
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.ENABLED);
- this.workingCopies = new ICompilationUnit[1];
- this.workingCopies[0] = getWorkingCopy(
- "/Completion/src/bugs/C.java",
- """
- package bugs;
- public class C {
- int foo(String str) {
- return switch (str) {
- case "x", "y" -> {
- yield 0;
- }
- default -> {
- i: for (int i = 0; i < 10; i++) {
- if (str.) {
- yield i;
- }
- }
- yield -1;
- }
- };
- }
- }
- """);
- CompletionTestsRequestor2 requestor = new CompletionTestsRequestor2(true);
- requestor.allowAllRequiredProposals();
- String str = this.workingCopies[0].getSource();
- String completeBehind = "if (str.";
- int cursorLocation = str.lastIndexOf(completeBehind) + completeBehind.length();
- this.workingCopies[0].codeComplete(cursorLocation, requestor, this.wcOwner);
- assertResults(
- "finalize[METHOD_REF]{finalize(), Ljava.lang.Object;, ()V, finalize, null, 55}\n" +
- "notify[METHOD_REF]{notify(), Ljava.lang.Object;, ()V, notify, null, 55}\n" +
- "notifyAll[METHOD_REF]{notifyAll(), Ljava.lang.Object;, ()V, notifyAll, null, 55}\n" +
- "wait[METHOD_REF]{wait(), Ljava.lang.Object;, ()V, wait, null, 55}\n" +
- "wait[METHOD_REF]{wait(), Ljava.lang.Object;, (J)V, wait, (millis), 55}\n" +
- "wait[METHOD_REF]{wait(), Ljava.lang.Object;, (JI)V, wait, (millis, nanos), 55}\n" +
- "clone[METHOD_REF]{clone(), Ljava.lang.Object;, ()Ljava.lang.Object;, clone, null, 60}\n" +
- "getClass[METHOD_REF]{getClass(), Ljava.lang.Object;, ()Ljava.lang.Class<+Ljava.lang.Object;>;, getClass, null, 60}\n" +
- "hashCode[METHOD_REF]{hashCode(), Ljava.lang.Object;, ()I, hashCode, null, 60}\n" +
- "length[METHOD_REF]{length(), Ljava.lang.String;, ()I, length, null, 60}\n" +
- "toString[METHOD_REF]{toString(), Ljava.lang.Object;, ()Ljava.lang.String;, toString, null, 60}\n" +
- "equals[METHOD_REF]{equals(), Ljava.lang.Object;, (Ljava.lang.Object;)Z, equals, (obj), 90}",
- requestor.getResults());
- COMPLETION_PROJECT.setOption(CompilerOptions.OPTION_EnablePreviews, old);
- }
-}
diff --git a/org.eclipse.jdt.tests.latestBREE/src/org/eclipse/jdt/tests/latestbree/Activator.java b/org.eclipse.jdt.tests.latestBREE/src/org/eclipse/jdt/tests/latestbree/Activator.java
deleted file mode 100644
index 30cd86bce64..00000000000
--- a/org.eclipse.jdt.tests.latestBREE/src/org/eclipse/jdt/tests/latestbree/Activator.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.eclipse.jdt.tests.latestbree;
-
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-
-public class Activator implements BundleActivator {
-
- private static BundleContext context;
-
- static BundleContext getContext() {
- return context;
- }
-
- public void start(BundleContext bundleContext) throws Exception {
- Activator.context = bundleContext;
- }
-
- public void stop(BundleContext bundleContext) throws Exception {
- Activator.context = null;
- }
-
-}
diff --git a/org.eclipse.jdt.tests.latestBREE/test.xml b/org.eclipse.jdt.tests.latestBREE/test.xml
deleted file mode 100644
index c5b0caf3d9c..00000000000
--- a/org.eclipse.jdt.tests.latestBREE/test.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-