1 /*
   2  * @test /nodynamiccopyright/
   3  * @bug 6860973
   4  * @summary Project Coin: underscores in literals
   5  *
   6  * @compile/fail/ref=BadUnderscoreLiterals.7.out -XDrawDiagnostics BadUnderscoreLiterals.java
   7  * @compile/fail/ref=BadUnderscoreLiterals.6.out -XDrawDiagnostics -source 6 -Xlint:-options BadUnderscoreLiterals.java
   8  */
   9 
  10 public class BadUnderscoreLiterals {
  11     int valid = 1_1;            // valid literal; illegal in -source 6
  12 
  13     // test zero
  14     int z1 = _0;                // valid (but undefined) variable
  15     int z2 = 0_;                // trailing underscore
  16 
  17     // test simple (decimal) integers
  18     int i1 = _1_2_3;            // valid (but undefined) variable
  19     int i2 = 1_2_3_;            // trailing underscore
  20 
  21     // test binary integers
  22     int b1 = 0b_0;              // leading underscore after radix
  23     int b2 = 0b0_;              // trailing underscore
  24 
  25     // test hexadecimal integers
  26     int x1 = 0x_0;              // leading underscore after radix
  27     int x2 = 0x0_;              // trailing underscore
  28 
  29     // test floating point numbers
  30     float f1 = 0_.1;            // trailing underscore before decimal point
  31     float f2 = 0._1;            // leading underscore after decimal point
  32     float f3 = 0.1_;            // trailing underscore
  33     float f4 = 0.1_e0;          // trailing underscore before exponent
  34     float f5 = 0e_1;            // leading underscore in exponent
  35     float f6 = 0e1_;            // trailing underscore in exponent
  36 
  37     // hexadecimal floating point
  38     float xf1 = 0x_0.1p0;       // leading underscore after radix
  39     float xf2 = 0x0_.1p0;       // trailing underscore before decimal point
  40     float xf3 = 0x0._1p0;       // leading underscore after decimal point
  41     float xf4 = 0x0.1_p0;       // trailing underscore before exponent
  42     float xf5 = 0x0p_1;         // leading underscore after exponent
  43     float xf6 = 0x0p1_;         // trailing underscore
  44 }
  45