Project Coin numeric literals (IDEA-64808)

This commit is contained in:
Roman Shevchenko
2011-02-08 12:16:20 +01:00
parent 473c8cda31
commit e75d85ba43
14 changed files with 1232 additions and 885 deletions
@@ -1,64 +1,69 @@
/// assignment compatible types
import java.io.*;
import java.net.*;
public class a {
final int FI = 2;
final int FIBIG = 200000000;
void f() {
int i1=-<error descr="Integer number too large">2147483649</error>;
int i2=<error descr="Integer number too large">2147483648</error>;
int i3 = -2147483648;
int i4 = -0x7fffffff;
int i5 = -017777777777;
int i6 = <error descr="Hexadecimal numbers must contain at least one hexadecimal digit">0x</error>;
int i7 = 0xdeadbeef;
int i8 = 0xffffffff;
int i9=<error descr="Integer number too large">0xffffffff9</error>;
int i10= 0x80000000;
int i11=0000000000000+0x000000000;
int i12=0x00000000000000000000000;
int i13= <error descr="Integer number too large">040000000000</error>;
int i14= 020000000000;
int i15 = <error descr="Integer number too large">0xf044332211</error>;
int octale = 017777777777; // negative
int i1= -<error descr="Integer number too large">2147483649</error>;
int i2= <error descr="Integer number too large">2147483648</error>;
int i3 = -2147483648;
int i4 = -0x7fffffff;
int i5 = -017777777777;
int i6 = <error descr="Hexadecimal numbers must contain at least one hexadecimal digit">0x</error>;
int i7 = 0xdeadbeef;
int i8 = 0xffffffff;
int i9 = <error descr="Integer number too large">0xffffffff9</error>;
int i10 = 0x80000000;
int i11 = 0000000000000+0x000000000;
int i12 = 0x00000000000000000000000;
int i13 = <error descr="Integer number too large">040000000000</error>;
int i14 = 020000000000;
int i15 = <error descr="Integer number too large">0xf044332211</error>;
int octale = 017777777777; // negative
int bi1 = <error descr="Binary literals are only supported in JDK 7 or higher">0b0010</error>;
int bi2 = <error descr="Binary literals are only supported in JDK 7 or higher">0B0010</error>;
int bi3 = <error descr="Underscores in literals are only supported in JDK 7 or higher">1_2</error>;
long l1 = -<error descr="Long number too large">9223372036854775809L</error>;
long l2 = <error descr="Long number too large">9223372036854775808L</error>;
long l3 = -9223372036854775808L;
long l4 = -<error descr="Integer number too large">2147483649</error>;
long l5 = <error descr="Integer number too large">2147483648</error>;
long l6 = <error descr="Hexadecimal numbers must contain at least one hexadecimal digit">0xL</error>;
long l7 = 0xdeadbeefffffffffL;
long l8 = 0xffffffffffffffffL;
long l9 = <error descr="Long number too large">0xffffffffffffffff9L</error>;
long l10 = 0x8000000000000000L;
long octalValue = 01777777777777777777600L;
long octalValua = 01777777777777777777777L;
long bl1 = <error descr="Binary literals are only supported in JDK 7 or higher">0b0010l</error>;
long bl2 = <error descr="Binary literals are only supported in JDK 7 or higher">0B0010L</error>;
long bl3 = <error descr="Underscores in literals are only supported in JDK 7 or higher">10_24L</error>;
float f1= <error descr="Floating point number too small">1e-46f</error>;
float f2 = <error descr="Floating point number too large">1e39f</error>;
float f3 = 0E1F;
float f4 = <error descr="Hexadecimal floating point literals are only supported in JDK 5 or higher">0xabc.defP2f</error>;
float bf1 = <error descr="Underscores in literals are only supported in JDK 7 or higher">3.141_592f</error>;
long l1=-<error descr="Long number too large">9223372036854775809L</error>;
long l2=<error descr="Long number too large">9223372036854775808L</error>;
long l3=-9223372036854775808L;
long l4=-<error descr="Integer number too large">2147483649</error>;
long l5=<error descr="Integer number too large">2147483648</error>;
long l6 = <error descr="Hexadecimal numbers must contain at least one hexadecimal digit">0xL</error>;
long l7= 0xdeadbeefffffffffL;
long l8= 0xffffffffffffffffL;
long l9=<error descr="Long number too large">0xffffffffffffffff9L</error>;
long l10=0x8000000000000000L;
long octalValue = 01777777777777777777600L;
long octalValua = 01777777777777777777777L;
float f1= <error descr="Floating point number too small">1e-46f</error>;
float f2=<error descr="Floating point number too large">1e39f</error>;
float f3=0E1F;
double dd1=<error descr="Floating point number too small">1e-324</error>;
double dd2=<error descr="Floating point number too large">1e309</error>;
double dd3=0E1;
double d1=<error descr="Malformed floating point literal">1.E</error>;
double d2=<error descr="Malformed floating point literal">1.e</error>;
double d3=<error descr="Malformed floating point literal">1.E+</error>;
double d4=<error descr="Malformed floating point literal">1.E-</error>;
double d5=<error descr="Malformed floating point literal">.1eD</error>;
double d6=<error descr="Malformed floating point literal">.1e+D</error>;
double d7=<error descr="Malformed floating point literal">1e+D</error>;
double d8=<error descr="Malformed floating point literal">1e-D</error>;
double d9=<error descr="Malformed floating point literal">1e-d</error>;
double d10=<error descr="Malformed floating point literal">1e-F</error>;
double d11=<error descr="Malformed floating point literal">1e-f</error>;
double dd1 = <error descr="Floating point number too small">1e-324</error>;
double dd2 = <error descr="Floating point number too large">1e309</error>;
double dd3 = 0E1;
double dd4 = <error descr="Hexadecimal floating point literals are only supported in JDK 5 or higher">0x1.fffffffffffffP1023</error>;
double d1 = <error descr="Malformed floating point literal">1.E</error>;
double d2 = <error descr="Malformed floating point literal">1.e</error>;
double d3 = <error descr="Malformed floating point literal">1.E+</error>;
double d4 = <error descr="Malformed floating point literal">1.E-</error>;
double d5 = <error descr="Malformed floating point literal">.1eD</error>;
double d6 = <error descr="Malformed floating point literal">.1e+D</error>;
double d7 = <error descr="Malformed floating point literal">1e+D</error>;
double d8 = <error descr="Malformed floating point literal">1e-D</error>;
double d9 = <error descr="Malformed floating point literal">1e-d</error>;
double d10 = <error descr="Malformed floating point literal">1e-F</error>;
double d11 = <error descr="Malformed floating point literal">1e-f</error>;
double d12 = <error descr="Underscores in literals are only supported in JDK 7 or higher">3.141_592_653_589_793d</error>;
}
}
@@ -0,0 +1,45 @@
public class NumericLiterals {
void f() {
int i1 = 1_2;
int i2 = 012__34;
int i3 = 0x1_2_3_4;
int i4 = 0B0;
int i5 = 0b0001_0010_0100_1000;
int i6 = <error descr="Binary numbers must contain at least one binary digit">0b</error>;
int i7 = <error descr="Integer number too large">0b1_1111_1111_1111_1111_1111_1111_1111_1111</error>;
long l1 = 1_2L;
long l2 = 012__34l;
long l3 = 0x1_2_3_4L;
long l4 = 0B0L;
long l5 = 0b0001_0010_0100_1000l;
long l6 = <error descr="Binary numbers must contain at least one binary digit">0Bl</error>;
long l7 = <error descr="Long number too large">0B1_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111_1111L</error>;
float f1 = 1_0f;
float f2 = 1e1_2f;
float f3 = 2_2.f;
float f4 = .3_3f;
float f5 = 3.14_16f;
float f6 = 6.022___137e+2_3f;
float f7 = 0xa_ap1_0f;
float f8 = 0xa_b.p22F;
float f9 = 0x.ab__cP0f;
float f10 = 0xa_bc.d_efP0F;
float f11= <error descr="Floating point number too small">1e-4__6f</error>;
float f12 = <error descr="Floating point number too large">1e3_9f</error>;
double d1 = 0_0d;
double d2 = 1e1_1;
double d3 = 2_2.;
double d4 = .3_3;
double d5 = 3.141_592;
double d6 = 1e-9_9d;
double d7 = 1e1__3_7;
double d8 = 0xa_ap1;
double d9 = 0xa_b.P1_2;
double d10 = 0x.a_bcP1___23d;
double d11 = <error descr="Floating point number too small">1e-3_2_4</error>;
double d12 = <error descr="Floating point number too large">0xa_bc.de_fP1_234D</error>;
}
}