mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-08-26 03:13:40 +07:00
good code is red: take bounds into account during types agree (IDEA-76283)
This commit is contained in:
+49
@@ -0,0 +1,49 @@
|
||||
import java.util.*;
|
||||
public class IDEA76283 {
|
||||
}
|
||||
|
||||
interface Parametrized<T extends Number> {
|
||||
}
|
||||
|
||||
class Bug1<T extends Number> {
|
||||
<I extends Number> Parametrized<I> foo(Parametrized<I> param) {
|
||||
return null;
|
||||
}
|
||||
|
||||
void bug1(Parametrized<? super T> param) {
|
||||
foo(param);
|
||||
}
|
||||
|
||||
void bug2(Set<Parametrized<? extends Number>> parametrizeds) {
|
||||
Set<Parametrized<?>> items = parametrizeds;
|
||||
}
|
||||
|
||||
void bug3(Set<Parametrized<?>> parametrizeds) {
|
||||
Set<Parametrized<?>> items = parametrizeds;
|
||||
}
|
||||
|
||||
void bug4(Set<Parametrized<<error descr="Type parameter '? extends String' is not within its bound; should extend 'java.lang.Number'">? extends String</error>>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? extends java.lang.String>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
}
|
||||
|
||||
void bug5(Set<Parametrized<? extends Integer>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? extends java.lang.Integer>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
}
|
||||
|
||||
void bug6(Set<Parametrized<? super Number>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.Number>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
}
|
||||
|
||||
void bug7(Set<Parametrized<? super Integer>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.Integer>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
}
|
||||
|
||||
void bug8(Set<Parametrized<<error descr="Type parameter '? super String' is not within its bound; should extend 'java.lang.Number'">? super String</error>>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.String>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
}
|
||||
|
||||
void bug9(Set<Parametrized<<error descr="Type parameter '? super Object' is not within its bound; should extend 'java.lang.Number'">? super Object</error>>> parametrizeds) {
|
||||
<error descr="Incompatible types. Found: 'java.util.Set<Parametrized<? super java.lang.Object>>', required: 'java.util.Set<Parametrized<?>>'">Set<Parametrized<?>> items = parametrizeds;</error>
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user