Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Herrmann2018-02-22 19:42:31 +0000
committerStephan Herrmann2018-02-22 19:45:18 +0000
commitd64ed58ebbe7f94e8d2bf38d698b715027951334 (patch)
tree0ec6afec4a1964bd65b3782b6d901f5b1bad39ad
parentba245b29accf4d2111cf50a63ac07dd67247aeb5 (diff)
downloadeclipse.jdt.ui-d64ed58ebbe7f94e8d2bf38d698b715027951334.tar.gz
eclipse.jdt.ui-d64ed58ebbe7f94e8d2bf38d698b715027951334.tar.xz
eclipse.jdt.ui-d64ed58ebbe7f94e8d2bf38d698b715027951334.zip
Bug 521249 - [9] Document that Java 9 systematically breaks IScannerI20180222-2000
-rw-r--r--org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/nls/NLSScanner.java5
-rw-r--r--org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/MethodOccurenceCollector.java9
-rw-r--r--org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/TypeOccurrenceCollector.java2
-rw-r--r--org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/reorg/MoveCuUpdateCreator.java2
-rw-r--r--org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/nls/search/NLSSearchResultRequestor.java15
5 files changed, 25 insertions, 8 deletions
diff --git a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/nls/NLSScanner.java b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/nls/NLSScanner.java
index 1fa6ee1110..3218cc4a48 100644
--- a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/nls/NLSScanner.java
+++ b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/nls/NLSScanner.java
@@ -32,6 +32,9 @@ import org.eclipse.jdt.core.compiler.InvalidInputException;
public class NLSScanner {
+ @SuppressWarnings("deprecation")
+ private static final int InternalTokenNameIdentifier = ITerminalSymbols.TokenNameIdentifier;
+
//no instances
private NLSScanner() {
}
@@ -81,7 +84,7 @@ public class NLSScanner {
insideAnnotation.clear(); //e.g. @interface
break;
- case ITerminalSymbols.TokenNameIdentifier:
+ case InternalTokenNameIdentifier:
if (! insideAnnotation.isEmpty()) {
int[] parenCounter= insideAnnotation.getLast();
if (parenCounter[0] == -1)
diff --git a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/MethodOccurenceCollector.java b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/MethodOccurenceCollector.java
index 7d88247d25..60648d7e21 100644
--- a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/MethodOccurenceCollector.java
+++ b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/MethodOccurenceCollector.java
@@ -26,6 +26,13 @@ import org.eclipse.jdt.internal.corext.refactoring.base.ReferencesInBinaryContex
class MethodOccurenceCollector extends CuCollectingSearchRequestor {
+ /**
+ * Warning-free alias for <code>ITerminalSymbols.TokenNameIdentifier</code>.
+ * Should ideally use this only when you are sure it's not module-info.java
+ */
+ @SuppressWarnings("deprecation")
+ private static final int InternalTokenNameIdentifier= ITerminalSymbols.TokenNameIdentifier;
+
private final String fName;
public MethodOccurenceCollector(String methodName) {
@@ -76,7 +83,7 @@ class MethodOccurenceCollector extends CuCollectingSearchRequestor {
try {
int token = scanner.getNextToken();
while (token != ITerminalSymbols.TokenNameEOF && token != ITerminalSymbols.TokenNameLPAREN) { // reference in code includes arguments in parentheses
- if (token == ITerminalSymbols.TokenNameIdentifier) {
+ if (token == InternalTokenNameIdentifier) {
simpleNameStart= scanner.getCurrentTokenStartPosition();
simpleNameEnd= scanner.getCurrentTokenEndPosition();
}
diff --git a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/TypeOccurrenceCollector.java b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/TypeOccurrenceCollector.java
index 855895b669..ab6ae7402b 100644
--- a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/TypeOccurrenceCollector.java
+++ b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/rename/TypeOccurrenceCollector.java
@@ -69,7 +69,7 @@ public class TypeOccurrenceCollector extends CuCollectingSearchRequestor {
try {
int token = scanner.getNextToken();
while (token != ITerminalSymbols.TokenNameEOF) {
- if (token == ITerminalSymbols.TokenNameIdentifier) {
+ if (token == ITerminalSymbols.TokenNameIdentifier) { // type reference can occur in module-info.java and collide with a restricted keyword.
simpleNameStart= scanner.getCurrentTokenStartPosition();
simpleNameEnd= scanner.getCurrentTokenEndPosition();
}
diff --git a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/reorg/MoveCuUpdateCreator.java b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/reorg/MoveCuUpdateCreator.java
index 6d19392586..02cbde55c5 100644
--- a/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/reorg/MoveCuUpdateCreator.java
+++ b/org.eclipse.jdt.ui/core refactoring/org/eclipse/jdt/internal/corext/refactoring/reorg/MoveCuUpdateCreator.java
@@ -369,7 +369,7 @@ public class MoveCuUpdateCreator {
try {
int tokenType= fScanner.getNextToken();
while (tokenType != ITerminalSymbols.TokenNameEOF) {
- if (tokenType == ITerminalSymbols.TokenNameIdentifier)
+ if (tokenType == ITerminalSymbols.TokenNameIdentifier) // TODO: could we be in the context of module-info.java, conflicting with restricted keywords?
lastIdentifierStart= fScanner.getCurrentTokenStartPosition();
tokenType= fScanner.getNextToken();
}
diff --git a/org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/nls/search/NLSSearchResultRequestor.java b/org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/nls/search/NLSSearchResultRequestor.java
index 2ef32f6d52..368ce70fc8 100644
--- a/org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/nls/search/NLSSearchResultRequestor.java
+++ b/org.eclipse.jdt.ui/ui refactoring/org/eclipse/jdt/internal/ui/refactoring/nls/search/NLSSearchResultRequestor.java
@@ -58,6 +58,13 @@ import org.eclipse.jdt.internal.ui.util.StringMatcher;
class NLSSearchResultRequestor extends SearchRequestor {
+
+ /**
+ * Warning-free alias for <code>ITerminalSymbols.TokenNameIdentifier</code>.
+ */
+ @SuppressWarnings("deprecation")
+ protected static final int InternalTokenNameIdentifier= ITerminalSymbols.TokenNameIdentifier;
+
/*
* Matches are added to fResult. Element (group key) is IJavaElement or FileEntry.
*/
@@ -253,7 +260,7 @@ class NLSSearchResultRequestor extends SearchRequestor {
if (scanner.getNextToken() != ITerminalSymbols.TokenNameDOT)
return null;
- if (scanner.getNextToken() != ITerminalSymbols.TokenNameIdentifier)
+ if (scanner.getNextToken() != InternalTokenNameIdentifier) // assuming that unit is not module-info.java
return null;
String src= new String(scanner.getCurrentTokenSource());
@@ -264,14 +271,14 @@ class NLSSearchResultRequestor extends SearchRequestor {
// Old school
// next must be key string. Ignore methods which do not take a single String parameter (Bug 295040).
int nextToken= scanner.getNextToken();
- if (nextToken != ITerminalSymbols.TokenNameStringLiteral && nextToken != ITerminalSymbols.TokenNameIdentifier)
+ if (nextToken != ITerminalSymbols.TokenNameStringLiteral && nextToken != InternalTokenNameIdentifier)
return null;
tokenStart= scanner.getCurrentTokenStartPosition();
tokenEnd= scanner.getCurrentTokenEndPosition();
int token;
while ((token= scanner.getNextToken()) == ITerminalSymbols.TokenNameDOT) {
- if ((nextToken= scanner.getNextToken()) != ITerminalSymbols.TokenNameIdentifier) {
+ if ((nextToken= scanner.getNextToken()) != InternalTokenNameIdentifier) {
return null;
}
tokenStart= scanner.getCurrentTokenStartPosition();
@@ -284,7 +291,7 @@ class NLSSearchResultRequestor extends SearchRequestor {
keyPositionResult.setOffset(tokenStart + 1);
keyPositionResult.setLength(tokenEnd - tokenStart - 1);
return source.substring(tokenStart + 1, tokenEnd);
- } else if (nextToken == ITerminalSymbols.TokenNameIdentifier) {
+ } else if (nextToken == InternalTokenNameIdentifier) {
keyPositionResult.setOffset(tokenStart);
keyPositionResult.setLength(tokenEnd - tokenStart + 1);
IType parentClass= (IType)enclosingElement.getAncestor(IJavaElement.TYPE);

Back to the top