diff options
Diffstat (limited to 'java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting')
2 files changed, 35 insertions, 0 deletions
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/ParameterBoundsWithCapturedWildcard.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/ParameterBoundsWithCapturedWildcard.java new file mode 100644 index 000000000000..c7cb266321c5 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/ParameterBoundsWithCapturedWildcard.java @@ -0,0 +1,5 @@ +class Test<T > { + public static interface EventListener<V extends String> {} + public void addListener (EventListener<<error descr="Type parameter '? extends T' is not within its bound; should extend 'java.lang.String'">? extends T</error>> listener) {} + public void addListener1(EventListener<? super T> listener) {} +} 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 |