diff options
author | Manoj Palat | 2020-10-30 08:51:49 +0000 |
---|---|---|
committer | Manoj Palat | 2020-10-30 14:20:13 +0000 |
commit | f396d6ad6a7349563fdb58976ed54285bfa0fdb6 (patch) | |
tree | d3ed8ebbc2d67e48281ed643cb60cc3a7fbe3f91 | |
parent | f1c0f2f95158ce4f2e31aa227426aaeeb02164b8 (diff) | |
download | eclipse.jdt.core-f396d6ad6a7349563fdb58976ed54285bfa0fdb6.tar.gz eclipse.jdt.core-f396d6ad6a7349563fdb58976ed54285bfa0fdb6.tar.xz eclipse.jdt.core-f396d6ad6a7349563fdb58976ed54285bfa0fdb6.zip |
Bug 566979 - No Syntax error seen: when "sealed" token used inI20201030-1800
method signature
Change-Id: I5bfb48ab285697caaa69bc826d65cddcfea442d6
3 files changed, 112 insertions, 7 deletions
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/RecordsRestrictedClassTest.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/RecordsRestrictedClassTest.java index e3c6a1b251..c93f4657e6 100644 --- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/RecordsRestrictedClassTest.java +++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/RecordsRestrictedClassTest.java @@ -2378,7 +2378,7 @@ public void testBug558718_001() { "1. ERROR in X.java (at line 1)\n" + " record R() {}\n" + " ^^^^^^\n" + - "Records is a preview feature and disabled by default. Use --enable-preview to enable\n" + + "Syntax error on token \"record\", record expected\n" + "----------\n", null, true, @@ -2399,7 +2399,7 @@ public void testBug558718_002() { "1. ERROR in X.java (at line 1)\n" + " record R() {}\n" + " ^^^^^^\n" + - "The preview feature Records is only available with source level 15 and above\n" + + "Syntax error on token \"record\", @ expected\n" + "----------\n" + "2. ERROR in X.java (at line 1)\n" + " record R() {}\n" + @@ -6870,7 +6870,7 @@ public void testBug564672b_039() { "1. ERROR in X.java (at line 1)\n" + " record Point(record x, int i) { }\n" + " ^^^^^^\n" + - "Records is a preview feature and disabled by default. Use --enable-preview to enable\n" + + "Syntax error on token \"record\", record expected\n" + "----------\n" + "2. WARNING in X.java (at line 7)\n" + " class record {}\n" + diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/SealedTypes15Tests.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/SealedTypes15Tests.java index 809d744db6..64095ac847 100644 --- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/SealedTypes15Tests.java +++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/SealedTypes15Tests.java @@ -31,7 +31,7 @@ public class SealedTypes15Tests extends AbstractRegressionTest9 { static { // TESTS_NUMBERS = new int [] { 40 }; // TESTS_RANGE = new int[] { 1, -1 }; -// TESTS_NAMES = new String[] { "testBug565847_001"}; +// TESTS_NAMES = new String[] { "testBug566979","testBug566980", "testBug566846"}; } public static Class<?> testClass() { @@ -2847,7 +2847,7 @@ public class SealedTypes15Tests extends AbstractRegressionTest9 { "1. ERROR in X.java (at line 1)\n" + " record X(permits p) {\n" + " ^^^^^^\n" + - "Records is a preview feature and disabled by default. Use --enable-preview to enable\n" + + "Syntax error on token \"record\", record expected\n" + "----------\n", null, true, @@ -4570,7 +4570,7 @@ public class SealedTypes15Tests extends AbstractRegressionTest9 { "1. ERROR in X.java (at line 1)\n" + " record X(sealed p) {\n" + " ^^^^^^\n" + - "Records is a preview feature and disabled by default. Use --enable-preview to enable\n" + + "Syntax error on token \"record\", record expected\n" + "----------\n", null, true, @@ -5305,4 +5305,109 @@ public class SealedTypes15Tests extends AbstractRegressionTest9 { options ); } + @SuppressWarnings({ "rawtypes" }) + public void testBug566979_001() { + Map options = getCompilerOptions(); + this.runNegativeTest( + new String[] { + "X.java", + "class X {\n"+ + " public sealed void main(String[] args){ }\n"+ + "}\n", + }, + "----------\n" + + "1. ERROR in X.java (at line 2)\n" + + " public sealed void main(String[] args){ }\n" + + " ^^^^^^\n" + + "Syntax error on token \"sealed\", static expected\n" + + "----------\n", + null, + true, + options + ); + } + @SuppressWarnings({ "unchecked", "rawtypes" }) + public void testBug566979_002() { + Map options = getCompilerOptions(); + options.put(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.DISABLED); + this.runNegativeTest( + new String[] { + "X.java", + "class X {\n"+ + " public sealed void main(String[] args){ }\n"+ + "}\n", + }, + "----------\n" + + "1. ERROR in X.java (at line 2)\n" + + " public sealed void main(String[] args){ }\n" + + " ^^^^^^\n" + + "Syntax error on token \"sealed\", static expected\n" + + "----------\n", + null, + true, + options + ); + } + @SuppressWarnings({ "rawtypes" }) + public void testBug566980_001() { + Map options = getCompilerOptions(); + this.runNegativeTest( + new String[] { + "X.java", + "class X {\n"+ + " public permits void main(String[] args){ }\n"+ + "}\n", + }, + "----------\n" + + "1. ERROR in X.java (at line 2)\n" + + " public permits void main(String[] args){ }\n" + + " ^^^^\n" + + "Syntax error on token \"void\", delete this token\n" + + "----------\n", + null, + true, + options + ); + } + @SuppressWarnings({ "unchecked", "rawtypes" }) + public void testBug566980_002() { + Map options = getCompilerOptions(); + options.put(CompilerOptions.OPTION_EnablePreviews, CompilerOptions.DISABLED); + this.runNegativeTest( + new String[] { + "X.java", + "class X {\n"+ + " public permits void main(String[] args){ }\n"+ + "}\n", + }, + "----------\n" + + "1. ERROR in X.java (at line 2)\n" + + " public permits void main(String[] args){ }\n" + + " ^^^^\n" + + "Syntax error on token \"void\", delete this token\n" + + "----------\n", + null, + true, + options + ); + } + @SuppressWarnings({ "rawtypes" }) + public void testBug566846_001() { + Map options = getCompilerOptions(); + this.runNegativeTest( + new String[] { + "X.java", + "record X;\n", + }, + "----------\n" + + "1. ERROR in X.java (at line 1)\n" + + " record X;\n" + + " ^^^^^^\n" + + "Syntax error on token \"record\", package expected\n" + + "----------\n", + null, + true, + options + ); + } } diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java index 1956d732b6..57044ac84e 100644 --- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java +++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java @@ -9541,7 +9541,7 @@ public boolean validateRestrictedKeywords(char[] name, int start, int end, boole for (char[] k : restrictedKeywords) { if (CharOperation.equals(name, k)) { if (reportSyntaxError) { - return validateJavaFeatureSupport(feature, start, end); +// return validateJavaFeatureSupport(feature, start, end); } else { if (feature.isPreview()) { int severity = isPreviewEnabled ? ProblemSeverities.Error | ProblemSeverities.Fatal : ProblemSeverities.Warning; |