[java] improves "unsupported language level" message (IDEA-168859)

This commit is contained in:
Roman Shevchenko
2017-03-06 11:27:27 +01:00
parent f445fe460d
commit 74daf8d522
15 changed files with 252 additions and 214 deletions
@@ -20,9 +20,9 @@ public class NumericLiterals {
int i15 = <error descr="Integer number too large">0xf044332211</error>;
int oi1 = 017777777777;
int oi2 = <error descr="Integer number too large">08</error>;
int bi1 = <error descr="Binary literals are not supported at this language level">0b0010</error>;
int bi2 = <error descr="Binary literals are not supported at this language level">0B0010</error>;
int bi3 = <error descr="Underscores in literals are not supported at this language level">1_2</error>;
int bi1 = <error descr="Binary literals are not supported at language level '1.4'">0b0010</error>;
int bi2 = <error descr="Binary literals are not supported at language level '1.4'">0B0010</error>;
int bi3 = <error descr="Underscores in literals are not supported at language level '1.4'">1_2</error>;
long l1 = -<error descr="Long number too large">9223372036854775809L</error>;
long l2 = <error descr="Long number too large">9223372036854775808L</error>;
@@ -36,21 +36,21 @@ public class NumericLiterals {
long l10 = 0x8000000000000000L;
long ol1 = 01777777777777777777600L;
long ol2 = 01777777777777777777777L;
long bl1 = <error descr="Binary literals are not supported at this language level">0b0010l</error>;
long bl2 = <error descr="Binary literals are not supported at this language level">0B0010L</error>;
long bl3 = <error descr="Underscores in literals are not supported at this language level">10_24L</error>;
long bl1 = <error descr="Binary literals are not supported at language level '1.4'">0b0010l</error>;
long bl2 = <error descr="Binary literals are not supported at language level '1.4'">0B0010L</error>;
long bl3 = <error descr="Underscores in literals are not supported at language level '1.4'">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 not supported at this language level">0xabc.defP2f</error>;
float f5 = <error descr="Underscores in literals are not supported at this language level">3.141_592f</error>;
float f4 = <error descr="Hexadecimal floating point literals are not supported at language level '1.4'">0xabc.defP2f</error>;
float f5 = <error descr="Underscores in literals are not supported at language level '1.4'">3.141_592f</error>;
float f6 = .0f;
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 not supported at this language level">0x1.fffffffffffffP1023</error>;
double dd4 = <error descr="Hexadecimal floating point literals are not supported at language level '1.4'">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>;
@@ -62,7 +62,7 @@ public class NumericLiterals {
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 not supported at this language level">3.141_592_653_589_793d</error>;
double d12 = <error descr="Underscores in literals are not supported at language level '1.4'">3.141_592_653_589_793d</error>;
double d13 = <error descr="Malformed floating point literal">.0e</error>;
}
}
}
@@ -1,19 +1,19 @@
import java.io.*;
import java.util.*;
<error descr="Static imports are not supported at this language level">import static java.lang.Math.*;</error>
<error descr="Static imports are not supported at language level '1.4'">import static java.lang.Math.*;</error>
@interface <error descr="Annotations are not supported at this language level">Anno</error> { }
@interface <error descr="Annotations are not supported at language level '1.4'">Anno</error> { }
<error descr="Annotations are not supported at this language level">@Anno</error>
<error descr="Annotations are not supported at language level '1.4'">@Anno</error>
class UnsupportedFeatures {
void m(<error descr="Variable arity methods are not supported at this language level">String... args</error>) throws Exception {
<error descr="For-each loops are not supported at this language level">for (String s : args) { System.out.println(s); }</error>
void m(<error descr="Variable arity methods are not supported at language level '1.4'">String... args</error>) throws Exception {
<error descr="For-each loops are not supported at language level '1.4'">for (String s : args) { System.out.println(s); }</error>
List<error descr="Generics are not supported at this language level"><String></error> list =
new ArrayList<error descr="Generics are not supported at this language level"><></error>();
List<error descr="Generics are not supported at language level '1.4'"><String></error> list =
new ArrayList<error descr="Generics are not supported at language level '1.4'"><></error>();
<error descr="For-each loops are not supported at this language level">for (Object s : list) {}</error>
<error descr="For-each loops are not supported at language level '1.4'">for (Object s : list) {}</error>
Arrays.asList<error descr="'asList(java.lang.String...)' in 'java.util.Arrays' cannot be applied to '(java.lang.String)'">("")</error>;
<error descr="Incompatible types. Found: 'boolean', required: 'java.lang.Boolean'">Boolean b = true;</error>
<error descr="Incompatible types. Found: 'java.lang.Boolean', required: 'boolean'">boolean b1 = Boolean.TRUE;</error>
@@ -21,4 +21,4 @@ class UnsupportedFeatures {
java.lang.annotation.ElementType t = null;
switch (<error descr="Incompatible types. Found: 'java.lang.annotation.ElementType', required: 'byte, char, short or int'">t</error>) { }
}
}
}