summaryrefslogtreecommitdiff
path: root/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/SuperCaptureSubstitutionWhenTypeParameterHasUpperBounds.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/SuperCaptureSubstitutionWhenTypeParameterHasUpperBounds.java')
-rw-r--r--java/java-tests/testData/codeInsight/daemonCodeAnalyzer/genericsHighlighting/SuperCaptureSubstitutionWhenTypeParameterHasUpperBounds.java30
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