| /******************************************************************************* |
| * Copyright (c) 2011, 2014 IBM Corporation 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 |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.jdt.core.tests.compiler.regression; |
| |
| import java.util.Map; |
| |
| import org.eclipse.jdt.internal.compiler.impl.CompilerOptions; |
| |
| import junit.framework.Test; |
| |
| @SuppressWarnings({ "unchecked", "rawtypes" }) |
| public class UnderscoresInLiteralsTest extends AbstractRegressionTest { |
| static { |
| // TESTS_NUMBERS = new int[] { 24 }; |
| } |
| public UnderscoresInLiteralsTest(String name) { |
| super(name); |
| } |
| public static Test suite() { |
| return buildMinimalComplianceTestSuite(testClass(), F_1_7); |
| } |
| |
| public static Class testClass() { |
| return UnderscoresInLiteralsTest.class; |
| } |
| |
| public void test001() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(0b_001);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(0b_001);\n" + |
| " ^^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test002() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(0_b001);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(0_b001);\n" + |
| " ^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test003() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(0b001_);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(0b001_);\n" + |
| " ^^^^^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test004() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(0x_11.0p33f);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(0x_11.0p33f);\n" + |
| " ^^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test005() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(0x11_.0p33f);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(0x11_.0p33f);\n" + |
| " ^^^^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test006() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(0x11._0p33f);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(0x11._0p33f);\n" + |
| " ^^^^^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test007() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(0x11.0_p33f);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(0x11.0_p33f);\n" + |
| " ^^^^^^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test008() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(0x11.0p_33f);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(0x11.0p_33f);\n" + |
| " ^^^^^^^^^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test009() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(0x11.0p33_f);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(0x11.0p33_f);\n" + |
| " ^^^^^^^^^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test010() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(0x_0001AEFBBA);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(0x_0001AEFBBA);\n" + |
| " ^^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test011() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(0_x0001AEFBBA);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(0_x0001AEFBBA);\n" + |
| " ^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test012() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(0x0001AEFBBA_);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(0x0001AEFBBA_);\n" + |
| " ^^^^^^^^^^^^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test013() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(_01234567);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(_01234567);\n" + |
| " ^^^^^^^^^\n" + |
| "_01234567 cannot be resolved to a variable\n" + |
| "----------\n"); |
| } |
| public void test014() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(01234567_);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(01234567_);\n" + |
| " ^^^^^^^^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test015() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(1_.236589954f);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(1_.236589954f);\n" + |
| " ^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test016() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(1._236589954f);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(1._236589954f);\n" + |
| " ^^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test017() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(1_e2);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(1_e2);\n" + |
| " ^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test018() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(1e_2);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(1e_2);\n" + |
| " ^^^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test019() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(1e2_);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(1e2_);\n" + |
| " ^^^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test020() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(01e2_);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(01e2_);\n" + |
| " ^^^^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test021() { |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(01_e2_);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(01_e2_);\n" + |
| " ^^^\n" + |
| "Underscores have to be located within digits\n" + |
| "----------\n"); |
| } |
| public void test022() { |
| Map customedOptions = getCompilerOptions(); |
| customedOptions.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_6); |
| customedOptions.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_6); |
| customedOptions.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_6); |
| this.runNegativeTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(0b1110000_);\n" + |
| " }\n" + |
| "}" |
| }, |
| "----------\n" + |
| "1. ERROR in X.java (at line 3)\n" + |
| " System.out.println(0b1110000_);\n" + |
| " ^^^^^^^^^^\n" + |
| "Underscores can only be used with source level 1.7 or greater\n" + |
| "----------\n", |
| null, |
| true, |
| customedOptions); |
| } |
| public void test023() { |
| this.runConformTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(0x1234____5678____90L);\n" + |
| " }\n" + |
| "}" |
| }, |
| "78187493520"); |
| } |
| public void test024() { |
| this.runConformTest( |
| new String[] { |
| "X.java", |
| "public class X {\n" + |
| " public static void main(String[] args) {\n" + |
| " System.out.println(90_00__00_0);\n" + |
| " }\n" + |
| "}" |
| }, |
| "9000000"); |
| } |
| } |