|
|
|
|
@ -113,6 +113,14 @@ class BridgeMethodResolverTests {
@@ -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 {
@@ -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 {
@@ -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 {
@@ -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 { |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|