Accept nested array type for upUntilUnresolvable check as well

Closes gh-33535
This commit is contained in:
Juergen Hoeller
2024-09-17 16:20:54 +02:00
parent 383fa43ded
commit 20bc5ef68b
3 changed files with 31 additions and 5 deletions

View File

@@ -1427,6 +1427,23 @@ class ResolvableTypeTests {
assertThat(repository3.isAssignableFromResolvedPart(repository1)).isFalse();
}
@Test
void gh33535() throws Exception {
ResolvableType repository1 = ResolvableType.forField(Fields.class.getField("stringRepository"));
ResolvableType repository2 = ResolvableType.forField(Fields.class.getField("arrayRepository"));
ResolvableType repository3 = ResolvableType.forMethodReturnType(Methods.class.getMethod("someRepository"));
assertThat(repository1.hasUnresolvableGenerics()).isFalse();
assertThat(repository1.isAssignableFrom(repository3)).isFalse();
assertThat(repository1.isAssignableFromResolvedPart(repository3)).isTrue();
assertThat(repository3.isAssignableFrom(repository1)).isTrue();
assertThat(repository3.isAssignableFromResolvedPart(repository1)).isTrue();
assertThat(repository2.hasUnresolvableGenerics()).isFalse();
assertThat(repository2.isAssignableFrom(repository3)).isFalse();
assertThat(repository2.isAssignableFromResolvedPart(repository3)).isTrue();
assertThat(repository3.isAssignableFrom(repository2)).isTrue();
assertThat(repository3.isAssignableFromResolvedPart(repository2)).isTrue();
}
private ResolvableType testSerialization(ResolvableType type) throws Exception {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
@@ -1525,6 +1542,10 @@ class ResolvableTypeTests {
public int[] intArray;
public SomeRepository<? extends Serializable> repository;
public SomeRepository<String> stringRepository;
public SomeRepository<String[]> arrayRepository;
}