mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-08-26 00:11:26 +07:00
fix casting to primitives according to the spec (IDEA-131107; IDEA-148880)
This commit is contained in:
+35
@@ -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();
|
||||
}
|
||||
}
|
||||
+17
@@ -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>;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user