Avoid infinite recursion for self-referencing generic type
Closes gh-32282 See gh-30079
This commit is contained in:
@@ -1321,6 +1321,18 @@ class ResolvableTypeTests {
|
||||
assertThat(type.hasUnresolvableGenerics()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
void hasUnresolvableGenericsWhenSelfReferring() {
|
||||
ResolvableType type = ResolvableType.forInstance(new Bar());
|
||||
assertThat(type.hasUnresolvableGenerics()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
void hasUnresolvableGenericsWithEnum() {
|
||||
ResolvableType type = ResolvableType.forType(SimpleEnum.class.getGenericSuperclass());
|
||||
assertThat(type.hasUnresolvableGenerics()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
void spr11219() throws Exception {
|
||||
ResolvableType type = ResolvableType.forField(BaseProvider.class.getField("stuff"), BaseProvider.class);
|
||||
@@ -1624,12 +1636,22 @@ class ResolvableTypeTests {
|
||||
}
|
||||
|
||||
|
||||
public interface ListOfListSupplier<T> {
|
||||
interface ListOfListSupplier<T> {
|
||||
|
||||
List<List<T>> get();
|
||||
|
||||
}
|
||||
|
||||
|
||||
class Foo<T extends Foo<T>> {
|
||||
}
|
||||
|
||||
class Bar extends Foo<Bar> {
|
||||
}
|
||||
|
||||
|
||||
enum SimpleEnum { VALUE }
|
||||
|
||||
|
||||
static class EnclosedInParameterizedType<T> {
|
||||
|
||||
static class InnerRaw {
|
||||
|
||||
Reference in New Issue
Block a user