fix casting to primitives according to the spec (IDEA-131107; IDEA-148880)

This commit is contained in:
Anna Kozlova
2015-12-10 17:01:55 +01:00
parent 3f72d428a8
commit 81a6cceb35
5 changed files with 63 additions and 3 deletions
@@ -0,0 +1,35 @@
class Test {
public <T> void foo(T valIn){
double val = (double ) valIn;
}
public <T extends Double> void foo1(T valIn){
double val = (double ) valIn;
}
public <T extends String> void foo2(T valIn){
double val = <error descr="Inconvertible types; cannot cast 'T' to 'double'">(double ) valIn</error>;
}
public <T extends S, S extends Double> void foo2(T valIn){
double val = (double ) valIn;
}
}
class Foo<T> {
private T _value;
T getValue() {
return _value;
}
static Foo<?> getFoo() {
return new Foo<>();
}
public static void main(String[] args) {
Foo<?> foo = getFoo();
double value = (double) foo.getValue();
}
}
@@ -0,0 +1,17 @@
class Foo<T> {
private T _value;
T getValue() {
return _value;
}
static Foo<?> getFoo() {
return new Foo<>();
}
public static void main(String[] args) {
Foo<?> foo = getFoo();
double value = <error descr="Inconvertible types; cannot cast 'capture<?>' to 'double'">(double) foo.getValue()</error>;
}
}