mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-10-02 12:39:14 +00:00
Accept assignable match for covariant return type
See gh-35936
This commit is contained in:
@@ -113,6 +113,14 @@ class BridgeMethodResolverTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void findBridgedMethodForCovariantReturnType() throws Exception {
|
||||
Method originalMethod = OuterSubclass.class.getDeclaredMethod("getInner");
|
||||
for (Method method: OuterSubclass.class.getDeclaredMethods()) {
|
||||
assertThat(BridgeMethodResolver.findBridgedMethod(method)).isEqualTo(originalMethod);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void findBridgedMethodInHierarchyWithBoundedGenerics() throws Exception {
|
||||
Method originalMethod = Bar.class.getDeclaredMethod("someMethod", Object.class, Object.class);
|
||||
@@ -425,6 +433,7 @@ class BridgeMethodResolverTests {
|
||||
public abstract static class SubBar<T extends StringProducer> extends InterBar<T> {
|
||||
}
|
||||
|
||||
|
||||
public interface StringProducer extends CharSequence {
|
||||
}
|
||||
|
||||
@@ -506,6 +515,31 @@ class BridgeMethodResolverTests {
|
||||
}
|
||||
|
||||
|
||||
static class Outer {
|
||||
|
||||
Inner getInner() {
|
||||
return new Inner();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static class OuterSubclass extends Outer {
|
||||
|
||||
@Override
|
||||
InnerSubclass getInner() {
|
||||
return new InnerSubclass();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static class Inner {
|
||||
}
|
||||
|
||||
|
||||
static class InnerSubclass extends Inner {
|
||||
}
|
||||
|
||||
|
||||
public static class Enclosing<T> {
|
||||
|
||||
public class Enclosed<S> {
|
||||
@@ -899,22 +933,18 @@ class BridgeMethodResolverTests {
|
||||
|
||||
|
||||
public interface MessageBroadcaster extends Receiver<MessageEvent> {
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static class RemovedMessageEvent extends MessageEvent {
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static class NewMessageEvent extends MessageEvent {
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static class ModifiedMessageEvent extends MessageEvent {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user