Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManoj Palat2019-07-01 06:54:59 +0000
committerManoj Palat2019-07-01 08:17:53 +0000
commit5d58390bf2fb018a53c69e075d1416a113301107 (patch)
treeb6f179cf58cfb8d3615cfac6d43c7ddffd056b38
parentee8afd3f2611403b3beb75ba311eda4769a6da40 (diff)
downloadeclipse.jdt.core-I20190701-1805.tar.gz
eclipse.jdt.core-I20190701-1805.tar.xz
eclipse.jdt.core-I20190701-1805.zip
Bug 548811 - [compiler] Make scanner preview awareI20190702-0930I20190702-0610I20190701-1805
-rw-r--r--org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterCommentsTests.java3
-rw-r--r--org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/SelectionEngine.java3
-rw-r--r--org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java2
-rw-r--r--org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionScanner.java8
-rw-r--r--org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/select/SelectionParser.java2
-rw-r--r--org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/select/SelectionScanner.java4
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java3
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java3
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/RecoveryScanner.java7
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java41
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java9
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java26
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTConverter.java3
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTParser.java1
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java4
-rw-r--r--org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/DefaultCodeFormatter.java4
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/CorrectionEngine.java3
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/InternalNamingConventions.java3
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CommentRecorderParser.java3
19 files changed, 97 insertions, 35 deletions
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterCommentsTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterCommentsTests.java
index 936744cbae..6a97e9cb98 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterCommentsTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterCommentsTests.java
@@ -113,7 +113,8 @@ protected void assumeSourceEquals(String message, String expected, String actual
private String expectedFormattedSource(String source) {
DefaultCodeFormatter codeFormatter = codeFormatter();
- Scanner scanner = new Scanner(true, true, false/*nls*/, ClassFileConstants.JDK1_4/*sourceLevel*/, null/*taskTags*/, null/*taskPriorities*/, true/*taskCaseSensitive*/);
+ Scanner scanner = new Scanner(true, true, false/*nls*/, ClassFileConstants.JDK1_4/*sourceLevel*/, null/*taskTags*/, null/*taskPriorities*/, true/*taskCaseSensitive*/,
+ codeFormatter.previewEnabled);
CodeSnippetParsingUtil codeSnippetParsingUtil = new CodeSnippetParsingUtil();
CompilationUnitDeclaration compilationUnitDeclaration = codeSnippetParsingUtil.parseCompilationUnit(source.toCharArray(), getDefaultCompilerOptions(), true);
scanner.setSource(source.toCharArray());
diff --git a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/SelectionEngine.java b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/SelectionEngine.java
index 9127dc9511..b9453c197e 100644
--- a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/SelectionEngine.java
+++ b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/SelectionEngine.java
@@ -566,7 +566,8 @@ public final class SelectionEngine extends Engine implements ISearchRequestor {
this.compilerOptions.complianceLevel,
null/*taskTag*/,
null/*taskPriorities*/,
- true /*taskCaseSensitive*/);
+ true /*taskCaseSensitive*/,
+ this.compilerOptions.enablePreviewFeatures);
scanner.setSource(source);
int lastIdentifierStart = -1;
diff --git a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java
index 57de4023d1..38eaad8ce3 100644
--- a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java
+++ b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionParser.java
@@ -5200,7 +5200,7 @@ private void initializeForBlockStatements() {
}
@Override
public void initializeScanner(){
- this.scanner = new CompletionScanner(this.options.sourceLevel);
+ this.scanner = new CompletionScanner(this.options.sourceLevel, this.options.enablePreviewFeatures);
}
/**
* Returns whether the completion is just after an array type
diff --git a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionScanner.java b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionScanner.java
index 3f8a19a556..840bcae89c 100644
--- a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionScanner.java
+++ b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/complete/CompletionScanner.java
@@ -46,6 +46,11 @@ public class CompletionScanner extends Scanner {
public static final char[] EmptyCompletionIdentifier = {};
public CompletionScanner(long sourceLevel) {
+ this(
+ sourceLevel,
+ false /* previewEnabled */);
+}
+public CompletionScanner(long sourceLevel, boolean previewEnabled) {
super(
false /*comment*/,
false /*whitespace*/,
@@ -53,7 +58,8 @@ public CompletionScanner(long sourceLevel) {
sourceLevel,
null /*taskTags*/,
null/*taskPriorities*/,
- true/*taskCaseSensitive*/);
+ true/*taskCaseSensitive*/,
+ previewEnabled);
}
@Override
protected boolean isAtAssistIdentifier() {
diff --git a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/select/SelectionParser.java b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/select/SelectionParser.java
index af3958b02a..d994e69986 100644
--- a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/select/SelectionParser.java
+++ b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/select/SelectionParser.java
@@ -1520,7 +1520,7 @@ protected NameReference getUnspecifiedReferenceOptimized() {
}
@Override
public void initializeScanner(){
- this.scanner = new SelectionScanner(this.options.sourceLevel);
+ this.scanner = new SelectionScanner(this.options.sourceLevel, this.options.enablePreviewFeatures);
}
@Override
public ReferenceExpression newReferenceExpression() {
diff --git a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/select/SelectionScanner.java b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/select/SelectionScanner.java
index 473da40add..2dda5ffc6e 100644
--- a/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/select/SelectionScanner.java
+++ b/org.eclipse.jdt.core/codeassist/org/eclipse/jdt/internal/codeassist/select/SelectionScanner.java
@@ -31,8 +31,8 @@ public class SelectionScanner extends Scanner {
*
*/
-public SelectionScanner(long sourceLevel) {
- super(false /*comment*/, false /*whitespace*/, false /*nls*/, sourceLevel, null /*taskTags*/, null/*taskPriorities*/, true/*taskCaseSensitive*/);
+public SelectionScanner(long sourceLevel, boolean previewEnabled) {
+ super(false /*comment*/, false /*whitespace*/, false /*nls*/, sourceLevel, null /*taskTags*/, null/*taskPriorities*/, true/*taskCaseSensitive*/, previewEnabled);
}
@Override
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java
index c05672ebda..aa8f9770e2 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/AbstractCommentParser.java
@@ -105,7 +105,8 @@ public abstract class AbstractCommentParser implements JavadocTagConstants {
protected AbstractCommentParser(Parser sourceParser) {
this.sourceParser = sourceParser;
- this.scanner = new Scanner(false, false, false, ClassFileConstants.JDK1_3, null, null, true/*taskCaseSensitive*/);
+ this.scanner = new Scanner(false, false, false, ClassFileConstants.JDK1_3, null, null, true/*taskCaseSensitive*/,
+ sourceParser != null ? this.sourceParser.options.enablePreviewFeatures : false);
this.identifierStack = new char[20][];
this.identifierPositionStack = new long[20];
this.identifierLengthStack = new int[10];
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java
index 27b98f0bbc..221fbe6954 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java
@@ -11556,7 +11556,8 @@ public void initializeScanner(){
this.options.complianceLevel /*complianceLevel*/,
this.options.taskTags/*taskTags*/,
this.options.taskPriorities/*taskPriorities*/,
- this.options.isTaskCaseSensitive/*taskCaseSensitive*/);
+ this.options.isTaskCaseSensitive/*taskCaseSensitive*/,
+ this.options.enablePreviewFeatures /*isPreviewEnabled*/);
}
public void jumpOverMethodBody() {
//on diet parsing.....do not buffer method statements
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/RecoveryScanner.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/RecoveryScanner.java
index 4d08da2b42..7f612817c8 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/RecoveryScanner.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/RecoveryScanner.java
@@ -39,7 +39,8 @@ public class RecoveryScanner extends Scanner {
scanner.complianceLevel,
scanner.taskTags,
scanner.taskPriorities,
- scanner.isTaskCaseSensitive);
+ scanner.isTaskCaseSensitive,
+ scanner.previewEnabled);
setData(data);
}
@@ -51,6 +52,7 @@ public class RecoveryScanner extends Scanner {
char[][] taskTags,
char[][] taskPriorities,
boolean isTaskCaseSensitive,
+ boolean isPreviewEnabled,
RecoveryScannerData data) {
super(false,
tokenizeWhiteSpace,
@@ -59,7 +61,8 @@ public class RecoveryScanner extends Scanner {
complianceLevel,
taskTags,
taskPriorities,
- isTaskCaseSensitive);
+ isTaskCaseSensitive,
+ isPreviewEnabled);
setData(data);
}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java
index 84a0100330..a1f694c10f 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Scanner.java
@@ -52,6 +52,7 @@ public class Scanner implements TerminalTokens {
public boolean useAssertAsAnIndentifier = false;
//flag indicating if processed source contains occurrences of keyword assert
public boolean containsAssertKeyword = false;
+ public boolean previewEnabled;
// 1.5 feature
public boolean useEnumAsAnIndentifier = false;
@@ -242,7 +243,8 @@ public Scanner(
long complianceLevel,
char[][] taskTags,
char[][] taskPriorities,
- boolean isTaskCaseSensitive) {
+ boolean isTaskCaseSensitive,
+ boolean isPreviewEnabled) {
this.eofPosition = Integer.MAX_VALUE;
this.tokenizeComments = tokenizeComments;
@@ -252,6 +254,7 @@ public Scanner(
this.consumingEllipsisAnnotations = false;
this.complianceLevel = complianceLevel;
this.checkNonExternalizedStringLiterals = checkNonExternalizedStringLiterals;
+ this.previewEnabled = isPreviewEnabled;
if (taskTags != null) {
int taskTagsLength = taskTags.length;
int length = taskTagsLength;
@@ -290,7 +293,8 @@ public Scanner(
long sourceLevel,
char[][] taskTags,
char[][] taskPriorities,
- boolean isTaskCaseSensitive) {
+ boolean isTaskCaseSensitive,
+ boolean isPreviewEnabled) {
this(
tokenizeComments,
@@ -300,9 +304,30 @@ public Scanner(
sourceLevel,
taskTags,
taskPriorities,
- isTaskCaseSensitive);
+ isTaskCaseSensitive,
+ isPreviewEnabled);
}
+public Scanner(
+ boolean tokenizeComments,
+ boolean tokenizeWhiteSpace,
+ boolean checkNonExternalizedStringLiterals,
+ long sourceLevel,
+ char[][] taskTags,
+ char[][] taskPriorities,
+ boolean isTaskCaseSensitive) {
+
+ this(
+ tokenizeComments,
+ tokenizeWhiteSpace,
+ checkNonExternalizedStringLiterals,
+ sourceLevel,
+ sourceLevel,
+ taskTags,
+ taskPriorities,
+ isTaskCaseSensitive,
+ false);
+}
public final boolean atEnd() {
// This code is not relevant if source is
// Only a part of the real stream input
@@ -4436,8 +4461,9 @@ public static boolean isKeyword(int token) {
// Vanguard Scanner - A Private utility helper class for the scanner.
private static final class VanguardScanner extends Scanner {
- public VanguardScanner(long sourceLevel, long complianceLevel) {
- super (false /*comment*/, false /*whitespace*/, false /*nls*/, sourceLevel, complianceLevel, null/*taskTag*/, null/*taskPriorities*/, false /*taskCaseSensitive*/);
+ public VanguardScanner(long sourceLevel, long complianceLevel, boolean previewEnabled) {
+ super (false /*comment*/, false /*whitespace*/, false /*nls*/, sourceLevel, complianceLevel, null/*taskTag*/,
+ null/*taskPriorities*/, false /*taskCaseSensitive*/, previewEnabled);
}
@Override
@@ -4643,7 +4669,8 @@ private class ScanContextDetector extends VanguardParser {
this.options.complianceLevel /*complianceLevel*/,
this.options.taskTags/*taskTags*/,
this.options.taskPriorities/*taskPriorities*/,
- this.options.isTaskCaseSensitive/*taskCaseSensitive*/)
+ this.options.isTaskCaseSensitive/*taskCaseSensitive*/,
+ this.options.enablePreviewFeatures /*isPreviewEnabled*/)
{
@Override
void updateScanContext(int token) {
@@ -4677,7 +4704,7 @@ private class ScanContextDetector extends VanguardParser {
private VanguardParser getVanguardParser() {
if (this.vanguardParser == null) {
- this.vanguardScanner = new VanguardScanner(this.sourceLevel, this.complianceLevel);
+ this.vanguardScanner = new VanguardScanner(this.sourceLevel, this.complianceLevel, this.previewEnabled);
this.vanguardParser = new VanguardParser(this.vanguardScanner);
this.vanguardScanner.setActiveParser(this.vanguardParser);
}
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 496ceb709b..56cdae73b7 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
@@ -7757,7 +7757,8 @@ private int retrieveClosingAngleBracketPosition(int start) {
char[] contents = compilationUnit.getContents();
if (contents.length == 0) return start;
if (this.positionScanner == null) {
- this.positionScanner = new Scanner(false, false, false, this.options.sourceLevel, this.options.complianceLevel, null, null, false);
+ this.positionScanner = new Scanner(false, false, false, this.options.sourceLevel, this.options.complianceLevel, null, null, false,
+ this.options.enablePreviewFeatures);
this.positionScanner.returnOnlyGreater = true;
}
this.positionScanner.setSource(contents);
@@ -7796,7 +7797,8 @@ private int retrieveEndingPositionAfterOpeningParenthesis(int sourceStart, int s
char[] contents = compilationUnit.getContents();
if (contents.length == 0) return sourceEnd;
if (this.positionScanner == null) {
- this.positionScanner = new Scanner(false, false, false, this.options.sourceLevel, this.options.complianceLevel, null, null, false);
+ this.positionScanner = new Scanner(false, false, false, this.options.sourceLevel, this.options.complianceLevel, null, null, false,
+ this.options.enablePreviewFeatures);
}
this.positionScanner.setSource(contents);
this.positionScanner.resetTo(sourceStart, sourceEnd);
@@ -7825,7 +7827,8 @@ private int retrieveStartingPositionAfterOpeningParenthesis(int sourceStart, int
char[] contents = compilationUnit.getContents();
if (contents.length == 0) return sourceStart;
if (this.positionScanner == null) {
- this.positionScanner = new Scanner(false, false, false, this.options.sourceLevel, this.options.complianceLevel, null, null, false);
+ this.positionScanner = new Scanner(false, false, false, this.options.sourceLevel, this.options.complianceLevel, null, null, false,
+ this.options.enablePreviewFeatures);
}
this.positionScanner.setSource(contents);
this.positionScanner.resetTo(sourceStart, sourceEnd);
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java
index 78032b11ee..c4ff0314cd 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java
@@ -374,6 +374,7 @@ public final class AST {
complianceLevel = sourceLevel;
}
ast.scanner.complianceLevel = complianceLevel;
+ ast.scanner.previewEnabled = JavaCore.ENABLED.equals(options.get(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES));
int savedDefaultNodeFlag = ast.getDefaultNodeFlag();
ast.setDefaultNodeFlag(ASTNode.ORIGINAL);
BindingResolver resolver = null;
@@ -702,6 +703,7 @@ public final class AST {
*/
int apiLevel;
+ private boolean previewEnabled;
/**
* Tag bit value. This represents internal state of the tree.
*/
@@ -807,7 +809,8 @@ public final class AST {
ClassFileConstants.JDK1_5 /*complianceLevel*/,
null/*taskTag*/,
null/*taskPriorities*/,
- true/*taskCaseSensitive*/);
+ true/*taskCaseSensitive*/,
+ false/*isPreviewEnabled*/);
break;
case JLS4_INTERNAL :
this.apiLevel = level;
@@ -820,7 +823,8 @@ public final class AST {
ClassFileConstants.JDK1_7 /*complianceLevel*/,
null/*taskTag*/,
null/*taskPriorities*/,
- true/*taskCaseSensitive*/);
+ true/*taskCaseSensitive*/,
+ false/*isPreviewEnabled*/);
break;
case JLS8_INTERNAL :
this.apiLevel = level;
@@ -833,7 +837,8 @@ public final class AST {
ClassFileConstants.JDK1_8 /*complianceLevel*/,
null/*taskTag*/,
null/*taskPriorities*/,
- true/*taskCaseSensitive*/);
+ true/*taskCaseSensitive*/,
+ false/*isPreviewEnabled*/);
break;
case JLS9_INTERNAL :
this.apiLevel = level;
@@ -846,7 +851,8 @@ public final class AST {
ClassFileConstants.JDK9 /*complianceLevel*/,
null/*taskTag*/,
null/*taskPriorities*/,
- true/*taskCaseSensitive*/);
+ true/*taskCaseSensitive*/,
+ false/*isPreviewEnabled*/);
break;
case JLS10_INTERNAL :
this.apiLevel = level;
@@ -859,7 +865,8 @@ public final class AST {
ClassFileConstants.JDK10 /*complianceLevel*/,
null/*taskTag*/,
null/*taskPriorities*/,
- true/*taskCaseSensitive*/);
+ true/*taskCaseSensitive*/,
+ false/*isPreviewEnabled*/);
break;
case JLS11_INTERNAL :
this.apiLevel = level;
@@ -873,7 +880,8 @@ public final class AST {
compliance /*complianceLevel*/,
null/*taskTag*/,
null/*taskPriorities*/,
- true/*taskCaseSensitive*/);
+ true/*taskCaseSensitive*/,
+ false/*isPreviewEnabled*/);
break;
case JLS12_INTERNAL :
this.apiLevel = level;
@@ -887,7 +895,8 @@ public final class AST {
compliance /*complianceLevel*/,
null/*taskTag*/,
null/*taskPriorities*/,
- true/*taskCaseSensitive*/);
+ true/*taskCaseSensitive*/,
+ this.previewEnabled);
break;
default:
throw new IllegalArgumentException("Unsupported JLS level"); //$NON-NLS-1$
@@ -948,7 +957,8 @@ public final class AST {
complianceLevel /*complianceLevel*/,
null/*taskTag*/,
null/*taskPriorities*/,
- true/*taskCaseSensitive*/);
+ true/*taskCaseSensitive*/,
+ JavaCore.ENABLED.equals(options.get(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES)));
}
/**
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTConverter.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTConverter.java
index aaad47f1c5..3d431e15cf 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTConverter.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTConverter.java
@@ -109,7 +109,8 @@ class ASTConverter {
sourceLevel /*sourceLevel*/,
null /*taskTags*/,
null/*taskPriorities*/,
- true/*taskCaseSensitive*/);
+ true/*taskCaseSensitive*/,
+ JavaCore.ENABLED.equals(options.get(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES)));
this.monitor = monitor;
this.insideComments = JavaCore.ENABLED.equals(options.get(JavaCore.COMPILER_DOC_COMMENT_SUPPORT));
}
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTParser.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTParser.java
index c90c963674..9472e747ce 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTParser.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTParser.java
@@ -1345,6 +1345,7 @@ public class ASTParser {
if ((this.bits & CompilationUnitResolver.STATEMENT_RECOVERY) != 0) {
ast.setFlag(ICompilationUnit.ENABLE_STATEMENTS_RECOVERY);
}
+ ast.scanner.previewEnabled = JavaCore.ENABLED.equals(this.compilerOptions.get(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES));
converter.setAST(ast);
CodeSnippetParsingUtil codeSnippetParsingUtil = new CodeSnippetParsingUtil((this.bits & CompilationUnitResolver.IGNORE_METHOD_BODIES) != 0);
CompilationUnit compilationUnit = ast.newCompilationUnit();
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java
index ba2e0eeab0..9dd5439f1d 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/internal/core/dom/rewrite/ASTRewriteAnalyzer.java
@@ -219,7 +219,8 @@ public final class ASTRewriteAnalyzer extends ASTVisitor {
compilerOptions.complianceLevel,
null/*taskTags*/,
null/*taskPriorities*/,
- true/*taskCaseSensitive*/);
+ true/*taskCaseSensitive*/,
+ compilerOptions.enablePreviewFeatures/*isPreviewEnabled*/);
} else {
scanner =
new RecoveryScanner(
@@ -230,6 +231,7 @@ public final class ASTRewriteAnalyzer extends ASTVisitor {
null/*taskTags*/,
null/*taskPriorities*/,
true/*taskCaseSensitive*/,
+ compilerOptions.enablePreviewFeatures/*isPreviewEnabled*/,
this.recoveryScannerData);
}
scanner.setSource(this.content);
diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/DefaultCodeFormatter.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/DefaultCodeFormatter.java
index f4267e7df2..4c6e9470f3 100644
--- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/DefaultCodeFormatter.java
+++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/DefaultCodeFormatter.java
@@ -95,6 +95,7 @@ public class DefaultCodeFormatter extends CodeFormatter {
private Object oldCommentFormatOption;
private String sourceLevel;
+ public boolean previewEnabled;
private String sourceString;
char[] sourceArray;
@@ -127,6 +128,7 @@ public class DefaultCodeFormatter extends CodeFormatter {
this.oldCommentFormatOption = getOldCommentFormatOption(options);
String compilerSource = options.get(CompilerOptions.OPTION_Source);
this.sourceLevel = compilerSource != null ? compilerSource : CompilerOptions.VERSION_12;
+ this.previewEnabled = JavaCore.ENABLED.equals(options.get(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES));
} else {
Map<String, String> settings = DefaultCodeFormatterConstants.getJavaConventionsSettings();
this.originalOptions = new DefaultCodeFormatterOptions(settings);
@@ -388,7 +390,7 @@ public class DefaultCodeFormatter extends CodeFormatter {
private void tokenizeSource(int kind) {
this.tokens.clear();
Scanner scanner = new Scanner(true, false, false/* nls */, CompilerOptions.versionToJdkLevel(this.sourceLevel),
- null/* taskTags */, null/* taskPriorities */, false/* taskCaseSensitive */);
+ null/* taskTags */, null/* taskPriorities */, false/* taskCaseSensitive */, this.previewEnabled);
scanner.setSource(this.sourceArray);
scanner.fakeInModule = (kind & K_MODULE_INFO) != 0;
while (true) {
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/CorrectionEngine.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/CorrectionEngine.java
index d21b9bbb1b..d1caa2ecb8 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/CorrectionEngine.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/CorrectionEngine.java
@@ -252,7 +252,8 @@ public class CorrectionEngine {
complianceLevel,
null/*taskTag*/,
null/*taskPriorities*/,
- true /*taskCaseSensitive*/);
+ true /*taskCaseSensitive*/,
+ JavaCore.ENABLED.equals(currentProjectOptions.get(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES)));
scanner.setSource(source.toCharArray());
scanner.resetTo(this.correctionStart, this.correctionEnd);
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/InternalNamingConventions.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/InternalNamingConventions.java
index bcb3bbeb95..36b3f1d7e2 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/InternalNamingConventions.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/InternalNamingConventions.java
@@ -38,7 +38,8 @@ public class InternalNamingConventions {
compilerOptions.sourceLevel /*sourceLevel*/,
null /*taskTags*/,
null/*taskPriorities*/,
- true/*taskCaseSensitive*/);
+ true/*taskCaseSensitive*/,
+ compilerOptions.enablePreviewFeatures);
}
private static void acceptName(
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CommentRecorderParser.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CommentRecorderParser.java
index 48f9140974..20582f6b23 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CommentRecorderParser.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/util/CommentRecorderParser.java
@@ -273,7 +273,8 @@ public class CommentRecorderParser extends Parser {
this.options.sourceLevel /*sourceLevel*/,
this.options.taskTags/*taskTags*/,
this.options.taskPriorities/*taskPriorities*/,
- this.options.isTaskCaseSensitive/*taskCaseSensitive*/);
+ this.options.isTaskCaseSensitive/*taskCaseSensitive*/,
+ this.options.enablePreviewFeatures /*isPreviewEnabled*/);
}
/*

Back to the top