diff options
Diffstat (limited to 'java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/SuperCaptureSubstitutionWhenTypeParameterHasUpperBounds.java')
-rw-r--r-- | java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/SuperCaptureSubstitutionWhenTypeParameterHasUpperBounds.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/SuperCaptureSubstitutionWhenTypeParameterHasUpperBounds.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/SuperCaptureSubstitutionWhenTypeParameterHasUpperBounds.java new file mode 100644 index 000000000000..4eaf810dad4f --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/SuperCaptureSubstitutionWhenTypeParameterHasUpperBounds.java @@ -0,0 +1,30 @@ +class Test<T > { + interface Event{} + + interface EventListener<V extends Event> { + void handleEvent(V event); + } + + public void addListener(EventListener<? super T> listener) { + EventListener<? extends Event> localListener = listener; + <error descr="Incompatible types. Found: 'Test.EventListener<capture<? super T>>', required: 'Test.EventListener<? super Test.Event>'">EventListener<? super Event> localListener1 = listener;</error> + } +} + +class Test1 { + + public static class Entity<E extends Entity<E>> { + + public final <T, V extends EntityVisitor<? super E, T>> T handle(final V visitor) { + return visitor.handle(this); + } + + } + + public interface EntityVisitor<E extends Entity<E>, T> { + + T handle(Entity<? extends E> e); + + } + +}
\ No newline at end of file |