Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier Thomann2020-01-22 09:38:50 +0000
committerManoj Palat2020-01-22 09:38:50 +0000
commit1a3cbc632618c6874ffa739044b91a8a15cb3373 (patch)
treeeae52fe10057e269a06271f16aaab89eac43d461
parent12524a7fd7ce5303e458a59bbf5829905687e55d (diff)
downloadeclipse.jdt.core-1a3cbc632618c6874ffa739044b91a8a15cb3373.tar.gz
eclipse.jdt.core-1a3cbc632618c6874ffa739044b91a8a15cb3373.tar.xz
eclipse.jdt.core-1a3cbc632618c6874ffa739044b91a8a15cb3373.zip
Bug 422760 - Certain escaped digits in string literals causeI20200123-0525I20200123-0430I20200122-1805
InvalidArgumentException Change-Id: Ia35ab842c5371b43ea904cbd0b24be960ceb5f04 Signed-off-by: Olivier Thomann <Olivier_Thomann@ca.ibm.com>
-rw-r--r--org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ScannerTest.java16
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/ScannerHelper.java5
2 files changed, 16 insertions, 5 deletions
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ScannerTest.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ScannerTest.java
index 3f8bd30cc2..e8c64ccb6e 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ScannerTest.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ScannerTest.java
@@ -1540,5 +1540,19 @@ public class ScannerTest extends AbstractRegressionTest {
assertTrue(false);
}
}
-
+ /**
+ * http://bugs.eclipse.org/bugs/show_bug.cgi?id=422760
+ */
+ public void testBug422760() {
+ String sourceA001 = "\\u0660";
+ IScanner scanner = ToolFactory.createScanner(false, true, false, false);
+ scanner.setSource(sourceA001.toCharArray());
+ int token = 0;
+ try {
+ token = scanner.getNextToken();
+ } catch (InvalidInputException e) {
+ assertTrue(false);
+ }
+ assertEquals("Wrong token type", ITerminalSymbols.TokenNameIntegerLiteral, token);
+ }
}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/ScannerHelper.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/ScannerHelper.java
index 59ec2cd72a..8f6b5a870c 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/ScannerHelper.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/ScannerHelper.java
@@ -383,10 +383,7 @@ public static boolean isDigit(char c) throws InvalidInputException {
if(c < ScannerHelper.MAX_OBVIOUS) {
return (ScannerHelper.OBVIOUS_IDENT_CHAR_NATURES[c] & ScannerHelper.C_DIGIT) != 0;
}
- if (Character.isDigit(c)) {
- throw new InvalidInputException(Scanner.INVALID_DIGIT);
- }
- return false;
+ return Character.isDigit(c);
}
public static int digit(char c, int radix) {
if (c < ScannerHelper.MAX_OBVIOUS) {

Back to the top