From 8777d28228d4c06811925f44b4f5f69b6bc8e03a Mon Sep 17 00:00:00 2001 From: Victor Petukhov Date: Tue, 8 Dec 2020 15:44:04 +0300 Subject: [PATCH] Use new jetbrains annotations with type use target for "load java 8" tests --- .../typeParameterAnnotations/Basic.java | 19 +- .../typeParameterAnnotations/Basic.txt | 15 +- .../BaseClassTypeArguments.java | 25 ++- .../BaseClassTypeArguments.txt | 21 ++- .../typeUseAnnotations/Basic.java | 15 +- .../compiledJava/typeUseAnnotations/Basic.txt | 9 +- .../ClassTypeParameterBounds.java | 33 ++-- .../ClassTypeParameterBounds.txt | 35 ++-- .../typeUseAnnotations/MethodReceiver.java | 11 +- .../typeUseAnnotations/MethodReceiver.txt | 5 - .../MethodTypeParameterBounds.java | 37 ++-- .../MethodTypeParameterBounds.txt | 35 ++-- .../typeUseAnnotations/ReturnType.java | 141 +++++++-------- .../typeUseAnnotations/ReturnType.txt | 127 +++++++------- .../typeUseAnnotations/ValueArguments.java | 163 +++++++++-------- .../typeUseAnnotations/ValueArguments.txt | 155 ++++++++-------- .../typeParameterAnnotations/Basic.java | 19 +- .../typeParameterAnnotations/Basic.javac.txt | 2 +- .../typeParameterAnnotations/Basic.txt | 15 +- .../BaseClassTypeArguments.java | 25 ++- .../BaseClassTypeArguments.javac.txt | 46 +++++ .../BaseClassTypeArguments.txt | 16 +- .../sourceJava/typeUseAnnotations/Basic.java | 15 +- .../typeUseAnnotations/Basic.javac.txt | 16 ++ .../sourceJava/typeUseAnnotations/Basic.txt | 9 +- .../ClassTypeParameterBounds.java | 33 ++-- .../ClassTypeParameterBounds.javac.txt | 56 ++++++ .../ClassTypeParameterBounds.txt | 30 ++-- .../typeUseAnnotations/MethodReceiver.java | 11 +- .../MethodReceiver.javac.txt | 11 ++ .../MethodTypeParameterBounds.java | 37 ++-- .../MethodTypeParameterBounds.javac.txt | 32 ++++ .../MethodTypeParameterBounds.txt | 30 ++-- .../typeUseAnnotations/ReturnType.java | 141 +++++++-------- .../typeUseAnnotations/ReturnType.javac.txt | 87 +++++++++ .../typeUseAnnotations/ReturnType.txt | 126 ++++++------- .../typeUseAnnotations/ValueArguments.java | 165 +++++++++--------- .../ValueArguments.javac.txt | 94 ++++++++++ .../typeUseAnnotations/ValueArguments.txt | 150 ++++++++-------- .../AbstractForeignAnnotationsTest.kt | 19 +- .../AbstractJspecifyAnnotationsTest.kt | 3 +- .../jetbrains/kotlin/cli/AbstractCliTest.java | 2 +- .../jvm/compiler/AbstractLoadJavaTest.java | 10 +- .../jvm/compiler/LoadDescriptorUtil.java | 19 +- .../jvm/compiler/AbstractLoadJava8Test.java | 5 + .../AbstractJvmRuntimeDescriptorLoaderTest.kt | 4 +- .../org/jetbrains/annotations/NotNull.java | 44 +++++ .../org/jetbrains/annotations/Nullable.java | 31 ++++ 48 files changed, 1254 insertions(+), 895 deletions(-) create mode 100644 compiler/testData/loadJava8/sourceJava/typeUseAnnotations/BaseClassTypeArguments.javac.txt create mode 100644 compiler/testData/loadJava8/sourceJava/typeUseAnnotations/Basic.javac.txt create mode 100644 compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ClassTypeParameterBounds.javac.txt create mode 100644 compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodReceiver.javac.txt create mode 100644 compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodTypeParameterBounds.javac.txt create mode 100644 compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ReturnType.javac.txt create mode 100644 compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ValueArguments.javac.txt create mode 100644 third-party/jdk8-annotations/org/jetbrains/annotations/NotNull.java create mode 100644 third-party/jdk8-annotations/org/jetbrains/annotations/Nullable.java diff --git a/compiler/testData/loadJava8/compiledJava/typeParameterAnnotations/Basic.java b/compiler/testData/loadJava8/compiledJava/typeParameterAnnotations/Basic.java index 65420a47763..c363b13d82c 100644 --- a/compiler/testData/loadJava8/compiledJava/typeParameterAnnotations/Basic.java +++ b/compiler/testData/loadJava8/compiledJava/typeParameterAnnotations/Basic.java @@ -1,22 +1,19 @@ // JAVAC_EXPECTED_FILE + package test; -import java.lang.annotation.*; +import org.jetbrains.annotations.*; + public class Basic { - @Target(ElementType.TYPE_PARAMETER) - public @interface A { - String value() default ""; + public interface G<@NotNull T> { + <@NotNull R> void foo(R r); } - public interface G<@A T> { - <@A("abc") R> void foo(R r); + public interface G1 { + void foo(R r); } - public interface G1 { - void foo(R r); - } - - void foo(R r) { + void foo(R r) { } } diff --git a/compiler/testData/loadJava8/compiledJava/typeParameterAnnotations/Basic.txt b/compiler/testData/loadJava8/compiledJava/typeParameterAnnotations/Basic.txt index 5e35b2ed9cb..e87f9491336 100644 --- a/compiler/testData/loadJava8/compiledJava/typeParameterAnnotations/Basic.txt +++ b/compiler/testData/loadJava8/compiledJava/typeParameterAnnotations/Basic.txt @@ -2,18 +2,13 @@ package test public open class Basic { public constructor Basic() - public/*package*/ open fun foo(/*0*/ p0: R!): kotlin.Unit + public/*package*/ open fun foo(/*0*/ p0: R!): kotlin.Unit - @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) public final annotation class A : kotlin.Annotation { - public constructor A(/*0*/ value: kotlin.String = ...) - public final val value: kotlin.String + public interface G { + public abstract fun foo(/*0*/ p0: R): kotlin.Unit } - public interface G { - public abstract fun foo(/*0*/ p0: R!): kotlin.Unit - } - - public interface G1 { - public abstract fun foo(/*0*/ p0: R!): kotlin.Unit + public interface G1 { + public abstract fun foo(/*0*/ p0: R!): kotlin.Unit } } diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/BaseClassTypeArguments.java b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/BaseClassTypeArguments.java index b99084103bc..27c4dff6bba 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/BaseClassTypeArguments.java +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/BaseClassTypeArguments.java @@ -1,26 +1,23 @@ +// JAVAC_EXPECTED_FILE + package test; -import java.lang.annotation.*; - -@Target(ElementType.TYPE_USE) -@interface A { - String value() default ""; -} +import org.jetbrains.annotations.*; interface I1 {} interface I2 {} interface I3 {} +class A1 {} class A2 {} class A3 {} -public class BaseClassTypeArguments extends A3<@A B [][][][][], I1>, A2> implements I1<@A Integer @A [][][]>, I2<@A B, B>, I3<@A B [][][][][], B, @A B> { - class ImplementedInterfacesTypeArguments implements I1, I1<@A int [] @A []>>>, I2<@A B, B>, I3<@A B [][][][][], I1>, I2> { - public class BaseClassTypeArguments1 extends A3<@A B [][][][][], I1>, A2> { +public class BaseClassTypeArguments extends A3<@NotNull B [][][][][], I1>, A2> implements I1<@NotNull Integer @NotNull [][][]>, I2<@NotNull B, B>, I3<@NotNull B [][][][][], B, @NotNull B> { + class Basic1 implements I1<@NotNull String> { } + class Basic2 extends A1<@NotNull String> { } - } + class ImplementedInterfacesTypeArguments implements I1, I1<@NotNull int [] @NotNull []>>>, I2<@NotNull B, B>, I3<@NotNull B [][][][][], I1>, I2> { + public class BaseClassTypeArguments1 extends A3<@NotNull B [][][][][], I1>, A2> { } } - static class BaseClassTypeArguments2 extends A3<@A B [][][][][], I1>, A2> { - - } -} \ No newline at end of file + static class BaseClassTypeArguments2 extends A3<@NotNull B [][][][][], I1>, A2> { } +} diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/BaseClassTypeArguments.txt b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/BaseClassTypeArguments.txt index 46dd7dac980..051cdf9883b 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/BaseClassTypeArguments.txt +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/BaseClassTypeArguments.txt @@ -1,8 +1,7 @@ package test -@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public/*package*/ final annotation class A : kotlin.Annotation { - public/*package*/ constructor A(/*0*/ value: kotlin.String = ...) - public final val value: kotlin.String +public/*package*/ open class A1 { + public/*package*/ constructor A1() } public/*package*/ open class A2 { @@ -13,17 +12,25 @@ public/*package*/ open class A3() } -public open class BaseClassTypeArguments : test.A3!>!>!>!>!, test.I1..@test.A kotlin.Array?)>!>!, test.A2!>!>!>, test.I1<(@test.A kotlin.Array!>!>..@test.A kotlin.Array!>!>?)>, test.I2<@test.A B!, B!>, test.I3!>!>!>!>!, B!, @test.A B!> { +public open class BaseClassTypeArguments : test.A3!>!>!>!>!, test.I1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!, test.A2!>!>!>, test.I1<(@org.jetbrains.annotations.NotNull kotlin.Array!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>)>, test.I2<@org.jetbrains.annotations.NotNull B, B!>, test.I3!>!>!>!>!, B!, @org.jetbrains.annotations.NotNull B> { public constructor BaseClassTypeArguments() - public/*package*/ open class BaseClassTypeArguments2 : test.A3!>!>!>!>!, test.I1..@test.A kotlin.Array?)>!>!, test.A2!>!>!> { + public/*package*/ open class BaseClassTypeArguments2 : test.A3!>!>!>!>!, test.I1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!, test.A2!>!>!> { public/*package*/ constructor BaseClassTypeArguments2() } - public/*package*/ open inner class ImplementedInterfacesTypeArguments /*captured type parameters: /*1*/ B : kotlin.Any!*/ : test.I1!>!>..@test.A kotlin.Array!>!>?)>!, test.I1!>!>!>, test.I2<@test.A B!, B!>, test.I3!>!>!>!>!, test.I1..@test.A kotlin.Array?)>!>!, test.I2!>!>!> { + public/*package*/ open inner class Basic1 /*captured type parameters: /*0*/ B : kotlin.Any!*/ : test.I1<@org.jetbrains.annotations.NotNull kotlin.String> { + public/*package*/ constructor Basic1() + } + + public/*package*/ open inner class Basic2 /*captured type parameters: /*0*/ B : kotlin.Any!*/ : test.A1<@org.jetbrains.annotations.NotNull kotlin.String> { + public/*package*/ constructor Basic2() + } + + public/*package*/ open inner class ImplementedInterfacesTypeArguments /*captured type parameters: /*1*/ B : kotlin.Any!*/ : test.I1!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>)>!, test.I1!>!>!>, test.I2<@org.jetbrains.annotations.NotNull B, B!>, test.I3!>!>!>!>!, test.I1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!, test.I2!>!>!> { public/*package*/ constructor ImplementedInterfacesTypeArguments() - public open inner class BaseClassTypeArguments1 /*captured type parameters: /*1*/ B : kotlin.Any!, /*2*/ B : kotlin.Any!*/ : test.A3!>!>!>!>!, test.I1..@test.A kotlin.Array?)>!>!, test.A2!>!>!> { + public open inner class BaseClassTypeArguments1 /*captured type parameters: /*1*/ B : kotlin.Any!, /*2*/ B : kotlin.Any!*/ : test.A3!>!>!>!>!, test.I1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!, test.A2!>!>!> { public constructor BaseClassTypeArguments1() } } diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/Basic.java b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/Basic.java index e2309dac755..8759772b49e 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/Basic.java +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/Basic.java @@ -1,12 +1,10 @@ +// JAVAC_EXPECTED_FILE + package test; -import java.lang.annotation.*; -public class Basic { - @Target(ElementType.TYPE_USE) - @interface A { - String value() default ""; - } +import org.jetbrains.annotations.*; +public class Basic { interface G { } @@ -14,8 +12,7 @@ public class Basic { } public interface MyClass { - void f(G<@A String> p); - - void f(G2<@A String, @A("abc") Integer> p); + void f(G<@NotNull String> p); + void f(G2<@Nullable String, @NotNull Integer> p); } } diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/Basic.txt b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/Basic.txt index b5181c531f7..48ab6fa460e 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/Basic.txt +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/Basic.txt @@ -3,11 +3,6 @@ package test public open class Basic { public constructor Basic() - @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public/*package*/ final annotation class A : kotlin.Annotation { - public/*package*/ constructor A(/*0*/ value: kotlin.String = ...) - public final val value: kotlin.String - } - public/*package*/ interface G { } @@ -15,7 +10,7 @@ public open class Basic { } public interface MyClass { - public abstract fun f(/*0*/ p0: test.Basic.G2<@test.Basic.A kotlin.String!, @test.Basic.A(value = "abc") kotlin.Int!>!): kotlin.Unit - public abstract fun f(/*0*/ p0: test.Basic.G<@test.Basic.A kotlin.String!>!): kotlin.Unit + public abstract fun f(/*0*/ p0: test.Basic.G2<@org.jetbrains.annotations.Nullable kotlin.String?, @org.jetbrains.annotations.NotNull kotlin.Int>!): kotlin.Unit + public abstract fun f(/*0*/ p0: test.Basic.G<@org.jetbrains.annotations.NotNull kotlin.String>!): kotlin.Unit } } diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ClassTypeParameterBounds.java b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ClassTypeParameterBounds.java index e8ed265b044..1d6c9fadcec 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ClassTypeParameterBounds.java +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ClassTypeParameterBounds.java @@ -2,12 +2,7 @@ package test; -import java.lang.annotation.*; - -@Target(ElementType.TYPE_USE) -@interface A { - String value() default ""; -} +import org.jetbrains.annotations.*; public class ClassTypeParameterBounds { interface I1 {} @@ -15,19 +10,19 @@ public class ClassTypeParameterBounds { interface I3 {} interface I4 {} - interface G1 { } - class G2<_A, B extends @A Integer> { } - interface G3<_A, B extends Object & @A I1> { } - class G4<_A extends @A B, B> { } - interface G5<_A, B extends @A _A> { } - class G6<_A extends @A I1, B, C, D extends @A E, E, F> { } - interface G7<_A extends Object & I2<@A Integer> & @A I3> { } - interface G8<_A extends Object & I2 & @A I3> { } + interface G1 { } + class G2<_A, B extends @Nullable Integer> { } + interface G3<_A, B extends Object & @NotNull I1> { } + class G4<_A extends @NotNull B, B> { } + interface G5<_A, B extends @Nullable _A> { } + class G6<_A extends @Nullable I1, B, C, D extends @NotNull E, E, F> { } + interface G7<_A extends Object & I2<@NotNull Integer> & @NotNull I3> { } + interface G8<_A extends Object & I2 & @Nullable I3> { } - interface G9<_A extends I4 & I2 & @A I3> { } - interface G10<_A extends I4 & I2 & @A I3> { } - interface G11<_A extends I4 & I2 & @A I3> { } - interface G12<_A extends I4 & I2 & @A I3> { } + interface G9<_A extends I4 & I2 & @NotNull I3> { } + interface G10<_A extends I4 & I2 & @NotNull I3> { } + interface G11<_A extends I4 & I2 & @NotNull I3> { } + interface G12<_A extends I4 & I2 & @NotNull I3> { } - // class G13<_A extends Object, B extends I3<@A _A> & @A I2<_A>> { } + // class G13<_A extends Object, B extends I3<@NotNull _A> & @NotNull I2<_A>> { } } diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ClassTypeParameterBounds.txt b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ClassTypeParameterBounds.txt index c2664ce9824..e6e83f7aa75 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ClassTypeParameterBounds.txt +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ClassTypeParameterBounds.txt @@ -1,50 +1,45 @@ package test -@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public/*package*/ final annotation class A : kotlin.Annotation { - public/*package*/ constructor A(/*0*/ value: kotlin.String = ...) - public final val value: kotlin.String -} - public open class ClassTypeParameterBounds { public constructor ClassTypeParameterBounds() - public/*package*/ interface G1 { + public/*package*/ interface G1 { } - public/*package*/ interface G10!> where _A : test.ClassTypeParameterBounds.I2!, _A : @test.A test.ClassTypeParameterBounds.I3! { + public/*package*/ interface G10!> where _A : test.ClassTypeParameterBounds.I2!, _A : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I3 { } - public/*package*/ interface G11..@test.A kotlin.Array?)>!>!>!> where _A : test.ClassTypeParameterBounds.I2!>!>!>..@test.A kotlin.Array!>!>!>?)>!, _A : @test.A test.ClassTypeParameterBounds.I3..@test.A kotlin.Array?)>!>! { + public/*package*/ interface G11..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>!> where _A : test.ClassTypeParameterBounds.I2!>!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>!>)>!, _A : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I3..@org.jetbrains.annotations.NotNull kotlin.Array)>!> { } - public/*package*/ interface G12..@test.A kotlin.Array?)>!> where _A : test.ClassTypeParameterBounds.I2!>!>!, _A : @test.A test.ClassTypeParameterBounds.I3..@test.A kotlin.Array?)>!>! { + public/*package*/ interface G12?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!> where _A : test.ClassTypeParameterBounds.I2!>!>!, _A : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I3..@org.jetbrains.annotations.NotNull kotlin.Array)>!> { } - public/*package*/ open inner class G2 { - public/*package*/ constructor G2() + public/*package*/ open inner class G2 { + public/*package*/ constructor G2() } - public/*package*/ interface G3 where B : @test.A test.ClassTypeParameterBounds.I1! { + public/*package*/ interface G3 where B : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I1 { } - public/*package*/ open inner class G4 { - public/*package*/ constructor G4() + public/*package*/ open inner class G4 { + public/*package*/ constructor G4() } - public/*package*/ interface G5 { + public/*package*/ interface G5 { } - public/*package*/ open inner class G6 { - public/*package*/ constructor G6() + public/*package*/ open inner class G6 { + public/*package*/ constructor G6() } - public/*package*/ interface G7 where _A : test.ClassTypeParameterBounds.I2<@test.A kotlin.Int!>!, _A : @test.A test.ClassTypeParameterBounds.I3! { + public/*package*/ interface G7 where _A : test.ClassTypeParameterBounds.I2<@org.jetbrains.annotations.NotNull kotlin.Int>!, _A : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I3 { } - public/*package*/ interface G8 where _A : test.ClassTypeParameterBounds.I2!, _A : @test.A test.ClassTypeParameterBounds.I3! { + public/*package*/ interface G8 where _A : test.ClassTypeParameterBounds.I2!, _A : @org.jetbrains.annotations.Nullable test.ClassTypeParameterBounds.I3? { } - public/*package*/ interface G9..@test.A kotlin.Array?)>!> where _A : test.ClassTypeParameterBounds.I2..@test.A kotlin.Array?)>!, _A : @test.A test.ClassTypeParameterBounds.I3..@test.A kotlin.Array?)>! { + public/*package*/ interface G9..@org.jetbrains.annotations.NotNull kotlin.Array)>!> where _A : test.ClassTypeParameterBounds.I2..@org.jetbrains.annotations.NotNull kotlin.Array)>!, _A : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I3..@org.jetbrains.annotations.NotNull kotlin.Array)> { } public/*package*/ interface I1 { diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodReceiver.java b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodReceiver.java index c26e08c0b33..2a43d23c233 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodReceiver.java +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodReceiver.java @@ -2,12 +2,7 @@ package test; -import java.lang.annotation.*; - -@Target(ElementType.TYPE_USE) -@interface A { - String value() default ""; -} +import org.jetbrains.annotations.*; /* * Note that a receiver type doesn't get into signatures used by the Kotlin compiler @@ -15,9 +10,9 @@ import java.lang.annotation.*; */ public class MethodReceiver { - public void f1(MethodReceiver<@A T> this) { } + public void f1(MethodReceiver<@Nullable T> this) { } class MethodReceiver3 { - public void f1(@A MethodReceiver3<@A T, K, @A L> this) { } + public void f1(@Nullable MethodReceiver3<@Nullable T, K, @Nullable L> this) { } } } \ No newline at end of file diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodReceiver.txt b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodReceiver.txt index b966213b1d6..1964dcde5ba 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodReceiver.txt +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodReceiver.txt @@ -1,10 +1,5 @@ package test -@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public/*package*/ final annotation class A : kotlin.Annotation { - public/*package*/ constructor A(/*0*/ value: kotlin.String = ...) - public final val value: kotlin.String -} - public open class MethodReceiver { public constructor MethodReceiver() public open fun f1(): kotlin.Unit diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodTypeParameterBounds.java b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodTypeParameterBounds.java index 1ddc625116a..16b4632069b 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodTypeParameterBounds.java +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodTypeParameterBounds.java @@ -2,12 +2,7 @@ package test; -import java.lang.annotation.*; - -@Target(ElementType.TYPE_USE) -@interface A { - String value() default ""; -} +import org.jetbrains.annotations.*; abstract class MethodTypeParameterBounds { interface I1 {} @@ -15,19 +10,19 @@ abstract class MethodTypeParameterBounds { interface I3 {} interface I4 {} - void f1(T x) { } - <_A, B extends @A Integer> void f2(_A x, B y) { } - <_A, B extends Object & @A I1> void f3(_A x, B y) { } - <_A extends @A B, B> void f4(_A x, B y) { } - <_A, B extends @A _A> void f5(_A x, B y) { } - <_A extends @A I1> void f6() { } - abstract <_A, B extends @A _A> void f7(_A x, B y); - abstract <_A extends @A I1, B, C, D extends @A E, E, F> void f8(_A x1, B x2, C x3, D x4, E x5, F x6); - <_A extends Object & I2<@A Integer> & @A I3> void f9(_A x) { } - <_A extends Object & I2 & @A I3> void f10(_A x) { } - <_A extends I4 & I2 & @A I3> void f11(_A x) { } - <_A extends I4 & I2 & @A I3> void f12(_A x) { } - <_A extends I4 & I2 & @A I3> void f13(_A x) { } - abstract <_A extends I4 & I2 & @A I3> void f14(_A x); - <_A extends Object, B extends I3<@A A> & @A I2> void f15(_A x) { } + void f1(T x) { } + <_A, B extends @NotNull Integer> void f2(_A x, B y) { } + <_A, B extends Object & @Nullable I1> void f3(_A x, B y) { } + <_A extends @NotNull B, B> void f4(_A x, B y) { } + <_A, B extends @Nullable _A> void f5(_A x, B y) { } + <_A extends @Nullable I1> void f6() { } + abstract <_A, B extends @NotNull _A> void f7(_A x, B y); + abstract <_A extends @Nullable I1, B, C, D extends @NotNull E, E, F> void f8(_A x1, B x2, C x3, D x4, E x5, F x6); + <_A extends Object & I2<@Nullable Integer> & @Nullable I3> void f9(_A x) { } + <_A extends Object & I2 & @Nullable I3> void f10(_A x) { } + <_A extends I4 & I2 & @Nullable I3> void f11(_A x) { } + <_A extends I4 & I2 & @NotNull I3> void f12(_A x) { } + <_A extends I4 & I2 & @Nullable I3> void f13(_A x) { } + abstract <_A extends I4 & I2 & @Nullable I3> void f14(_A x); + <_A extends Object, B extends I3<@Nullable _A> & @NotNull I2<_A>> void f15(_A x) { } } diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodTypeParameterBounds.txt b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodTypeParameterBounds.txt index 43b77d4acaa..0f21e253c9b 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodTypeParameterBounds.txt +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodTypeParameterBounds.txt @@ -1,27 +1,22 @@ package test -@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public/*package*/ final annotation class A : kotlin.Annotation { - public/*package*/ constructor A(/*0*/ value: kotlin.String = ...) - public final val value: kotlin.String -} - public/*package*/ abstract class MethodTypeParameterBounds { public/*package*/ constructor MethodTypeParameterBounds() - public/*package*/ open fun f1(/*0*/ p0: T!): kotlin.Unit - public/*package*/ open fun f10(/*0*/ p0: _A!): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!, _A : @test.A test.MethodTypeParameterBounds.I3! - public/*package*/ open fun ..@test.A kotlin.Array?)>!> f11(/*0*/ p0: _A!): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2..@test.A kotlin.Array?)>!, _A : @test.A test.MethodTypeParameterBounds.I3..@test.A kotlin.Array?)>! - public/*package*/ open fun !> f12(/*0*/ p0: _A!): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!, _A : @test.A test.MethodTypeParameterBounds.I3! - public/*package*/ open fun ..@test.A kotlin.Array?)>!>!>!> f13(/*0*/ p0: _A!): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!>!>!>..@test.A kotlin.Array!>!>!>?)>!, _A : @test.A test.MethodTypeParameterBounds.I3..@test.A kotlin.Array?)>!>! - public/*package*/ abstract fun ..@test.A kotlin.Array?)>!> f14(/*0*/ p0: _A!): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!>!>!, _A : @test.A test.MethodTypeParameterBounds.I3..@test.A kotlin.Array?)>!>! - public/*package*/ open fun !> f15(/*0*/ p0: _A!): kotlin.Unit where B : @test.A test.MethodTypeParameterBounds.I2! - public/*package*/ open fun f2(/*0*/ p0: _A!, /*1*/ p1: B!): kotlin.Unit - public/*package*/ open fun f3(/*0*/ p0: _A!, /*1*/ p1: B!): kotlin.Unit where B : @test.A test.MethodTypeParameterBounds.I1! - public/*package*/ open fun f4(/*0*/ p0: _A!, /*1*/ p1: B!): kotlin.Unit - public/*package*/ open fun f5(/*0*/ p0: _A!, /*1*/ p1: B!): kotlin.Unit - public/*package*/ open fun f6(): kotlin.Unit - public/*package*/ abstract fun f7(/*0*/ p0: _A!, /*1*/ p1: B!): kotlin.Unit - public/*package*/ abstract fun f8(/*0*/ p0: _A!, /*1*/ p1: B!, /*2*/ p2: C!, /*3*/ p3: D!, /*4*/ p4: E!, /*5*/ p5: F!): kotlin.Unit - public/*package*/ open fun f9(/*0*/ p0: _A!): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2<@test.A kotlin.Int!>!, _A : @test.A test.MethodTypeParameterBounds.I3! + public/*package*/ open fun f1(/*0*/ p0: T): kotlin.Unit + public/*package*/ open fun f10(/*0*/ p0: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!, _A : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I3? + public/*package*/ open fun ..@org.jetbrains.annotations.NotNull kotlin.Array)>!> f11(/*0*/ p0: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!, _A : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I3..@org.jetbrains.annotations.NotNull kotlin.Array)>? + public/*package*/ open fun !> f12(/*0*/ p0: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!, _A : @org.jetbrains.annotations.NotNull test.MethodTypeParameterBounds.I3 + public/*package*/ open fun ?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>!>!> f13(/*0*/ p0: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!>!>!>?..@org.jetbrains.annotations.Nullable kotlin.Array!>!>!>?)>!, _A : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I3?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>? + public/*package*/ abstract fun ..@org.jetbrains.annotations.NotNull kotlin.Array)>!> f14(/*0*/ p0: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!>!>!, _A : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I3?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>? + public/*package*/ open fun !> f15(/*0*/ p0: _A!): kotlin.Unit where B : @org.jetbrains.annotations.NotNull test.MethodTypeParameterBounds.I2<_A!> + public/*package*/ open fun f2(/*0*/ p0: _A!, /*1*/ p1: B): kotlin.Unit + public/*package*/ open fun f3(/*0*/ p0: _A!, /*1*/ p1: B): kotlin.Unit where B : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I1? + public/*package*/ open fun f4(/*0*/ p0: _A, /*1*/ p1: B!): kotlin.Unit + public/*package*/ open fun f5(/*0*/ p0: _A!, /*1*/ p1: B): kotlin.Unit + public/*package*/ open fun f6(): kotlin.Unit + public/*package*/ abstract fun f7(/*0*/ p0: _A!, /*1*/ p1: B): kotlin.Unit + public/*package*/ abstract fun f8(/*0*/ p0: _A, /*1*/ p1: B!, /*2*/ p2: C!, /*3*/ p3: D, /*4*/ p4: E!, /*5*/ p5: F!): kotlin.Unit + public/*package*/ open fun f9(/*0*/ p0: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2<@org.jetbrains.annotations.Nullable kotlin.Int?>!, _A : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I3? public/*package*/ interface I1 { } diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ReturnType.java b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ReturnType.java index 5c223aef06f..bad8d817886 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ReturnType.java +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ReturnType.java @@ -1,11 +1,8 @@ +// JAVAC_EXPECTED_FILE + package test; -import java.lang.annotation.*; - -@Target(ElementType.TYPE_USE) -@interface A { - String value() default ""; -} +import org.jetbrains.annotations.*; interface G0 { } interface G1 { } @@ -13,83 +10,87 @@ interface G2 { } interface ReturnType { // simplpe type arguments - G1<@A G0> f0(); - G1>>> f1(); - G1<@A String> f2(); - G2<@A String, G2<@A("abc") Integer, G2<@A("abc") G2, @A("abc") Integer>>> f3(); + G1<@NotNull G0> f0(); + G1>>> f1(); + G1<@NotNull String> f2(); + G2<@NotNull String, G2<@NotNull Integer, G2<@NotNull G2, @NotNull Integer>>> f3(); // wildcards - G1 f4 = null; - G1>>> f5(); - G1 f6(); - G2, ? extends @A("abc") Integer>>> f7(); + G1 f4 = null; + G1>>> f5(); + G1 f6(); + G2, ? extends @NotNull Integer>>> f7(); - G1 f8(); - G1>>> f9(); - G1 f10 = null; - G2, ? super @A("abc") Integer>>> f11(); + G1 f8(); + G1>>> f9(); + G1 f10 = null; + G2, ? super @NotNull Integer>>> f11(); - G2, ? extends @A("abc") Integer>>> f12 = null; + G2, ? extends @NotNull Integer>>> f12 = null; // arrays - Integer @A [] f13(); - int @A [] f14(); - @A Integer [] f15(); - @A int [] f16(); - @A Integer @A [] f17(); - @A int @A [] f18 = null; + Integer @NotNull [] f13(); + int @NotNull [] f14(); + @NotNull Integer [] f15(); + @NotNull int [] f16(); + @NotNull int [] f161 = null; + @NotNull Integer @NotNull [] f17(); + @NotNull int @NotNull [] f18 = null; // multidementional arrays - Integer @A [] [] f19(); - int @A [] @A [] f20(); - @A Integer [] [] [] f21 = null; - @A int @A [] @A [] [] @A [] f22(); - @A Integer @A [] [] @A [] [] f23(); - @A int @A [] @A [] f24 = null; - int [] @A [] f25(); - Object [] @A [] f26(); - @A Object [] [] [] [] @A [] f27(); + Integer @NotNull [] [] f19(); + int @NotNull [] @NotNull [] f20(); + @NotNull Integer [] [] [] f21 = null; + @NotNull int @NotNull [] @NotNull [] [] @NotNull [] f22(); + @NotNull Integer @NotNull [] [] @NotNull [] [] f23(); + @NotNull int @NotNull [] @NotNull [] f24 = null; + int [] @NotNull [] f25(); + Object [] @NotNull [] f26(); + @NotNull Object [] [] [] [] @NotNull [] f27(); + @NotNull Object [] [] [] [] @NotNull [] f271 = null; // arrays in type arguments - G1 f28(); - G2 f29(); - G1<@A Integer []> f30(); - G1> f31(); - G1, G1<@A int @A []>>> f32(); - G1<@A int @A []> f33(); - G1 f34(); - G2 f35 = null; - G1<@A Integer @A [] []> f36(); - G1> f37(); - G1, G1<@A int [] [] @A []>>> f38(); - G1<@A int @A [] @A [] []> f39(); + G1 f28(); + G2 f29(); + G1<@NotNull Integer []> f30(); + G1> f31(); + G1, G1<@NotNull int @NotNull []>>> f32(); + G1<@NotNull int @NotNull []> f33(); + G1 f34(); + G2 f35 = null; + G1<@NotNull Integer @NotNull [] []> f36(); + G1> f37(); + G1, G1<@NotNull int [] [] @NotNull []>>> f38(); + G1<@NotNull int @NotNull [] @NotNull [] []> f39(); // arrays in wildcard bounds - G1 f40(); - G2 f41(); - G1 f42(); - G1> f43(); - G1, G1>> f44(); - G1, G1>> f45 = null; - G1 f46(); - G1 f47(); - G2 f48 = null; - G1 f49(); - G1> f50(); - G1, G1>> f51(); - G1, G1>> f52 = null; - G1 f53(); + G1 f40(); + G2 f41(); + G1 f42(); + G1> f43(); + G1, G1>> f44(); + G1, G1>> f45 = null; + G1 f46(); + G1 f47(); + G2 f48 = null; + G1 f49(); + G1> f50(); + G1, G1>> f51(); + G1, G1>> f52 = null; + G1 f53(); class ReturnType2 { - G1 f4 = null; - G1 f10 = null; - G2, ? extends @A("abc") Integer>>> f12 = null; - @A int @A [] f18 = null; - @A Integer [] [] [] f21 = null; - @A int @A [] @A [] f24 = null; - G2 f35 = null; - G1, G1>> f45 = null; - G2 f48 = null; - G1, G1>> f52 = null; + G1 f4 = null; + G1 f10 = null; + G2, ? extends @NotNull Integer>>> f12 = null; + @NotNull Integer [] f181 = null; + @NotNull Integer @NotNull [] f182 = null; + G1<@NotNull Integer> f183 = null; + @NotNull Integer [] [] [] f21 = null; + @NotNull int @NotNull [] @NotNull [] f24 = null; + G2 f35 = null; + G1, G1>> f45 = null; + G2 f48 = null; + G1, G1>> f52 = null; } } diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ReturnType.txt b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ReturnType.txt index cb7cc847e10..a46258d783e 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ReturnType.txt +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ReturnType.txt @@ -1,10 +1,5 @@ package test -@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public/*package*/ final annotation class A : kotlin.Annotation { - public/*package*/ constructor A(/*0*/ value: kotlin.String = ...) - public final val value: kotlin.String -} - public/*package*/ interface G0 { } @@ -15,74 +10,78 @@ public/*package*/ interface G2 { } public/*package*/ interface ReturnType { - public abstract fun f0(): test.G1<@test.A test.G0!>! - public abstract fun f1(): test.G1!>!>!>! - public abstract fun f11(): test.G2!, in @test.A(value = "abc") kotlin.Int!>!>!>! - public abstract fun f13(): (@test.A kotlin.Array..@test.A kotlin.Array?) - public abstract fun f14(): @test.A kotlin.IntArray! - public abstract fun f15(): kotlin.Array<(out) @test.A kotlin.Int!>! - public abstract fun f16(): kotlin.IntArray! - public abstract fun f17(): (@test.A kotlin.Array<@test.A kotlin.Int!>..@test.A kotlin.Array?) - public abstract fun f19(): (@test.A kotlin.Array!>..@test.A kotlin.Array!>?) - public abstract fun f2(): test.G1<@test.A kotlin.String!>! - public abstract fun f20(): (@test.A kotlin.Array<@test.A kotlin.IntArray!>..@test.A kotlin.Array?) - public abstract fun f22(): (@test.A kotlin.Array<(@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>..@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>?) - public abstract fun f23(): (@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>!>..@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>!>?) - public abstract fun f25(): kotlin.Array<(out) @test.A kotlin.IntArray!>! - public abstract fun f26(): kotlin.Array<(out) (@test.A kotlin.Array..@test.A kotlin.Array?)>! - public abstract fun f27(): kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) (@test.A kotlin.Array<@test.A kotlin.Any!>..@test.A kotlin.Array?)>!>!>!>! - public abstract fun f28(): test.G1<(@test.A kotlin.Array..@test.A kotlin.Array?)>! - public abstract fun f29(): test.G2! - public abstract fun f3(): test.G2<@test.A kotlin.String!, test.G2<@test.A(value = "abc") kotlin.Int!, test.G2<@test.A(value = "abc") test.G2!, @test.A(value = "abc") kotlin.Int!>!>!>! - public abstract fun f30(): test.G1!>! + public abstract fun f0(): test.G1<@org.jetbrains.annotations.NotNull test.G0>! + public abstract fun f1(): test.G1!>!>!>! + public abstract fun f11(): test.G2, in @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + public abstract fun f13(): (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array) + public abstract fun f14(): kotlin.IntArray! + @org.jetbrains.annotations.NotNull public abstract fun f15(): kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.Int>! + @org.jetbrains.annotations.NotNull public abstract fun f16(): kotlin.IntArray! + @org.jetbrains.annotations.NotNull public abstract fun f17(): (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array) + public abstract fun f19(): (@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>) + public abstract fun f2(): test.G1<@org.jetbrains.annotations.NotNull kotlin.String>! + public abstract fun f20(): (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array) + @org.jetbrains.annotations.NotNull public abstract fun f22(): (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>..@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>) + @org.jetbrains.annotations.NotNull public abstract fun f23(): (@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>!>) + public abstract fun f25(): kotlin.Array<(out) kotlin.IntArray!>! + public abstract fun f26(): kotlin.Array<(out) (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>! + @org.jetbrains.annotations.NotNull public abstract fun f27(): kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Any>..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>!>! + public abstract fun f28(): test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>! + public abstract fun f29(): test.G2! + public abstract fun f3(): test.G2<@org.jetbrains.annotations.NotNull kotlin.String, test.G2<@org.jetbrains.annotations.NotNull kotlin.Int, test.G2<@org.jetbrains.annotations.NotNull test.G2, @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + public abstract fun f30(): test.G1!>! public abstract fun f31(): test.G1!>! - public abstract fun f32(): test.G1..@test.A kotlin.Array?)>!, test.G1<@test.A kotlin.IntArray!>!>!>! - public abstract fun f33(): test.G1<@test.A kotlin.IntArray!>! - public abstract fun f34(): test.G1..@test.A kotlin.Array?)>!>! - public abstract fun f36(): test.G1<(@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>! + public abstract fun f32(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>! + public abstract fun f33(): test.G1! + public abstract fun f34(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>! + public abstract fun f36(): test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>! public abstract fun f37(): test.G1!>!>!>! - public abstract fun f38(): test.G1..@test.A kotlin.Array?)>!, test.G1!>!>!>!>! - public abstract fun f39(): test.G1<(@test.A kotlin.Array<(@test.A kotlin.Array..@test.A kotlin.Array?)>..@test.A kotlin.Array..@test.A kotlin.Array?)>?)>! - public abstract fun f40(): test.G1..@test.A kotlin.Array?)>! - public abstract fun f41(): test.G2! - public abstract fun f42(): test.G1!>! + public abstract fun f38(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>!>!>! + public abstract fun f39(): test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>! + public abstract fun f40(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>! + public abstract fun f41(): test.G2! + public abstract fun f42(): test.G1!>! public abstract fun f43(): test.G1!>! - public abstract fun f44(): test.G1..@test.A kotlin.Array?)>!, test.G1!>!>! - public abstract fun f46(): test.G1! - public abstract fun f47(): test.G1..@test.A kotlin.Array?)>!>! - public abstract fun f49(): test.G1!>!>!>!>!>! - public abstract fun f5(): test.G1!>!>!>! - public abstract fun f50(): test.G1..@test.A kotlin.Array?)>!>! - public abstract fun f51(): test.G1..@test.A kotlin.Array?)>!>!>!, test.G1..@test.A kotlin.Array?)>..@test.A kotlin.Array..@test.A kotlin.Array?)>?)>!>!>! - public abstract fun f53(): test.G1..@test.A kotlin.Array?)>! - public abstract fun f6(): test.G1! - public abstract fun f7(): test.G2!, out @test.A(value = "abc") kotlin.Int!>!>!>! - public abstract fun f8(): test.G1! - public abstract fun f9(): test.G1!>!>!>! + public abstract fun f44(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>! + public abstract fun f46(): test.G1! + public abstract fun f47(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>! + public abstract fun f49(): test.G1!>!>!>!>!>! + public abstract fun f5(): test.G1!>!>!>! + public abstract fun f50(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>! + public abstract fun f51(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>!, test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>!>!>! + public abstract fun f53(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>! + public abstract fun f6(): test.G1! + public abstract fun f7(): test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + public abstract fun f8(): test.G1! + public abstract fun f9(): test.G1!>!>!>! public open class ReturnType2 { public constructor ReturnType2() - public/*package*/ final var f10: test.G1! - public/*package*/ final var f12: test.G2!, out kotlin.Int!>!>!>! - public/*package*/ final var f18: @test.A kotlin.IntArray! - public/*package*/ final var f21: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) kotlin.Int!>!>!>! - public/*package*/ final var f24: (@test.A kotlin.Array..@test.A kotlin.Array?) - public/*package*/ final var f35: test.G2!>! - public/*package*/ final var f4: test.G1! - public/*package*/ final var f45: test.G1!>!, test.G1!>!>! + public/*package*/ final var f10: test.G1! + public/*package*/ final var f12: test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + @org.jetbrains.annotations.NotNull public/*package*/ final var f181: kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.Int>! + @org.jetbrains.annotations.NotNull public/*package*/ final var f182: (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array) + public/*package*/ final var f183: test.G1<@org.jetbrains.annotations.NotNull kotlin.Int>! + @org.jetbrains.annotations.NotNull public/*package*/ final var f21: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + @org.jetbrains.annotations.NotNull public/*package*/ final var f24: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array) + public/*package*/ final var f35: test.G2..@org.jetbrains.annotations.NotNull kotlin.Array)>! + public/*package*/ final var f4: test.G1! + public/*package*/ final var f45: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>! public/*package*/ final var f48: test.G2!>!>! - public/*package*/ final var f52: test.G1!>!>!>!, test.G1!>!>!>! + public/*package*/ final var f52: test.G1!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>)>!, test.G1!>!>!>! } // Static members - public final val f10: test.G1! - public final val f12: test.G2!, out kotlin.Int!>!>!>! - public final val f18: @test.A kotlin.IntArray! - public final val f21: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) kotlin.Int!>!>!>! - public final val f24: (@test.A kotlin.Array..@test.A kotlin.Array?) - public final val f35: test.G2!>! - public final val f4: test.G1! - public final val f45: test.G1!>!, test.G1!>!>! + public final val f10: test.G1! + public final val f12: test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + @org.jetbrains.annotations.NotNull public final val f161: kotlin.IntArray! + @org.jetbrains.annotations.NotNull public final val f18: kotlin.IntArray! + @org.jetbrains.annotations.NotNull public final val f21: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + @org.jetbrains.annotations.NotNull public final val f24: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array) + @org.jetbrains.annotations.NotNull public final val f271: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Any>..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>!>! + public final val f35: test.G2..@org.jetbrains.annotations.NotNull kotlin.Array)>! + public final val f4: test.G1! + public final val f45: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>! public final val f48: test.G2!>!>! - public final val f52: test.G1!>!>!>!, test.G1!>!>!>! + public final val f52: test.G1!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>)>!, test.G1!>!>!>! } diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ValueArguments.java b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ValueArguments.java index 8d54ff5550d..7f4944a269a 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ValueArguments.java +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ValueArguments.java @@ -1,11 +1,6 @@ package test; -import java.lang.annotation.*; - -@Target(ElementType.TYPE_USE) -@interface A { - String value() default ""; -} +import org.jetbrains.annotations.*; interface G0 { } interface G1 { } @@ -13,104 +8,104 @@ interface G2 { } interface ValueArguments { // simplpe type arguments - void f0(G1<@A G0> p); - void f1(G1>>> p); - void f2(G1<@A String> p); - void f3(G2<@A String, G2<@A("abc") Integer, G2<@A("abc") G2, @A("abc") Integer>>> p); + void f0(G1<@NotNull G0> p); + void f1(G1>>> p); + void f2(G1<@NotNull String> p); + void f3(G2<@NotNull String, G2<@NotNull Integer, G2<@NotNull G2, @NotNull Integer>>> p); // wildcards - void f4(G1 p); - void f5(G1>>> p); - void f6(G1 p1, G1>>> p2); - void f7(G2, ? extends @A("abc") Integer>>> p); + void f4(G1 p); + void f5(G1>>> p); + void f6(G1 p1, G1>>> p2); + void f7(G2, ? extends @NotNull Integer>>> p); - void f8(G1 p); - void f9(G1>>> p); - void f10(G1 p); - void f11(G2, ? super @A("abc") Integer>>> p); + void f8(G1 p); + void f9(G1>>> p); + void f10(G1 p); + void f11(G2, ? super @NotNull Integer>>> p); - void f12(G2, ? extends @A("abc") Integer>>> p); + void f12(G2, ? extends @NotNull Integer>>> p); // arrays - void f13(Integer @A [] p); - void f14(int @A [] p); - void f15(@A Integer [] p); - void f16(@A int [] p); - void f17(@A Integer @A [] p); - void f18(@A int @A [] p1, Integer @A [] p2, @A int [] p3); + void f13(Integer @NotNull [] p); + void f14(int @NotNull [] p); + void f15(@NotNull Integer [] p); + void f16(@Nullable int [] p); + void f17(@Nullable Integer @Nullable [] p); + void f18(@Nullable int @Nullable [] p1, Integer @Nullable [] p2, @Nullable int [] p3); // multidementional arrays - void f19(Integer @A [] [] p); - void f20(int @A [] @A [] p); - void f21(@A Integer [] [] [] p); - void f22(@A int @A [] @A [] [] @A [] p); - void f23(@A Integer @A [] [] @A [] [] p); - void f24(@A int @A [] @A [] p); - void f25(int [] @A [] p); - void f26(Object [] @A [] p1, int [] @A [] p2, @A int @A [] @A [] [] @A [] p3); - void f27(@A Object [] [] [] [] @A [] p); + void f19(Integer @NotNull [] [] p); + void f20(int @NotNull [] @NotNull [] p); + void f21(@NotNull Integer [] [] [] p); + void f22(@NotNull int @NotNull [] @NotNull [] [] @NotNull [] p); + void f23(@NotNull Integer @NotNull [] [] @NotNull [] [] p); + void f24(@NotNull int @NotNull [] @NotNull [] p); + void f25(int [] @Nullable [] p); + void f26(Object [] @Nullable [] p1, int [] @Nullable [] p2, @Nullable int @Nullable [] @Nullable [] [] @Nullable [] p3); + void f27(@Nullable Object [] [] [] [] @Nullable [] p); // arrays in type arguments - void f28(G1 p); - void f29(G2 p); - void f30(G1<@A Integer []> p); - void f31(G1> p); - void f32(G1, G1<@A int @A []>>> p); - void f33(G1<@A int @A []> p); - void f34(G1 p); - void f35(G2 p1, G1<@A Integer @A [] []> p2, G1> p3); - void f36(G1<@A Integer @A [] []> p); - void f37(G1> p); - void f38(G1, G1<@A int [] [] @A []>>> p); - void f39(G1<@A int @A [] @A [] []> p); + void f28(G1 p); + void f29(G2 p); + void f30(G1<@Nullable Integer []> p); + void f31(G1> p); + void f32(G1, G1<@NotNull int @NotNull []>>> p); + void f33(G1<@NotNull int @NotNull []> p); + void f34(G1 p); + void f35(G2 p1, G1<@NotNull Integer @NotNull [] []> p2, G1> p3); + void f36(G1<@NotNull Integer @NotNull [] []> p); + void f37(G1> p); + void f38(G1, G1<@NotNull int [] [] @NotNull []>>> p); + void f39(G1<@NotNull int @NotNull [] @NotNull [] []> p); // arrays in wildcard bounds - void f40(G1 p); - void f41(G2 p); - void f42(G1 p); - void f43(G1> p); - void f44(G1, G1>> p); - void f45(G1, G1>> p); - void f46(G1 p); - void f47(G1 p); - void f48(G2 p); - void f49(G1 p1, G1> p2, G2 p3); - void f50(G1> p); - void f51(G1, G1>> p); - void f52(G1, G1>> p); - void f53(G1 p); + void f40(G1 p); + void f41(G2 p); + void f42(G1 p); + void f43(G1> p); + void f44(G1, G1>> p); + void f45(G1, G1>> p); + void f46(G1 p); + void f47(G1 p); + void f48(G2 p); + void f49(G1 p1, G1> p2, G2 p3); + void f50(G1> p); + void f51(G1, G1>> p); + void f52(G1, G1>> p); + void f53(G1 p); - void f54(G1, G1>> p1, G1<@A int @A [] @A [] []> p2, @A Object [] [] [] [] @A [] p3, @A int @A [] p4, G2, ? extends @A("abc") Integer>>> p5); + void f54(G1, G1>> p1, G1<@NotNull int @NotNull [] @NotNull [] []> p2, @NotNull Object [] [] [] [] @NotNull [] p3, @NotNull int @NotNull [] p4, G2, ? extends @NotNull Integer>>> p5); // varargs - void f55(@A String ... x); - void f56(String @A ... x); - void f57(@A String @A ... x); - void f58(@A int ... x); - void f59(int @A ... x); - void f60(@A int @A ... x); + void f55(@NotNull String ... x); + void f56(String @NotNull ... x); + void f57(@NotNull String @NotNull ... x); + void f58(@NotNull int ... x); + void f59(int @NotNull ... x); + void f60(@NotNull int @Nullable ... x); // varargs + arrays - void f61(@A String [] ... x); - void f62(String @A [] ... x); - void f63(String [] @A ... x); - void f64(@A String @A [] @A ... x); - void f65(@A int [] ... x); - void f66(int @A [] ... x); - void f67(int [] @A ... x); - void f68(@A int @A [] @A ... x); + void f61(@Nullable String [] ... x); + void f62(String @Nullable [] ... x); + void f63(String [] @Nullable ... x); + void f64(@NotNull String @NotNull [] @NotNull ... x); + void f65(@NotNull int [] ... x); + void f66(int @NotNull [] ... x); + void f67(int [] @NotNull ... x); + void f68(@NotNull int @NotNull [] @NotNull ... x); - void f69(@A String [] [] ... x); - void f70(String [] @A [] ... x); - void f71(String [] [] [] @A ... x); - void f72(@A String @A [] [] @A [] @A ... x); - void f73(@A int [] @A [] ... x); - void f74(int @A [][][] @A [] ... x); - void f75(int [] [] [] @A ... x); - void f76(@A int @A [] [] @A ... x); + void f69(@NotNull String [] [] ... x); + void f70(String [] @Nullable [] ... x); + void f71(String [] [] [] @Nullable ... x); + void f72(@Nullable String @Nullable [] [] @NotNull [] @NotNull ... x); + void f73(@NotNull int [] @NotNull [] ... x); + void f74(int @NotNull [][][] @NotNull [] ... x); + void f75(int [] [] [] @NotNull ... x); + void f76(@NotNull int @NotNull [] [] @NotNull ... x); class Test { - public Test(G2, ? extends @A("abc") Integer>>> p1, Object [] @A [] p2, int [] @A [] p3, @A int @A [] @A [] [] @A [] p4, @A int @A [] [] @A ... p5) { + public Test(G2, ? extends @NotNull Integer>>> p1, Object [] @NotNull [] p2, int [] @NotNull [] p3, @NotNull int @NotNull [] @NotNull [] [] @NotNull [] p4, @NotNull int @NotNull [] [] @NotNull ... p5) { } } diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ValueArguments.txt b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ValueArguments.txt index e4ecaac4799..28bf56655b6 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ValueArguments.txt +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ValueArguments.txt @@ -1,10 +1,5 @@ package test -@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public/*package*/ final annotation class A : kotlin.Annotation { - public/*package*/ constructor A(/*0*/ value: kotlin.String = ...) - public final val value: kotlin.String -} - public/*package*/ interface G0 { } @@ -15,85 +10,85 @@ public/*package*/ interface G2 { } public/*package*/ interface ValueArguments { - public abstract fun f0(/*0*/ p0: test.G1<@test.A test.G0!>!): kotlin.Unit - public abstract fun f1(/*0*/ p0: test.G1!>!>!>!): kotlin.Unit - public abstract fun f10(/*0*/ p0: test.G1!): kotlin.Unit - public abstract fun f11(/*0*/ p0: test.G2!, in @test.A(value = "abc") kotlin.Int!>!>!>!): kotlin.Unit - public abstract fun f12(/*0*/ p0: test.G2!, out @test.A(value = "abc") kotlin.Int!>!>!>!): kotlin.Unit - public abstract fun f13(/*0*/ p0: (@test.A kotlin.Array..@test.A kotlin.Array?)): kotlin.Unit - public abstract fun f14(/*0*/ p0: @test.A kotlin.IntArray!): kotlin.Unit - public abstract fun f15(/*0*/ p0: kotlin.Array<(out) @test.A kotlin.Int!>!): kotlin.Unit - public abstract fun f16(/*0*/ p0: kotlin.IntArray!): kotlin.Unit - public abstract fun f17(/*0*/ p0: (@test.A kotlin.Array<@test.A kotlin.Int!>..@test.A kotlin.Array?)): kotlin.Unit - public abstract fun f18(/*0*/ p0: @test.A kotlin.IntArray!, /*1*/ p1: (@test.A kotlin.Array..@test.A kotlin.Array?), /*2*/ p2: kotlin.IntArray!): kotlin.Unit - public abstract fun f19(/*0*/ p0: (@test.A kotlin.Array!>..@test.A kotlin.Array!>?)): kotlin.Unit - public abstract fun f2(/*0*/ p0: test.G1<@test.A kotlin.String!>!): kotlin.Unit - public abstract fun f20(/*0*/ p0: (@test.A kotlin.Array<@test.A kotlin.IntArray!>..@test.A kotlin.Array?)): kotlin.Unit - public abstract fun f21(/*0*/ p0: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) @test.A kotlin.Int!>!>!>!): kotlin.Unit - public abstract fun f22(/*0*/ p0: (@test.A kotlin.Array<(@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>..@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>?)): kotlin.Unit - public abstract fun f23(/*0*/ p0: (@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>!>..@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>!>?)): kotlin.Unit - public abstract fun f24(/*0*/ p0: (@test.A kotlin.Array<@test.A kotlin.IntArray!>..@test.A kotlin.Array?)): kotlin.Unit - public abstract fun f25(/*0*/ p0: kotlin.Array<(out) @test.A kotlin.IntArray!>!): kotlin.Unit - public abstract fun f26(/*0*/ p0: kotlin.Array<(out) (@test.A kotlin.Array..@test.A kotlin.Array?)>!, /*1*/ p1: kotlin.Array<(out) @test.A kotlin.IntArray!>!, /*2*/ p2: (@test.A kotlin.Array<(@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>..@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>?)): kotlin.Unit - public abstract fun f27(/*0*/ p0: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) (@test.A kotlin.Array<@test.A kotlin.Any!>..@test.A kotlin.Array?)>!>!>!>!): kotlin.Unit - public abstract fun f28(/*0*/ p0: test.G1<(@test.A kotlin.Array..@test.A kotlin.Array?)>!): kotlin.Unit - public abstract fun f29(/*0*/ p0: test.G2!): kotlin.Unit - public abstract fun f3(/*0*/ p0: test.G2<@test.A kotlin.String!, test.G2<@test.A(value = "abc") kotlin.Int!, test.G2<@test.A(value = "abc") test.G2!, @test.A(value = "abc") kotlin.Int!>!>!>!): kotlin.Unit - public abstract fun f30(/*0*/ p0: test.G1!>!): kotlin.Unit + public abstract fun f0(/*0*/ p0: test.G1<@org.jetbrains.annotations.NotNull test.G0>!): kotlin.Unit + public abstract fun f1(/*0*/ p0: test.G1!>!>!>!): kotlin.Unit + public abstract fun f10(/*0*/ p0: test.G1!): kotlin.Unit + public abstract fun f11(/*0*/ p0: test.G2?, in @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f12(/*0*/ p0: test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f13(/*0*/ p0: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)): kotlin.Unit + public abstract fun f14(/*0*/ p0: kotlin.IntArray!): kotlin.Unit + public abstract fun f15(/*0*/ @org.jetbrains.annotations.NotNull p0: kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.Int>!): kotlin.Unit + public abstract fun f16(/*0*/ @org.jetbrains.annotations.Nullable p0: kotlin.IntArray!): kotlin.Unit + public abstract fun f17(/*0*/ @org.jetbrains.annotations.Nullable p0: (@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.Int?>?..@org.jetbrains.annotations.Nullable kotlin.Array?)): kotlin.Unit + public abstract fun f18(/*0*/ @org.jetbrains.annotations.Nullable p0: kotlin.IntArray!, /*1*/ p1: (@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?), /*2*/ @org.jetbrains.annotations.Nullable p2: kotlin.IntArray!): kotlin.Unit + public abstract fun f19(/*0*/ p0: (@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)): kotlin.Unit + public abstract fun f2(/*0*/ p0: test.G1<@org.jetbrains.annotations.NotNull kotlin.String>!): kotlin.Unit + public abstract fun f20(/*0*/ p0: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)): kotlin.Unit + public abstract fun f21(/*0*/ @org.jetbrains.annotations.NotNull p0: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f22(/*0*/ @org.jetbrains.annotations.NotNull p0: (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>..@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>)): kotlin.Unit + public abstract fun f23(/*0*/ @org.jetbrains.annotations.NotNull p0: (@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>!>)): kotlin.Unit + public abstract fun f24(/*0*/ @org.jetbrains.annotations.NotNull p0: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)): kotlin.Unit + public abstract fun f25(/*0*/ p0: kotlin.Array<(out) kotlin.IntArray!>!): kotlin.Unit + public abstract fun f26(/*0*/ p0: kotlin.Array<(out) (@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!, /*1*/ p1: kotlin.Array<(out) kotlin.IntArray!>!, /*2*/ @org.jetbrains.annotations.Nullable p2: (@org.jetbrains.annotations.Nullable kotlin.Array<(@org.jetbrains.annotations.Nullable kotlin.Array!>?..@org.jetbrains.annotations.Nullable kotlin.Array!>?)>?..@org.jetbrains.annotations.Nullable kotlin.Array!>?..@org.jetbrains.annotations.Nullable kotlin.Array!>?)>?)): kotlin.Unit + public abstract fun f27(/*0*/ @org.jetbrains.annotations.Nullable p0: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) (@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.Any?>?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>!>!>!): kotlin.Unit + public abstract fun f28(/*0*/ p0: test.G1<(@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!): kotlin.Unit + public abstract fun f29(/*0*/ p0: test.G2!): kotlin.Unit + public abstract fun f3(/*0*/ p0: test.G2<@org.jetbrains.annotations.NotNull kotlin.String, test.G2<@org.jetbrains.annotations.NotNull kotlin.Int, test.G2<@org.jetbrains.annotations.NotNull test.G2, @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f30(/*0*/ p0: test.G1!>!): kotlin.Unit public abstract fun f31(/*0*/ p0: test.G1!>!): kotlin.Unit - public abstract fun f32(/*0*/ p0: test.G1..@test.A kotlin.Array?)>!, test.G1<@test.A kotlin.IntArray!>!>!>!): kotlin.Unit - public abstract fun f33(/*0*/ p0: test.G1<@test.A kotlin.IntArray!>!): kotlin.Unit - public abstract fun f34(/*0*/ p0: test.G1..@test.A kotlin.Array?)>!>!): kotlin.Unit - public abstract fun f35(/*0*/ p0: test.G2..@test.A kotlin.Array?)>!, /*1*/ p1: test.G1<(@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>!, /*2*/ p2: test.G1!>!): kotlin.Unit - public abstract fun f36(/*0*/ p0: test.G1<(@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>!): kotlin.Unit + public abstract fun f32(/*0*/ p0: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>!): kotlin.Unit + public abstract fun f33(/*0*/ p0: test.G1!): kotlin.Unit + public abstract fun f34(/*0*/ p0: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!): kotlin.Unit + public abstract fun f35(/*0*/ p0: test.G2..@org.jetbrains.annotations.NotNull kotlin.Array)>!, /*1*/ p1: test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>!, /*2*/ p2: test.G1!>!): kotlin.Unit + public abstract fun f36(/*0*/ p0: test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>!): kotlin.Unit public abstract fun f37(/*0*/ p0: test.G1!>!>!>!): kotlin.Unit - public abstract fun f38(/*0*/ p0: test.G1..@test.A kotlin.Array?)>!, test.G1!>!>!>!>!): kotlin.Unit - public abstract fun f39(/*0*/ p0: test.G1<(@test.A kotlin.Array<(@test.A kotlin.Array..@test.A kotlin.Array?)>..@test.A kotlin.Array..@test.A kotlin.Array?)>?)>!): kotlin.Unit - public abstract fun f4(/*0*/ p0: test.G1!): kotlin.Unit - public abstract fun f40(/*0*/ p0: test.G1..@test.A kotlin.Array?)>!): kotlin.Unit - public abstract fun f41(/*0*/ p0: test.G2!): kotlin.Unit - public abstract fun f42(/*0*/ p0: test.G1!>!): kotlin.Unit + public abstract fun f38(/*0*/ p0: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>!>!>!): kotlin.Unit + public abstract fun f39(/*0*/ p0: test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>!): kotlin.Unit + public abstract fun f4(/*0*/ p0: test.G1!): kotlin.Unit + public abstract fun f40(/*0*/ p0: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!): kotlin.Unit + public abstract fun f41(/*0*/ p0: test.G2!): kotlin.Unit + public abstract fun f42(/*0*/ p0: test.G1!>!): kotlin.Unit public abstract fun f43(/*0*/ p0: test.G1!>!): kotlin.Unit - public abstract fun f44(/*0*/ p0: test.G1..@test.A kotlin.Array?)>!, test.G1!>!>!): kotlin.Unit - public abstract fun f45(/*0*/ p0: test.G1..@test.A kotlin.Array?)>!, test.G1!>!>!): kotlin.Unit - public abstract fun f46(/*0*/ p0: test.G1!): kotlin.Unit - public abstract fun f47(/*0*/ p0: test.G1..@test.A kotlin.Array?)>!>!): kotlin.Unit - public abstract fun f48(/*0*/ p0: test.G2!>!>!): kotlin.Unit - public abstract fun f49(/*0*/ p0: test.G1!>!>!>!>!>!, /*1*/ p1: test.G1..@test.A kotlin.Array?)>!>!, /*2*/ p2: test.G2!>!>!): kotlin.Unit - public abstract fun f5(/*0*/ p0: test.G1!>!>!>!): kotlin.Unit - public abstract fun f50(/*0*/ p0: test.G1..@test.A kotlin.Array?)>!>!): kotlin.Unit - public abstract fun f51(/*0*/ p0: test.G1..@test.A kotlin.Array?)>!>!>!, test.G1..@test.A kotlin.Array?)>..@test.A kotlin.Array..@test.A kotlin.Array?)>?)>!>!>!): kotlin.Unit - public abstract fun f52(/*0*/ p0: test.G1!>!>..@test.A kotlin.Array!>!>?)>!, test.G1!>!>!>!): kotlin.Unit - public abstract fun f53(/*0*/ p0: test.G1..@test.A kotlin.Array?)>!): kotlin.Unit - public abstract fun f54(/*0*/ p0: test.G1!>!>..@test.A kotlin.Array!>!>?)>!, test.G1!>!>!>!, /*1*/ p1: test.G1<(@test.A kotlin.Array<(@test.A kotlin.Array..@test.A kotlin.Array?)>..@test.A kotlin.Array..@test.A kotlin.Array?)>?)>!, /*2*/ p2: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) (@test.A kotlin.Array<@test.A kotlin.Any!>..@test.A kotlin.Array?)>!>!>!>!, /*3*/ p3: @test.A kotlin.IntArray!, /*4*/ p4: test.G2!, out @test.A(value = "abc") kotlin.Int!>!>!>!): kotlin.Unit - public abstract fun f55(/*0*/ vararg p0: @test.A kotlin.String! /*kotlin.Array<(out) @test.A kotlin.String!>!*/): kotlin.Unit - public abstract fun f56(/*0*/ vararg p0: kotlin.String! /*(@test.A kotlin.Array..@test.A kotlin.Array?)*/): kotlin.Unit - public abstract fun f57(/*0*/ vararg p0: @test.A kotlin.String! /*(@test.A kotlin.Array<@test.A kotlin.String!>..@test.A kotlin.Array?)*/): kotlin.Unit - public abstract fun f58(/*0*/ vararg p0: kotlin.Int /*kotlin.IntArray!*/): kotlin.Unit - public abstract fun f59(/*0*/ vararg p0: kotlin.Int /*@test.A kotlin.IntArray!*/): kotlin.Unit - public abstract fun f6(/*0*/ p0: test.G1!, /*1*/ p1: test.G1!>!>!>!): kotlin.Unit - public abstract fun f60(/*0*/ vararg p0: kotlin.Int /*@test.A kotlin.IntArray!*/): kotlin.Unit - public abstract fun f61(/*0*/ vararg p0: kotlin.Array<(out) @test.A kotlin.String!>! /*kotlin.Array<(out) kotlin.Array<(out) @test.A kotlin.String!>!>!*/): kotlin.Unit - public abstract fun f62(/*0*/ vararg p0: kotlin.Array<(out) kotlin.String!>! /*(@test.A kotlin.Array!>..@test.A kotlin.Array!>?)*/): kotlin.Unit - public abstract fun f63(/*0*/ vararg p0: (@test.A kotlin.Array..@test.A kotlin.Array?) /*kotlin.Array<(out) (@test.A kotlin.Array..@test.A kotlin.Array?)>!*/): kotlin.Unit - public abstract fun f64(/*0*/ vararg p0: (@test.A kotlin.Array<@test.A kotlin.String!>..@test.A kotlin.Array?) /*(@test.A kotlin.Array<(@test.A kotlin.Array<@test.A kotlin.String!>..@test.A kotlin.Array?)>..@test.A kotlin.Array..@test.A kotlin.Array?)>?)*/): kotlin.Unit - public abstract fun f65(/*0*/ vararg p0: kotlin.IntArray! /*kotlin.Array<(out) kotlin.IntArray!>!*/): kotlin.Unit - public abstract fun f66(/*0*/ vararg p0: kotlin.IntArray! /*(@test.A kotlin.Array..@test.A kotlin.Array?)*/): kotlin.Unit - public abstract fun f67(/*0*/ vararg p0: @test.A kotlin.IntArray! /*kotlin.Array<(out) @test.A kotlin.IntArray!>!*/): kotlin.Unit - public abstract fun f68(/*0*/ vararg p0: @test.A kotlin.IntArray! /*(@test.A kotlin.Array<@test.A kotlin.IntArray!>..@test.A kotlin.Array?)*/): kotlin.Unit - public abstract fun f69(/*0*/ vararg p0: kotlin.Array<(out) kotlin.Array<(out) @test.A kotlin.String!>!>! /*kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) @test.A kotlin.String!>!>!>!*/): kotlin.Unit - public abstract fun f7(/*0*/ p0: test.G2!, out @test.A(value = "abc") kotlin.Int!>!>!>!): kotlin.Unit - public abstract fun f70(/*0*/ vararg p0: (@test.A kotlin.Array!>..@test.A kotlin.Array!>?) /*kotlin.Array<(out) (@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>!*/): kotlin.Unit - public abstract fun f71(/*0*/ vararg p0: kotlin.Array<(out) kotlin.Array<(out) (@test.A kotlin.Array..@test.A kotlin.Array?)>!>! /*kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) (@test.A kotlin.Array..@test.A kotlin.Array?)>!>!>!*/): kotlin.Unit - public abstract fun f72(/*0*/ vararg p0: kotlin.Array<(out) (@test.A kotlin.Array<(@test.A kotlin.Array<@test.A kotlin.String!>..@test.A kotlin.Array?)>..@test.A kotlin.Array..@test.A kotlin.Array?)>?)>! /*(@test.A kotlin.Array..@test.A kotlin.Array?)>..@test.A kotlin.Array..@test.A kotlin.Array?)>?)>!>..@test.A kotlin.Array..@test.A kotlin.Array?)>..@test.A kotlin.Array..@test.A kotlin.Array?)>?)>!>?)*/): kotlin.Unit - public abstract fun f73(/*0*/ vararg p0: (@test.A kotlin.Array..@test.A kotlin.Array?) /*kotlin.Array<(out) (@test.A kotlin.Array..@test.A kotlin.Array?)>!*/): kotlin.Unit - public abstract fun f74(/*0*/ vararg p0: kotlin.Array<(out) kotlin.Array<(out) (@test.A kotlin.Array..@test.A kotlin.Array?)>!>! /*(@test.A kotlin.Array..@test.A kotlin.Array?)>!>!>..@test.A kotlin.Array..@test.A kotlin.Array?)>!>!>?)*/): kotlin.Unit - public abstract fun f75(/*0*/ vararg p0: kotlin.Array<(out) kotlin.Array<(out) @test.A kotlin.IntArray!>!>! /*kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) @test.A kotlin.IntArray!>!>!>!*/): kotlin.Unit - public abstract fun f76(/*0*/ vararg p0: kotlin.Array<(out) @test.A kotlin.IntArray!>! /*(@test.A kotlin.Array!>..@test.A kotlin.Array!>?)*/): kotlin.Unit - public abstract fun f8(/*0*/ p0: test.G1!): kotlin.Unit - public abstract fun f9(/*0*/ p0: test.G1!>!>!>!): kotlin.Unit + public abstract fun f44(/*0*/ p0: test.G1?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!, test.G1!>!>!): kotlin.Unit + public abstract fun f45(/*0*/ p0: test.G1?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!, test.G1!>!>!): kotlin.Unit + public abstract fun f46(/*0*/ p0: test.G1!): kotlin.Unit + public abstract fun f47(/*0*/ p0: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!): kotlin.Unit + public abstract fun f48(/*0*/ p0: test.G2!>!>!): kotlin.Unit + public abstract fun f49(/*0*/ p0: test.G1!>!>!>!>!>!, /*1*/ p1: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!, /*2*/ p2: test.G2!>!>!): kotlin.Unit + public abstract fun f5(/*0*/ p0: test.G1!>!>!>!): kotlin.Unit + public abstract fun f50(/*0*/ p0: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!): kotlin.Unit + public abstract fun f51(/*0*/ p0: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>!, test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>!>!>!): kotlin.Unit + public abstract fun f52(/*0*/ p0: test.G1!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>)>!, test.G1!>!>!>!): kotlin.Unit + public abstract fun f53(/*0*/ p0: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!): kotlin.Unit + public abstract fun f54(/*0*/ p0: test.G1!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>)>!, test.G1!>!>!>!, /*1*/ p1: test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>!, /*2*/ @org.jetbrains.annotations.NotNull p2: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Any>..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>!>!, /*3*/ @org.jetbrains.annotations.NotNull p3: kotlin.IntArray!, /*4*/ p4: test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f55(/*0*/ @org.jetbrains.annotations.NotNull vararg p0: @org.jetbrains.annotations.NotNull kotlin.String /*kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.String>!*/): kotlin.Unit + public abstract fun f56(/*0*/ vararg p0: kotlin.String! /*(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)*/): kotlin.Unit + public abstract fun f57(/*0*/ @org.jetbrains.annotations.NotNull vararg p0: @org.jetbrains.annotations.NotNull kotlin.String /*(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.String>..@org.jetbrains.annotations.NotNull kotlin.Array)*/): kotlin.Unit + public abstract fun f58(/*0*/ @org.jetbrains.annotations.NotNull vararg p0: kotlin.Int /*kotlin.IntArray!*/): kotlin.Unit + public abstract fun f59(/*0*/ vararg p0: kotlin.Int /*kotlin.IntArray!*/): kotlin.Unit + public abstract fun f6(/*0*/ p0: test.G1!, /*1*/ p1: test.G1!>!>!>!): kotlin.Unit + public abstract fun f60(/*0*/ @org.jetbrains.annotations.NotNull vararg p0: kotlin.Int /*kotlin.IntArray!*/): kotlin.Unit + public abstract fun f61(/*0*/ @org.jetbrains.annotations.Nullable vararg p0: kotlin.Array<(out) @org.jetbrains.annotations.Nullable kotlin.String?>! /*kotlin.Array<(out) kotlin.Array<(out) @org.jetbrains.annotations.Nullable kotlin.String?>!>!*/): kotlin.Unit + public abstract fun f62(/*0*/ vararg p0: kotlin.Array<(out) kotlin.String!>! /*(@org.jetbrains.annotations.Nullable kotlin.Array!>..@org.jetbrains.annotations.Nullable kotlin.Array!>?)*/): kotlin.Unit + public abstract fun f63(/*0*/ vararg p0: (@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?) /*kotlin.Array<(out) (@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!*/): kotlin.Unit + public abstract fun f64(/*0*/ @org.jetbrains.annotations.NotNull vararg p0: (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.String>..@org.jetbrains.annotations.NotNull kotlin.Array) /*(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.String>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)*/): kotlin.Unit + public abstract fun f65(/*0*/ @org.jetbrains.annotations.NotNull vararg p0: kotlin.IntArray! /*kotlin.Array<(out) kotlin.IntArray!>!*/): kotlin.Unit + public abstract fun f66(/*0*/ vararg p0: kotlin.IntArray! /*(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)*/): kotlin.Unit + public abstract fun f67(/*0*/ vararg p0: kotlin.IntArray! /*kotlin.Array<(out) kotlin.IntArray!>!*/): kotlin.Unit + public abstract fun f68(/*0*/ @org.jetbrains.annotations.NotNull vararg p0: kotlin.IntArray! /*(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)*/): kotlin.Unit + public abstract fun f69(/*0*/ @org.jetbrains.annotations.NotNull vararg p0: kotlin.Array<(out) kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.String>!>! /*kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.String>!>!>!*/): kotlin.Unit + public abstract fun f7(/*0*/ p0: test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f70(/*0*/ vararg p0: (@org.jetbrains.annotations.Nullable kotlin.Array!>?..@org.jetbrains.annotations.Nullable kotlin.Array!>?) /*kotlin.Array<(out) (@org.jetbrains.annotations.Nullable kotlin.Array!>?..@org.jetbrains.annotations.Nullable kotlin.Array!>?)>!*/): kotlin.Unit + public abstract fun f71(/*0*/ vararg p0: kotlin.Array<(out) kotlin.Array<(out) (@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>! /*kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) (@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>!>!*/): kotlin.Unit + public abstract fun f72(/*0*/ @org.jetbrains.annotations.Nullable vararg p0: kotlin.Array<(out) (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.String?>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>! /*(@org.jetbrains.annotations.Nullable kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>!>..@org.jetbrains.annotations.Nullable kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>!>?)*/): kotlin.Unit + public abstract fun f73(/*0*/ @org.jetbrains.annotations.NotNull vararg p0: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array) /*kotlin.Array<(out) (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!*/): kotlin.Unit + public abstract fun f74(/*0*/ vararg p0: kotlin.Array<(out) kotlin.Array<(out) (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!>! /*(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>)*/): kotlin.Unit + public abstract fun f75(/*0*/ vararg p0: kotlin.Array<(out) kotlin.Array<(out) kotlin.IntArray!>!>! /*kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) kotlin.IntArray!>!>!>!*/): kotlin.Unit + public abstract fun f76(/*0*/ @org.jetbrains.annotations.NotNull vararg p0: kotlin.Array<(out) kotlin.IntArray!>! /*(@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)*/): kotlin.Unit + public abstract fun f8(/*0*/ p0: test.G1!): kotlin.Unit + public abstract fun f9(/*0*/ p0: test.G1!>!>!>!): kotlin.Unit public open class Test { - public constructor Test(/*0*/ p0: test.G2!, out @test.A(value = "abc") kotlin.Int!>!>!>!, /*1*/ p1: kotlin.Array<(out) (@test.A kotlin.Array..@test.A kotlin.Array?)>!, /*2*/ p2: kotlin.Array<(out) @test.A kotlin.IntArray!>!, /*3*/ p3: (@test.A kotlin.Array<(@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>..@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>?), /*4*/ vararg p4: kotlin.Array<(out) @test.A kotlin.IntArray!>! /*(@test.A kotlin.Array!>..@test.A kotlin.Array!>?)*/) + public constructor Test(/*0*/ p0: test.G2?, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!, /*1*/ p1: kotlin.Array<(out) (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!, /*2*/ p2: kotlin.Array<(out) kotlin.IntArray!>!, /*3*/ @org.jetbrains.annotations.NotNull p3: (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>..@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>), /*4*/ @org.jetbrains.annotations.NotNull vararg p4: kotlin.Array<(out) kotlin.IntArray!>! /*(@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)*/) } } diff --git a/compiler/testData/loadJava8/sourceJava/typeParameterAnnotations/Basic.java b/compiler/testData/loadJava8/sourceJava/typeParameterAnnotations/Basic.java index 65420a47763..c363b13d82c 100644 --- a/compiler/testData/loadJava8/sourceJava/typeParameterAnnotations/Basic.java +++ b/compiler/testData/loadJava8/sourceJava/typeParameterAnnotations/Basic.java @@ -1,22 +1,19 @@ // JAVAC_EXPECTED_FILE + package test; -import java.lang.annotation.*; +import org.jetbrains.annotations.*; + public class Basic { - @Target(ElementType.TYPE_PARAMETER) - public @interface A { - String value() default ""; + public interface G<@NotNull T> { + <@NotNull R> void foo(R r); } - public interface G<@A T> { - <@A("abc") R> void foo(R r); + public interface G1 { + void foo(R r); } - public interface G1 { - void foo(R r); - } - - void foo(R r) { + void foo(R r) { } } diff --git a/compiler/testData/loadJava8/sourceJava/typeParameterAnnotations/Basic.javac.txt b/compiler/testData/loadJava8/sourceJava/typeParameterAnnotations/Basic.javac.txt index a9887657d0a..900f301900d 100644 --- a/compiler/testData/loadJava8/sourceJava/typeParameterAnnotations/Basic.javac.txt +++ b/compiler/testData/loadJava8/sourceJava/typeParameterAnnotations/Basic.javac.txt @@ -9,6 +9,6 @@ public open class Basic { } public interface G { - public abstract fun foo(/*0*/ r: R!): kotlin.Unit + public abstract fun foo(/*0*/ p0: R!): kotlin.Unit } } diff --git a/compiler/testData/loadJava8/sourceJava/typeParameterAnnotations/Basic.txt b/compiler/testData/loadJava8/sourceJava/typeParameterAnnotations/Basic.txt index 462a7a3341e..80bfb3d426f 100644 --- a/compiler/testData/loadJava8/sourceJava/typeParameterAnnotations/Basic.txt +++ b/compiler/testData/loadJava8/sourceJava/typeParameterAnnotations/Basic.txt @@ -2,18 +2,13 @@ package test public open class Basic { public constructor Basic() - public/*package*/ open fun foo(/*0*/ r: R!): kotlin.Unit + public/*package*/ open fun foo(/*0*/ r: R!): kotlin.Unit - @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) public final annotation class A : kotlin.Annotation { - public constructor A(/*0*/ value: kotlin.String = ...) - public final val value: kotlin.String + public interface G { + public abstract fun foo(/*0*/ r: R): kotlin.Unit } - public interface G { - public abstract fun foo(/*0*/ r: R!): kotlin.Unit - } - - public interface G1 { - public abstract fun foo(/*0*/ r: R!): kotlin.Unit + public interface G1 { + public abstract fun foo(/*0*/ r: R!): kotlin.Unit } } diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/BaseClassTypeArguments.java b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/BaseClassTypeArguments.java index b99084103bc..27c4dff6bba 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/BaseClassTypeArguments.java +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/BaseClassTypeArguments.java @@ -1,26 +1,23 @@ +// JAVAC_EXPECTED_FILE + package test; -import java.lang.annotation.*; - -@Target(ElementType.TYPE_USE) -@interface A { - String value() default ""; -} +import org.jetbrains.annotations.*; interface I1 {} interface I2 {} interface I3 {} +class A1 {} class A2 {} class A3 {} -public class BaseClassTypeArguments extends A3<@A B [][][][][], I1>, A2> implements I1<@A Integer @A [][][]>, I2<@A B, B>, I3<@A B [][][][][], B, @A B> { - class ImplementedInterfacesTypeArguments implements I1, I1<@A int [] @A []>>>, I2<@A B, B>, I3<@A B [][][][][], I1>, I2> { - public class BaseClassTypeArguments1 extends A3<@A B [][][][][], I1>, A2> { +public class BaseClassTypeArguments extends A3<@NotNull B [][][][][], I1>, A2> implements I1<@NotNull Integer @NotNull [][][]>, I2<@NotNull B, B>, I3<@NotNull B [][][][][], B, @NotNull B> { + class Basic1 implements I1<@NotNull String> { } + class Basic2 extends A1<@NotNull String> { } - } + class ImplementedInterfacesTypeArguments implements I1, I1<@NotNull int [] @NotNull []>>>, I2<@NotNull B, B>, I3<@NotNull B [][][][][], I1>, I2> { + public class BaseClassTypeArguments1 extends A3<@NotNull B [][][][][], I1>, A2> { } } - static class BaseClassTypeArguments2 extends A3<@A B [][][][][], I1>, A2> { - - } -} \ No newline at end of file + static class BaseClassTypeArguments2 extends A3<@NotNull B [][][][][], I1>, A2> { } +} diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/BaseClassTypeArguments.javac.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/BaseClassTypeArguments.javac.txt new file mode 100644 index 00000000000..8ee5f909517 --- /dev/null +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/BaseClassTypeArguments.javac.txt @@ -0,0 +1,46 @@ +package test + +public/*package*/ open class A1 { + public/*package*/ constructor A1() +} + +public/*package*/ open class A2 { + public/*package*/ constructor A2() +} + +public/*package*/ open class A3 { + public/*package*/ constructor A3() +} + +public open class BaseClassTypeArguments : test.A3!>!>!>!>!, test.I1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!, test.A2!>!>!>, test.I1<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>, test.I2<@org.jetbrains.annotations.NotNull B, B!>, test.I3!>!>!>!>!, B!, @org.jetbrains.annotations.NotNull B> { + public constructor BaseClassTypeArguments() + + public/*package*/ open class BaseClassTypeArguments2 : test.A3!>!>!>!>!, test.I1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!, test.A2!>!>!> { + public/*package*/ constructor BaseClassTypeArguments2() + } + + public/*package*/ open inner class Basic1 /*captured type parameters: /*0*/ B : kotlin.Any!*/ : test.I1<@org.jetbrains.annotations.NotNull kotlin.String> { + public/*package*/ constructor Basic1() + } + + public/*package*/ open inner class Basic2 /*captured type parameters: /*0*/ B : kotlin.Any!*/ : test.A1<@org.jetbrains.annotations.NotNull kotlin.String> { + public/*package*/ constructor Basic2() + } + + public/*package*/ open inner class ImplementedInterfacesTypeArguments /*captured type parameters: /*1*/ B : kotlin.Any!*/ : test.I1..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>!, test.I1!>!>!>, test.I2<@org.jetbrains.annotations.NotNull B, B!>, test.I3!>!>!>!>!, test.I1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!, test.I2!>!>!> { + public/*package*/ constructor ImplementedInterfacesTypeArguments() + + public open inner class BaseClassTypeArguments1 /*captured type parameters: /*1*/ B : kotlin.Any!, /*2*/ B : kotlin.Any!*/ : test.A3!>!>!>!>!, test.I1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!, test.A2!>!>!> { + public constructor BaseClassTypeArguments1() + } + } +} + +public/*package*/ interface I1 { +} + +public/*package*/ interface I2 { +} + +public/*package*/ interface I3 { +} diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/BaseClassTypeArguments.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/BaseClassTypeArguments.txt index 09f9e522c1c..8f8ce569162 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/BaseClassTypeArguments.txt +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/BaseClassTypeArguments.txt @@ -1,16 +1,24 @@ package test -public open class BaseClassTypeArguments : test.A3!>!>!>!>!, test.I1!>!>!, test.A2!>..@test.A kotlin.Array!>?)>!>, test.I1..@test.A kotlin.Array?)>!>!>, test.I2<@test.A B!, B!>, test.I3!>!>!>!>!, B!, @test.A B!> { +public open class BaseClassTypeArguments : test.A3!>!>!>!>!, test.I1!>!>!, test.A2!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>!>, test.I1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>, test.I2<@org.jetbrains.annotations.NotNull B, B!>, test.I3!>!>!>!>!, B!, @org.jetbrains.annotations.NotNull B> { public constructor BaseClassTypeArguments() - public/*package*/ open class BaseClassTypeArguments2 : test.A3!>!>!>!>!, test.I1!>!>!, test.A2!>..@test.A kotlin.Array!>?)>!> { + public/*package*/ open class BaseClassTypeArguments2 : test.A3!>!>!>!>!, test.I1!>!>!, test.A2!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>!> { public/*package*/ constructor BaseClassTypeArguments2() } - public/*package*/ open inner class ImplementedInterfacesTypeArguments /*captured type parameters: /*1*/ B : kotlin.Any!*/ : test.I1..@test.A kotlin.Array?)>!>!>!, test.I1<(@test.A kotlin.Array..@test.A kotlin.Array?)>!>!>, test.I2<@test.A B!, B!>, test.I3!>!>!>!>!, test.I1!>!>!, test.I2!>..@test.A kotlin.Array!>?)>!> { + public/*package*/ open inner class Basic1 /*captured type parameters: /*0*/ B : kotlin.Any!*/ : test.I1<@org.jetbrains.annotations.NotNull kotlin.String> { + public/*package*/ constructor Basic1() + } + + public/*package*/ open inner class Basic2 /*captured type parameters: /*0*/ B : kotlin.Any!*/ : test.A1<@org.jetbrains.annotations.NotNull kotlin.String> { + public/*package*/ constructor Basic2() + } + + public/*package*/ open inner class ImplementedInterfacesTypeArguments /*captured type parameters: /*1*/ B : kotlin.Any!*/ : test.I1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>!, test.I1<(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>, test.I2<@org.jetbrains.annotations.NotNull B, B!>, test.I3!>!>!>!>!, test.I1!>!>!, test.I2!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>!> { public/*package*/ constructor ImplementedInterfacesTypeArguments() - public open inner class BaseClassTypeArguments1 /*captured type parameters: /*1*/ B : kotlin.Any!, /*2*/ B : kotlin.Any!*/ : test.A3!>!>!>!>!, test.I1!>!>!, test.A2!>..@test.A kotlin.Array!>?)>!> { + public open inner class BaseClassTypeArguments1 /*captured type parameters: /*1*/ B : kotlin.Any!, /*2*/ B : kotlin.Any!*/ : test.A3!>!>!>!>!, test.I1!>!>!, test.A2!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>!> { public constructor BaseClassTypeArguments1() } } diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/Basic.java b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/Basic.java index e2309dac755..8759772b49e 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/Basic.java +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/Basic.java @@ -1,12 +1,10 @@ +// JAVAC_EXPECTED_FILE + package test; -import java.lang.annotation.*; -public class Basic { - @Target(ElementType.TYPE_USE) - @interface A { - String value() default ""; - } +import org.jetbrains.annotations.*; +public class Basic { interface G { } @@ -14,8 +12,7 @@ public class Basic { } public interface MyClass { - void f(G<@A String> p); - - void f(G2<@A String, @A("abc") Integer> p); + void f(G<@NotNull String> p); + void f(G2<@Nullable String, @NotNull Integer> p); } } diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/Basic.javac.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/Basic.javac.txt new file mode 100644 index 00000000000..5d7173d954b --- /dev/null +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/Basic.javac.txt @@ -0,0 +1,16 @@ +package test + +public open class Basic { + public constructor Basic() + + public/*package*/ interface G { + } + + public/*package*/ interface G2 { + } + + public interface MyClass { + public abstract fun f(/*0*/ p: test.Basic.G2<@org.jetbrains.annotations.Nullable kotlin.String?, @org.jetbrains.annotations.NotNull kotlin.Int>!): kotlin.Unit + public abstract fun f(/*0*/ p: test.Basic.G<@org.jetbrains.annotations.NotNull kotlin.String>!): kotlin.Unit + } +} diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/Basic.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/Basic.txt index ce0f47c771f..5d7173d954b 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/Basic.txt +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/Basic.txt @@ -3,11 +3,6 @@ package test public open class Basic { public constructor Basic() - @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) public/*package*/ final annotation class A : kotlin.Annotation { - public/*package*/ constructor A(/*0*/ value: kotlin.String = ...) - public final val value: kotlin.String - } - public/*package*/ interface G { } @@ -15,7 +10,7 @@ public open class Basic { } public interface MyClass { - public abstract fun f(/*0*/ p: test.Basic.G2<@test.Basic.A kotlin.String!, @test.Basic.A(value = "abc") kotlin.Int!>!): kotlin.Unit - public abstract fun f(/*0*/ p: test.Basic.G<@test.Basic.A kotlin.String!>!): kotlin.Unit + public abstract fun f(/*0*/ p: test.Basic.G2<@org.jetbrains.annotations.Nullable kotlin.String?, @org.jetbrains.annotations.NotNull kotlin.Int>!): kotlin.Unit + public abstract fun f(/*0*/ p: test.Basic.G<@org.jetbrains.annotations.NotNull kotlin.String>!): kotlin.Unit } } diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ClassTypeParameterBounds.java b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ClassTypeParameterBounds.java index e8ed265b044..1d6c9fadcec 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ClassTypeParameterBounds.java +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ClassTypeParameterBounds.java @@ -2,12 +2,7 @@ package test; -import java.lang.annotation.*; - -@Target(ElementType.TYPE_USE) -@interface A { - String value() default ""; -} +import org.jetbrains.annotations.*; public class ClassTypeParameterBounds { interface I1 {} @@ -15,19 +10,19 @@ public class ClassTypeParameterBounds { interface I3 {} interface I4 {} - interface G1 { } - class G2<_A, B extends @A Integer> { } - interface G3<_A, B extends Object & @A I1> { } - class G4<_A extends @A B, B> { } - interface G5<_A, B extends @A _A> { } - class G6<_A extends @A I1, B, C, D extends @A E, E, F> { } - interface G7<_A extends Object & I2<@A Integer> & @A I3> { } - interface G8<_A extends Object & I2 & @A I3> { } + interface G1 { } + class G2<_A, B extends @Nullable Integer> { } + interface G3<_A, B extends Object & @NotNull I1> { } + class G4<_A extends @NotNull B, B> { } + interface G5<_A, B extends @Nullable _A> { } + class G6<_A extends @Nullable I1, B, C, D extends @NotNull E, E, F> { } + interface G7<_A extends Object & I2<@NotNull Integer> & @NotNull I3> { } + interface G8<_A extends Object & I2 & @Nullable I3> { } - interface G9<_A extends I4 & I2 & @A I3> { } - interface G10<_A extends I4 & I2 & @A I3> { } - interface G11<_A extends I4 & I2 & @A I3> { } - interface G12<_A extends I4 & I2 & @A I3> { } + interface G9<_A extends I4 & I2 & @NotNull I3> { } + interface G10<_A extends I4 & I2 & @NotNull I3> { } + interface G11<_A extends I4 & I2 & @NotNull I3> { } + interface G12<_A extends I4 & I2 & @NotNull I3> { } - // class G13<_A extends Object, B extends I3<@A _A> & @A I2<_A>> { } + // class G13<_A extends Object, B extends I3<@NotNull _A> & @NotNull I2<_A>> { } } diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ClassTypeParameterBounds.javac.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ClassTypeParameterBounds.javac.txt new file mode 100644 index 00000000000..bb30ad96647 --- /dev/null +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ClassTypeParameterBounds.javac.txt @@ -0,0 +1,56 @@ +package test + +public open class ClassTypeParameterBounds { + public constructor ClassTypeParameterBounds() + + public/*package*/ interface G1 { + } + + public/*package*/ interface G10!> where _A : test.ClassTypeParameterBounds.I2!, _A : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I3 { + } + + public/*package*/ interface G11..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>!> where _A : test.ClassTypeParameterBounds.I2..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>)>!, _A : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I3..@org.jetbrains.annotations.NotNull kotlin.Array)>!> { + } + + public/*package*/ interface G12?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!> where _A : test.ClassTypeParameterBounds.I2!>!>!, _A : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I3..@org.jetbrains.annotations.NotNull kotlin.Array)>!> { + } + + public/*package*/ open inner class G2 { + public/*package*/ constructor G2() + } + + public/*package*/ interface G3 where B : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I1 { + } + + public/*package*/ open inner class G4 { + public/*package*/ constructor G4() + } + + public/*package*/ interface G5 { + } + + public/*package*/ open inner class G6 { + public/*package*/ constructor G6() + } + + public/*package*/ interface G7 where _A : test.ClassTypeParameterBounds.I2<@org.jetbrains.annotations.NotNull kotlin.Int>!, _A : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I3 { + } + + public/*package*/ interface G8 where _A : test.ClassTypeParameterBounds.I2!, _A : @org.jetbrains.annotations.Nullable test.ClassTypeParameterBounds.I3? { + } + + public/*package*/ interface G9..@org.jetbrains.annotations.NotNull kotlin.Array)>!> where _A : test.ClassTypeParameterBounds.I2..@org.jetbrains.annotations.NotNull kotlin.Array)>!, _A : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I3..@org.jetbrains.annotations.NotNull kotlin.Array)> { + } + + public/*package*/ interface I1 { + } + + public/*package*/ interface I2 { + } + + public/*package*/ interface I3 { + } + + public/*package*/ interface I4 { + } +} diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ClassTypeParameterBounds.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ClassTypeParameterBounds.txt index 7cb5d93800e..853e3add154 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ClassTypeParameterBounds.txt +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ClassTypeParameterBounds.txt @@ -3,43 +3,43 @@ package test public open class ClassTypeParameterBounds { public constructor ClassTypeParameterBounds() - public/*package*/ interface G1 { + public/*package*/ interface G1 { } - public/*package*/ interface G10!> where _A : test.ClassTypeParameterBounds.I2!, _A : @test.A test.ClassTypeParameterBounds.I3! { + public/*package*/ interface G10!> where _A : test.ClassTypeParameterBounds.I2!, _A : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I3 { } - public/*package*/ interface G11!>!>..@test.A kotlin.Array!>!>?)>!> where _A : test.ClassTypeParameterBounds.I2..@test.A kotlin.Array?)>!>!>!>!, _A : @test.A test.ClassTypeParameterBounds.I3!>..@test.A kotlin.Array!>?)>! { + public/*package*/ interface G11!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>)>!> where _A : test.ClassTypeParameterBounds.I2..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>!>!, _A : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I3!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)> { } - public/*package*/ interface G12!>!> where _A : test.ClassTypeParameterBounds.I2!>..@test.A kotlin.Array!>?)>!, _A : @test.A test.ClassTypeParameterBounds.I3..@test.A kotlin.Array?)>!>! { + public/*package*/ interface G12!>!> where _A : test.ClassTypeParameterBounds.I2!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>!, _A : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I3..@org.jetbrains.annotations.NotNull kotlin.Array)>!> { } - public/*package*/ open inner class G2 { - public/*package*/ constructor G2() + public/*package*/ open inner class G2 { + public/*package*/ constructor G2() } - public/*package*/ interface G3 where B : @test.A test.ClassTypeParameterBounds.I1! { + public/*package*/ interface G3 where B : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I1 { } - public/*package*/ open inner class G4 { - public/*package*/ constructor G4() + public/*package*/ open inner class G4 { + public/*package*/ constructor G4() } - public/*package*/ interface G5 { + public/*package*/ interface G5 { } - public/*package*/ open inner class G6 { - public/*package*/ constructor G6() + public/*package*/ open inner class G6 { + public/*package*/ constructor G6() } - public/*package*/ interface G7 where _A : test.ClassTypeParameterBounds.I2<@test.A kotlin.Int!>!, _A : @test.A test.ClassTypeParameterBounds.I3! { + public/*package*/ interface G7 where _A : test.ClassTypeParameterBounds.I2<@org.jetbrains.annotations.NotNull kotlin.Int>!, _A : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I3 { } - public/*package*/ interface G8 where _A : test.ClassTypeParameterBounds.I2!, _A : @test.A test.ClassTypeParameterBounds.I3! { + public/*package*/ interface G8 where _A : test.ClassTypeParameterBounds.I2!, _A : @org.jetbrains.annotations.Nullable test.ClassTypeParameterBounds.I3? { } - public/*package*/ interface G9..@test.A kotlin.Array?)>!> where _A : test.ClassTypeParameterBounds.I2..@test.A kotlin.Array?)>!, _A : @test.A test.ClassTypeParameterBounds.I3..@test.A kotlin.Array?)>! { + public/*package*/ interface G9..@org.jetbrains.annotations.NotNull kotlin.Array)>!> where _A : test.ClassTypeParameterBounds.I2..@org.jetbrains.annotations.NotNull kotlin.Array)>!, _A : @org.jetbrains.annotations.NotNull test.ClassTypeParameterBounds.I3..@org.jetbrains.annotations.NotNull kotlin.Array)> { } public/*package*/ interface I1 { diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodReceiver.java b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodReceiver.java index c26e08c0b33..2a43d23c233 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodReceiver.java +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodReceiver.java @@ -2,12 +2,7 @@ package test; -import java.lang.annotation.*; - -@Target(ElementType.TYPE_USE) -@interface A { - String value() default ""; -} +import org.jetbrains.annotations.*; /* * Note that a receiver type doesn't get into signatures used by the Kotlin compiler @@ -15,9 +10,9 @@ import java.lang.annotation.*; */ public class MethodReceiver { - public void f1(MethodReceiver<@A T> this) { } + public void f1(MethodReceiver<@Nullable T> this) { } class MethodReceiver3 { - public void f1(@A MethodReceiver3<@A T, K, @A L> this) { } + public void f1(@Nullable MethodReceiver3<@Nullable T, K, @Nullable L> this) { } } } \ No newline at end of file diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodReceiver.javac.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodReceiver.javac.txt new file mode 100644 index 00000000000..1964dcde5ba --- /dev/null +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodReceiver.javac.txt @@ -0,0 +1,11 @@ +package test + +public open class MethodReceiver { + public constructor MethodReceiver() + public open fun f1(): kotlin.Unit + + public/*package*/ open inner class MethodReceiver3 /*captured type parameters: /*3*/ T : kotlin.Any!*/ { + public/*package*/ constructor MethodReceiver3() + public open fun f1(): kotlin.Unit + } +} diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodTypeParameterBounds.java b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodTypeParameterBounds.java index 1ddc625116a..16b4632069b 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodTypeParameterBounds.java +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodTypeParameterBounds.java @@ -2,12 +2,7 @@ package test; -import java.lang.annotation.*; - -@Target(ElementType.TYPE_USE) -@interface A { - String value() default ""; -} +import org.jetbrains.annotations.*; abstract class MethodTypeParameterBounds { interface I1 {} @@ -15,19 +10,19 @@ abstract class MethodTypeParameterBounds { interface I3 {} interface I4 {} - void f1(T x) { } - <_A, B extends @A Integer> void f2(_A x, B y) { } - <_A, B extends Object & @A I1> void f3(_A x, B y) { } - <_A extends @A B, B> void f4(_A x, B y) { } - <_A, B extends @A _A> void f5(_A x, B y) { } - <_A extends @A I1> void f6() { } - abstract <_A, B extends @A _A> void f7(_A x, B y); - abstract <_A extends @A I1, B, C, D extends @A E, E, F> void f8(_A x1, B x2, C x3, D x4, E x5, F x6); - <_A extends Object & I2<@A Integer> & @A I3> void f9(_A x) { } - <_A extends Object & I2 & @A I3> void f10(_A x) { } - <_A extends I4 & I2 & @A I3> void f11(_A x) { } - <_A extends I4 & I2 & @A I3> void f12(_A x) { } - <_A extends I4 & I2 & @A I3> void f13(_A x) { } - abstract <_A extends I4 & I2 & @A I3> void f14(_A x); - <_A extends Object, B extends I3<@A A> & @A I2> void f15(_A x) { } + void f1(T x) { } + <_A, B extends @NotNull Integer> void f2(_A x, B y) { } + <_A, B extends Object & @Nullable I1> void f3(_A x, B y) { } + <_A extends @NotNull B, B> void f4(_A x, B y) { } + <_A, B extends @Nullable _A> void f5(_A x, B y) { } + <_A extends @Nullable I1> void f6() { } + abstract <_A, B extends @NotNull _A> void f7(_A x, B y); + abstract <_A extends @Nullable I1, B, C, D extends @NotNull E, E, F> void f8(_A x1, B x2, C x3, D x4, E x5, F x6); + <_A extends Object & I2<@Nullable Integer> & @Nullable I3> void f9(_A x) { } + <_A extends Object & I2 & @Nullable I3> void f10(_A x) { } + <_A extends I4 & I2 & @Nullable I3> void f11(_A x) { } + <_A extends I4 & I2 & @NotNull I3> void f12(_A x) { } + <_A extends I4 & I2 & @Nullable I3> void f13(_A x) { } + abstract <_A extends I4 & I2 & @Nullable I3> void f14(_A x); + <_A extends Object, B extends I3<@Nullable _A> & @NotNull I2<_A>> void f15(_A x) { } } diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodTypeParameterBounds.javac.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodTypeParameterBounds.javac.txt new file mode 100644 index 00000000000..d27179d5a6a --- /dev/null +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodTypeParameterBounds.javac.txt @@ -0,0 +1,32 @@ +package test + +public/*package*/ abstract class MethodTypeParameterBounds { + public/*package*/ constructor MethodTypeParameterBounds() + public/*package*/ open fun f1(/*0*/ x: T): kotlin.Unit + public/*package*/ open fun f10(/*0*/ x: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!, _A : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I3? + public/*package*/ open fun ..@org.jetbrains.annotations.NotNull kotlin.Array)>!> f11(/*0*/ x: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!, _A : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I3..@org.jetbrains.annotations.NotNull kotlin.Array)>? + public/*package*/ open fun !> f12(/*0*/ x: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!, _A : @org.jetbrains.annotations.NotNull test.MethodTypeParameterBounds.I3 + public/*package*/ open fun ?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>!>!> f13(/*0*/ x: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?)>?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?)>?)>?)>!, _A : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I3?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>? + public/*package*/ abstract fun ..@org.jetbrains.annotations.NotNull kotlin.Array)>!> f14(/*0*/ x: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!>!>!, _A : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I3?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>? + public/*package*/ open fun !> f15(/*0*/ x: _A!): kotlin.Unit where B : @org.jetbrains.annotations.NotNull test.MethodTypeParameterBounds.I2<_A!> + public/*package*/ open fun f2(/*0*/ x: _A!, /*1*/ y: B): kotlin.Unit + public/*package*/ open fun f3(/*0*/ x: _A!, /*1*/ y: B): kotlin.Unit where B : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I1? + public/*package*/ open fun f4(/*0*/ x: _A, /*1*/ y: B!): kotlin.Unit + public/*package*/ open fun f5(/*0*/ x: _A!, /*1*/ y: B): kotlin.Unit + public/*package*/ open fun f6(): kotlin.Unit + public/*package*/ abstract fun f7(/*0*/ x: _A!, /*1*/ y: B): kotlin.Unit + public/*package*/ abstract fun f8(/*0*/ x1: _A, /*1*/ x2: B!, /*2*/ x3: C!, /*3*/ x4: D, /*4*/ x5: E!, /*5*/ x6: F!): kotlin.Unit + public/*package*/ open fun f9(/*0*/ x: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2<@org.jetbrains.annotations.Nullable kotlin.Int?>!, _A : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I3? + + public/*package*/ interface I1 { + } + + public/*package*/ interface I2 { + } + + public/*package*/ interface I3 { + } + + public/*package*/ interface I4 { + } +} diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodTypeParameterBounds.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodTypeParameterBounds.txt index 8189a35c39f..16767d0660a 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodTypeParameterBounds.txt +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodTypeParameterBounds.txt @@ -2,21 +2,21 @@ package test public/*package*/ abstract class MethodTypeParameterBounds { public/*package*/ constructor MethodTypeParameterBounds() - public/*package*/ open fun f1(/*0*/ x: T!): kotlin.Unit - public/*package*/ open fun f10(/*0*/ x: _A!): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!, _A : @test.A test.MethodTypeParameterBounds.I3! - public/*package*/ open fun ..@test.A kotlin.Array?)>!> f11(/*0*/ x: _A!): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2..@test.A kotlin.Array?)>!, _A : @test.A test.MethodTypeParameterBounds.I3..@test.A kotlin.Array?)>! - public/*package*/ open fun !> f12(/*0*/ x: _A!): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!, _A : @test.A test.MethodTypeParameterBounds.I3! - public/*package*/ open fun !>!>..@test.A kotlin.Array!>!>?)>!> f13(/*0*/ x: _A!): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2..@test.A kotlin.Array?)>!>!>!>!, _A : @test.A test.MethodTypeParameterBounds.I3!>..@test.A kotlin.Array!>?)>! - public/*package*/ abstract fun !>!> f14(/*0*/ x: _A!): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!>..@test.A kotlin.Array!>?)>!, _A : @test.A test.MethodTypeParameterBounds.I3..@test.A kotlin.Array?)>!>! - public/*package*/ open fun !> f15(/*0*/ x: _A!): kotlin.Unit where B : @test.A test.MethodTypeParameterBounds.I2! - public/*package*/ open fun f2(/*0*/ x: _A!, /*1*/ y: B!): kotlin.Unit - public/*package*/ open fun f3(/*0*/ x: _A!, /*1*/ y: B!): kotlin.Unit where B : @test.A test.MethodTypeParameterBounds.I1! - public/*package*/ open fun f4(/*0*/ x: _A!, /*1*/ y: B!): kotlin.Unit - public/*package*/ open fun f5(/*0*/ x: _A!, /*1*/ y: B!): kotlin.Unit - public/*package*/ open fun f6(): kotlin.Unit - public/*package*/ abstract fun f7(/*0*/ x: _A!, /*1*/ y: B!): kotlin.Unit - public/*package*/ abstract fun f8(/*0*/ x1: _A!, /*1*/ x2: B!, /*2*/ x3: C!, /*3*/ x4: D!, /*4*/ x5: E!, /*5*/ x6: F!): kotlin.Unit - public/*package*/ open fun f9(/*0*/ x: _A!): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2<@test.A kotlin.Int!>!, _A : @test.A test.MethodTypeParameterBounds.I3! + public/*package*/ open fun f1(/*0*/ x: T): kotlin.Unit + public/*package*/ open fun f10(/*0*/ x: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!, _A : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I3? + public/*package*/ open fun ..@org.jetbrains.annotations.NotNull kotlin.Array)>!> f11(/*0*/ x: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!, _A : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I3..@org.jetbrains.annotations.NotNull kotlin.Array)>? + public/*package*/ open fun !> f12(/*0*/ x: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!, _A : @org.jetbrains.annotations.NotNull test.MethodTypeParameterBounds.I3 + public/*package*/ open fun !>!>?..@org.jetbrains.annotations.Nullable kotlin.Array!>!>?)>!> f13(/*0*/ x: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>!>!>!, _A : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I3!>?..@org.jetbrains.annotations.Nullable kotlin.Array!>?)>? + public/*package*/ abstract fun !>!> f14(/*0*/ x: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!>?..@org.jetbrains.annotations.Nullable kotlin.Array!>?)>!, _A : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I3?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>? + public/*package*/ open fun !> f15(/*0*/ x: _A!): kotlin.Unit where B : @org.jetbrains.annotations.NotNull test.MethodTypeParameterBounds.I2<_A!> + public/*package*/ open fun f2(/*0*/ x: _A!, /*1*/ y: B): kotlin.Unit + public/*package*/ open fun f3(/*0*/ x: _A!, /*1*/ y: B): kotlin.Unit where B : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I1? + public/*package*/ open fun f4(/*0*/ x: _A, /*1*/ y: B!): kotlin.Unit + public/*package*/ open fun f5(/*0*/ x: _A!, /*1*/ y: B): kotlin.Unit + public/*package*/ open fun f6(): kotlin.Unit + public/*package*/ abstract fun f7(/*0*/ x: _A!, /*1*/ y: B): kotlin.Unit + public/*package*/ abstract fun f8(/*0*/ x1: _A, /*1*/ x2: B!, /*2*/ x3: C!, /*3*/ x4: D, /*4*/ x5: E!, /*5*/ x6: F!): kotlin.Unit + public/*package*/ open fun f9(/*0*/ x: _A): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2<@org.jetbrains.annotations.Nullable kotlin.Int?>!, _A : @org.jetbrains.annotations.Nullable test.MethodTypeParameterBounds.I3? public/*package*/ interface I1 { } diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ReturnType.java b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ReturnType.java index 5c223aef06f..bad8d817886 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ReturnType.java +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ReturnType.java @@ -1,11 +1,8 @@ +// JAVAC_EXPECTED_FILE + package test; -import java.lang.annotation.*; - -@Target(ElementType.TYPE_USE) -@interface A { - String value() default ""; -} +import org.jetbrains.annotations.*; interface G0 { } interface G1 { } @@ -13,83 +10,87 @@ interface G2 { } interface ReturnType { // simplpe type arguments - G1<@A G0> f0(); - G1>>> f1(); - G1<@A String> f2(); - G2<@A String, G2<@A("abc") Integer, G2<@A("abc") G2, @A("abc") Integer>>> f3(); + G1<@NotNull G0> f0(); + G1>>> f1(); + G1<@NotNull String> f2(); + G2<@NotNull String, G2<@NotNull Integer, G2<@NotNull G2, @NotNull Integer>>> f3(); // wildcards - G1 f4 = null; - G1>>> f5(); - G1 f6(); - G2, ? extends @A("abc") Integer>>> f7(); + G1 f4 = null; + G1>>> f5(); + G1 f6(); + G2, ? extends @NotNull Integer>>> f7(); - G1 f8(); - G1>>> f9(); - G1 f10 = null; - G2, ? super @A("abc") Integer>>> f11(); + G1 f8(); + G1>>> f9(); + G1 f10 = null; + G2, ? super @NotNull Integer>>> f11(); - G2, ? extends @A("abc") Integer>>> f12 = null; + G2, ? extends @NotNull Integer>>> f12 = null; // arrays - Integer @A [] f13(); - int @A [] f14(); - @A Integer [] f15(); - @A int [] f16(); - @A Integer @A [] f17(); - @A int @A [] f18 = null; + Integer @NotNull [] f13(); + int @NotNull [] f14(); + @NotNull Integer [] f15(); + @NotNull int [] f16(); + @NotNull int [] f161 = null; + @NotNull Integer @NotNull [] f17(); + @NotNull int @NotNull [] f18 = null; // multidementional arrays - Integer @A [] [] f19(); - int @A [] @A [] f20(); - @A Integer [] [] [] f21 = null; - @A int @A [] @A [] [] @A [] f22(); - @A Integer @A [] [] @A [] [] f23(); - @A int @A [] @A [] f24 = null; - int [] @A [] f25(); - Object [] @A [] f26(); - @A Object [] [] [] [] @A [] f27(); + Integer @NotNull [] [] f19(); + int @NotNull [] @NotNull [] f20(); + @NotNull Integer [] [] [] f21 = null; + @NotNull int @NotNull [] @NotNull [] [] @NotNull [] f22(); + @NotNull Integer @NotNull [] [] @NotNull [] [] f23(); + @NotNull int @NotNull [] @NotNull [] f24 = null; + int [] @NotNull [] f25(); + Object [] @NotNull [] f26(); + @NotNull Object [] [] [] [] @NotNull [] f27(); + @NotNull Object [] [] [] [] @NotNull [] f271 = null; // arrays in type arguments - G1 f28(); - G2 f29(); - G1<@A Integer []> f30(); - G1> f31(); - G1, G1<@A int @A []>>> f32(); - G1<@A int @A []> f33(); - G1 f34(); - G2 f35 = null; - G1<@A Integer @A [] []> f36(); - G1> f37(); - G1, G1<@A int [] [] @A []>>> f38(); - G1<@A int @A [] @A [] []> f39(); + G1 f28(); + G2 f29(); + G1<@NotNull Integer []> f30(); + G1> f31(); + G1, G1<@NotNull int @NotNull []>>> f32(); + G1<@NotNull int @NotNull []> f33(); + G1 f34(); + G2 f35 = null; + G1<@NotNull Integer @NotNull [] []> f36(); + G1> f37(); + G1, G1<@NotNull int [] [] @NotNull []>>> f38(); + G1<@NotNull int @NotNull [] @NotNull [] []> f39(); // arrays in wildcard bounds - G1 f40(); - G2 f41(); - G1 f42(); - G1> f43(); - G1, G1>> f44(); - G1, G1>> f45 = null; - G1 f46(); - G1 f47(); - G2 f48 = null; - G1 f49(); - G1> f50(); - G1, G1>> f51(); - G1, G1>> f52 = null; - G1 f53(); + G1 f40(); + G2 f41(); + G1 f42(); + G1> f43(); + G1, G1>> f44(); + G1, G1>> f45 = null; + G1 f46(); + G1 f47(); + G2 f48 = null; + G1 f49(); + G1> f50(); + G1, G1>> f51(); + G1, G1>> f52 = null; + G1 f53(); class ReturnType2 { - G1 f4 = null; - G1 f10 = null; - G2, ? extends @A("abc") Integer>>> f12 = null; - @A int @A [] f18 = null; - @A Integer [] [] [] f21 = null; - @A int @A [] @A [] f24 = null; - G2 f35 = null; - G1, G1>> f45 = null; - G2 f48 = null; - G1, G1>> f52 = null; + G1 f4 = null; + G1 f10 = null; + G2, ? extends @NotNull Integer>>> f12 = null; + @NotNull Integer [] f181 = null; + @NotNull Integer @NotNull [] f182 = null; + G1<@NotNull Integer> f183 = null; + @NotNull Integer [] [] [] f21 = null; + @NotNull int @NotNull [] @NotNull [] f24 = null; + G2 f35 = null; + G1, G1>> f45 = null; + G2 f48 = null; + G1, G1>> f52 = null; } } diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ReturnType.javac.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ReturnType.javac.txt new file mode 100644 index 00000000000..ebb07a32bc3 --- /dev/null +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ReturnType.javac.txt @@ -0,0 +1,87 @@ +package test + +public/*package*/ interface G0 { +} + +public/*package*/ interface G1 { +} + +public/*package*/ interface G2 { +} + +public/*package*/ interface ReturnType { + public abstract fun f0(): test.G1<@org.jetbrains.annotations.NotNull test.G0>! + public abstract fun f1(): test.G1!>!>!>! + public abstract fun f11(): test.G2, in @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + public abstract fun f13(): (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array) + public abstract fun f14(): kotlin.IntArray! + @org.jetbrains.annotations.NotNull public abstract fun f15(): (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array) + @org.jetbrains.annotations.NotNull public abstract fun f16(): kotlin.IntArray! + @org.jetbrains.annotations.NotNull public abstract fun f17(): (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array) + public abstract fun f19(): (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>) + public abstract fun f2(): test.G1<@org.jetbrains.annotations.NotNull kotlin.String>! + public abstract fun f20(): (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array) + @org.jetbrains.annotations.NotNull public abstract fun f22(): (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>) + @org.jetbrains.annotations.NotNull public abstract fun f23(): (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>) + public abstract fun f25(): kotlin.Array<(out) kotlin.IntArray!>! + public abstract fun f26(): kotlin.Array<(out) (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Any>..@org.jetbrains.annotations.NotNull kotlin.Array)>! + @org.jetbrains.annotations.NotNull public abstract fun f27(): (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Any>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>)>) + public abstract fun f28(): test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array)>! + public abstract fun f29(): test.G2! + public abstract fun f3(): test.G2<@org.jetbrains.annotations.NotNull kotlin.String, test.G2<@org.jetbrains.annotations.NotNull kotlin.Int, test.G2<@org.jetbrains.annotations.NotNull test.G2, @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + public abstract fun f30(): test.G1!>! + public abstract fun f31(): test.G1!>! + public abstract fun f32(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>! + public abstract fun f33(): test.G1! + public abstract fun f34(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>! + public abstract fun f36(): test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>! + public abstract fun f37(): test.G1!>!>!>! + public abstract fun f38(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>!>!>! + public abstract fun f39(): test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>! + public abstract fun f40(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>! + public abstract fun f41(): test.G2! + public abstract fun f42(): test.G1!>! + public abstract fun f43(): test.G1!>! + public abstract fun f44(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>! + public abstract fun f46(): test.G1! + public abstract fun f47(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>! + public abstract fun f49(): test.G1!>!>!>!>!>! + public abstract fun f5(): test.G1!>!>!>! + public abstract fun f50(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>! + public abstract fun f51(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>!, test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>!>!>! + public abstract fun f53(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>! + public abstract fun f6(): test.G1! + public abstract fun f7(): test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + public abstract fun f8(): test.G1! + public abstract fun f9(): test.G1!>!>!>! + + public open class ReturnType2 { + public constructor ReturnType2() + public/*package*/ final var f10: test.G1! + public/*package*/ final var f12: test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + @org.jetbrains.annotations.NotNull public/*package*/ final var f181: (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array) + @org.jetbrains.annotations.NotNull public/*package*/ final var f182: (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array) + public/*package*/ final var f183: test.G1<@org.jetbrains.annotations.NotNull kotlin.Int>! + @org.jetbrains.annotations.NotNull public/*package*/ final var f21: (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>) + @org.jetbrains.annotations.NotNull public/*package*/ final var f24: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array) + public/*package*/ final var f35: test.G2..@org.jetbrains.annotations.NotNull kotlin.Array)>! + public/*package*/ final var f4: test.G1! + public/*package*/ final var f45: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>! + public/*package*/ final var f48: test.G2!>!>! + public/*package*/ final var f52: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>!, test.G1!>!>!>! + } + + // Static members + public final val f10: test.G1! + public final val f12: test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + @org.jetbrains.annotations.NotNull public final val f161: kotlin.IntArray! + @org.jetbrains.annotations.NotNull public final val f18: kotlin.IntArray! + @org.jetbrains.annotations.NotNull public final val f21: (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>) + @org.jetbrains.annotations.NotNull public final val f24: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array) + @org.jetbrains.annotations.NotNull public final val f271: (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Any>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>)>) + public final val f35: test.G2..@org.jetbrains.annotations.NotNull kotlin.Array)>! + public final val f4: test.G1! + public final val f45: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>! + public final val f48: test.G2!>!>! + public final val f52: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>!, test.G1!>!>!>! +} diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ReturnType.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ReturnType.txt index 923b2caa9a1..8c42ff1aa7f 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ReturnType.txt +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ReturnType.txt @@ -1,74 +1,78 @@ package test public/*package*/ interface ReturnType { - public abstract fun f0(): test.G1<@test.A test.G0!>! - public abstract fun f1(): test.G1!>!>!>! - public abstract fun f11(): test.G2!, in @test.A(value = "abc") kotlin.Int!>!>!>! - public abstract fun f13(): (@test.A kotlin.Array..@test.A kotlin.Array?) - public abstract fun f14(): @test.A kotlin.IntArray! - @test.A public abstract fun f15(): kotlin.Array<(out) @test.A kotlin.Int!>! - @test.A public abstract fun f16(): kotlin.IntArray! - @test.A public abstract fun f17(): (@test.A kotlin.Array<@test.A kotlin.Int!>..@test.A kotlin.Array?) - public abstract fun f19(): kotlin.Array<(out) (@test.A kotlin.Array..@test.A kotlin.Array?)>! - public abstract fun f2(): test.G1<@test.A kotlin.String!>! - public abstract fun f20(): (@test.A kotlin.Array<@test.A kotlin.IntArray!>..@test.A kotlin.Array?) - @test.A public abstract fun f22(): (@test.A kotlin.Array..@test.A kotlin.Array?)>!>..@test.A kotlin.Array..@test.A kotlin.Array?)>!>?) - @test.A public abstract fun f23(): kotlin.Array<(out) (@test.A kotlin.Array..@test.A kotlin.Array?)>!>..@test.A kotlin.Array..@test.A kotlin.Array?)>!>?)>! - public abstract fun f25(): (@test.A kotlin.Array..@test.A kotlin.Array?) - public abstract fun f26(): (@test.A kotlin.Array!>..@test.A kotlin.Array!>?) - @test.A public abstract fun f27(): (@test.A kotlin.Array!>!>!>!>..@test.A kotlin.Array!>!>!>!>?) - public abstract fun f28(): test.G1<(@test.A kotlin.Array..@test.A kotlin.Array?)>! - public abstract fun f29(): test.G2! - public abstract fun f3(): test.G2<@test.A kotlin.String!, test.G2<@test.A(value = "abc") kotlin.Int!, test.G2<@test.A(value = "abc") test.G2!, @test.A(value = "abc") kotlin.Int!>!>!>! - public abstract fun f30(): test.G1!>! + public abstract fun f0(): test.G1<@org.jetbrains.annotations.NotNull test.G0>! + public abstract fun f1(): test.G1!>!>!>! + public abstract fun f11(): test.G2, in @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + public abstract fun f13(): (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array) + public abstract fun f14(): kotlin.IntArray! + @org.jetbrains.annotations.NotNull public abstract fun f15(): kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.Int>! + @org.jetbrains.annotations.NotNull public abstract fun f16(): kotlin.IntArray! + @org.jetbrains.annotations.NotNull public abstract fun f17(): (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array) + public abstract fun f19(): kotlin.Array<(out) (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>! + public abstract fun f2(): test.G1<@org.jetbrains.annotations.NotNull kotlin.String>! + public abstract fun f20(): (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array) + @org.jetbrains.annotations.NotNull public abstract fun f22(): (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!>) + @org.jetbrains.annotations.NotNull public abstract fun f23(): kotlin.Array<(out) (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!>)>! + public abstract fun f25(): (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array) + public abstract fun f26(): (@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>) + @org.jetbrains.annotations.NotNull public abstract fun f27(): (@org.jetbrains.annotations.NotNull kotlin.Array!>!>!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>!>!>) + public abstract fun f28(): test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>! + public abstract fun f29(): test.G2! + public abstract fun f3(): test.G2<@org.jetbrains.annotations.NotNull kotlin.String, test.G2<@org.jetbrains.annotations.NotNull kotlin.Int, test.G2<@org.jetbrains.annotations.NotNull test.G2, @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + public abstract fun f30(): test.G1!>! public abstract fun f31(): test.G1!>! - public abstract fun f32(): test.G1..@test.A kotlin.Array?)>!, test.G1<@test.A kotlin.IntArray!>!>!>! - public abstract fun f33(): test.G1<@test.A kotlin.IntArray!>! - public abstract fun f34(): test.G1<(@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>! - public abstract fun f36(): test.G1..@test.A kotlin.Array?)>!>! + public abstract fun f32(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>! + public abstract fun f33(): test.G1! + public abstract fun f34(): test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>! + public abstract fun f36(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>! public abstract fun f37(): test.G1!>!>!>! - public abstract fun f38(): test.G1..@test.A kotlin.Array?)>!, test.G1<(@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>!>!>! - public abstract fun f39(): test.G1..@test.A kotlin.Array?)>!>! - public abstract fun f40(): test.G1..@test.A kotlin.Array?)>! - public abstract fun f41(): test.G2! - public abstract fun f42(): test.G1!>! + public abstract fun f38(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>!>!>! + public abstract fun f39(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>! + public abstract fun f40(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>! + public abstract fun f41(): test.G2! + public abstract fun f42(): test.G1!>! public abstract fun f43(): test.G1!>! - public abstract fun f44(): test.G1..@test.A kotlin.Array?)>!, test.G1!>!>! - public abstract fun f46(): test.G1! - public abstract fun f47(): test.G1!>..@test.A kotlin.Array!>?)>! - public abstract fun f49(): test.G1!>!>!>!>!>! - public abstract fun f5(): test.G1!>!>!>! - public abstract fun f50(): test.G1!>!>! - public abstract fun f51(): test.G1!>!>..@test.A kotlin.Array!>!>?)>!, test.G1..@test.A kotlin.Array?)>..@test.A kotlin.Array..@test.A kotlin.Array?)>?)>!>!>! - public abstract fun f53(): test.G1!>! - public abstract fun f6(): test.G1! - public abstract fun f7(): test.G2!, out @test.A(value = "abc") kotlin.Int!>!>!>! - public abstract fun f8(): test.G1! - public abstract fun f9(): test.G1!>!>!>! + public abstract fun f44(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>! + public abstract fun f46(): test.G1! + public abstract fun f47(): test.G1!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>! + public abstract fun f49(): test.G1!>!>!>!>!>! + public abstract fun f5(): test.G1!>!>!>! + public abstract fun f50(): test.G1!>!>! + public abstract fun f51(): test.G1!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>)>!, test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>!>!>! + public abstract fun f53(): test.G1!>! + public abstract fun f6(): test.G1! + public abstract fun f7(): test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + public abstract fun f8(): test.G1! + public abstract fun f9(): test.G1!>!>!>! public open class ReturnType2 { public constructor ReturnType2() - public/*package*/ final var f10: test.G1! - public/*package*/ final var f12: test.G2!, out @test.A(value = "abc") kotlin.Int!>!>!>! - @test.A public/*package*/ final var f18: @test.A kotlin.IntArray! - @test.A public/*package*/ final var f21: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) @test.A kotlin.Int!>!>!>! - @test.A public/*package*/ final var f24: (@test.A kotlin.Array<@test.A kotlin.IntArray!>..@test.A kotlin.Array?) - public/*package*/ final var f35: test.G2!>! - public/*package*/ final var f4: test.G1! - public/*package*/ final var f45: test.G1..@test.A kotlin.Array?)>!, test.G1!>!>! - public/*package*/ final var f48: test.G2!>..@test.A kotlin.Array!>?)>! - public/*package*/ final var f52: test.G1..@test.A kotlin.Array?)>!>!>!, test.G1..@test.A kotlin.Array?)>!>!>! + public/*package*/ final var f10: test.G1! + public/*package*/ final var f12: test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + @org.jetbrains.annotations.NotNull public/*package*/ final var f181: kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.Int>! + @org.jetbrains.annotations.NotNull public/*package*/ final var f182: (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array) + public/*package*/ final var f183: test.G1<@org.jetbrains.annotations.NotNull kotlin.Int>! + @org.jetbrains.annotations.NotNull public/*package*/ final var f21: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + @org.jetbrains.annotations.NotNull public/*package*/ final var f24: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array) + public/*package*/ final var f35: test.G2!>! + public/*package*/ final var f4: test.G1! + public/*package*/ final var f45: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>! + public/*package*/ final var f48: test.G2!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>! + public/*package*/ final var f52: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>!, test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>! } // Static members - public final val f10: test.G1! - public final val f12: test.G2!, out @test.A(value = "abc") kotlin.Int!>!>!>! - @test.A public final val f18: @test.A kotlin.IntArray! - @test.A public final val f21: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) @test.A kotlin.Int!>!>!>! - @test.A public final val f24: (@test.A kotlin.Array<@test.A kotlin.IntArray!>..@test.A kotlin.Array?) - public final val f35: test.G2!>! - public final val f4: test.G1! - public final val f45: test.G1..@test.A kotlin.Array?)>!, test.G1!>!>! - public final val f48: test.G2!>..@test.A kotlin.Array!>?)>! - public final val f52: test.G1..@test.A kotlin.Array?)>!>!>!, test.G1..@test.A kotlin.Array?)>!>!>! + public final val f10: test.G1! + public final val f12: test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + @org.jetbrains.annotations.NotNull public final val f161: kotlin.IntArray! + @org.jetbrains.annotations.NotNull public final val f18: kotlin.IntArray! + @org.jetbrains.annotations.NotNull public final val f21: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.Int>!>!>! + @org.jetbrains.annotations.NotNull public final val f24: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array) + @org.jetbrains.annotations.NotNull public final val f271: (@org.jetbrains.annotations.NotNull kotlin.Array!>!>!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>!>!>) + public final val f35: test.G2!>! + public final val f4: test.G1! + public final val f45: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>! + public final val f48: test.G2!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>! + public final val f52: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>!, test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>! } diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ValueArguments.java b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ValueArguments.java index 8d54ff5550d..bcf47a05bc3 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ValueArguments.java +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ValueArguments.java @@ -1,11 +1,8 @@ +// JAVAC_EXPECTED_FILE + package test; -import java.lang.annotation.*; - -@Target(ElementType.TYPE_USE) -@interface A { - String value() default ""; -} +import org.jetbrains.annotations.*; interface G0 { } interface G1 { } @@ -13,104 +10,104 @@ interface G2 { } interface ValueArguments { // simplpe type arguments - void f0(G1<@A G0> p); - void f1(G1>>> p); - void f2(G1<@A String> p); - void f3(G2<@A String, G2<@A("abc") Integer, G2<@A("abc") G2, @A("abc") Integer>>> p); + void f0(G1<@NotNull G0> p); + void f1(G1>>> p); + void f2(G1<@NotNull String> p); + void f3(G2<@NotNull String, G2<@NotNull Integer, G2<@NotNull G2, @NotNull Integer>>> p); // wildcards - void f4(G1 p); - void f5(G1>>> p); - void f6(G1 p1, G1>>> p2); - void f7(G2, ? extends @A("abc") Integer>>> p); + void f4(G1 p); + void f5(G1>>> p); + void f6(G1 p1, G1>>> p2); + void f7(G2, ? extends @NotNull Integer>>> p); - void f8(G1 p); - void f9(G1>>> p); - void f10(G1 p); - void f11(G2, ? super @A("abc") Integer>>> p); + void f8(G1 p); + void f9(G1>>> p); + void f10(G1 p); + void f11(G2, ? super @NotNull Integer>>> p); - void f12(G2, ? extends @A("abc") Integer>>> p); + void f12(G2, ? extends @NotNull Integer>>> p); // arrays - void f13(Integer @A [] p); - void f14(int @A [] p); - void f15(@A Integer [] p); - void f16(@A int [] p); - void f17(@A Integer @A [] p); - void f18(@A int @A [] p1, Integer @A [] p2, @A int [] p3); + void f13(Integer @NotNull [] p); + void f14(int @NotNull [] p); + void f15(@NotNull Integer [] p); + void f16(@Nullable int [] p); + void f17(@Nullable Integer @Nullable [] p); + void f18(@Nullable int @Nullable [] p1, Integer @Nullable [] p2, @Nullable int [] p3); // multidementional arrays - void f19(Integer @A [] [] p); - void f20(int @A [] @A [] p); - void f21(@A Integer [] [] [] p); - void f22(@A int @A [] @A [] [] @A [] p); - void f23(@A Integer @A [] [] @A [] [] p); - void f24(@A int @A [] @A [] p); - void f25(int [] @A [] p); - void f26(Object [] @A [] p1, int [] @A [] p2, @A int @A [] @A [] [] @A [] p3); - void f27(@A Object [] [] [] [] @A [] p); + void f19(Integer @NotNull [] [] p); + void f20(int @NotNull [] @NotNull [] p); + void f21(@NotNull Integer [] [] [] p); + void f22(@NotNull int @NotNull [] @NotNull [] [] @NotNull [] p); + void f23(@NotNull Integer @NotNull [] [] @NotNull [] [] p); + void f24(@NotNull int @NotNull [] @NotNull [] p); + void f25(int [] @Nullable [] p); + void f26(Object [] @Nullable [] p1, int [] @Nullable [] p2, @Nullable int @Nullable [] @Nullable [] [] @Nullable [] p3); + void f27(@Nullable Object [] [] [] [] @Nullable [] p); // arrays in type arguments - void f28(G1 p); - void f29(G2 p); - void f30(G1<@A Integer []> p); - void f31(G1> p); - void f32(G1, G1<@A int @A []>>> p); - void f33(G1<@A int @A []> p); - void f34(G1 p); - void f35(G2 p1, G1<@A Integer @A [] []> p2, G1> p3); - void f36(G1<@A Integer @A [] []> p); - void f37(G1> p); - void f38(G1, G1<@A int [] [] @A []>>> p); - void f39(G1<@A int @A [] @A [] []> p); + void f28(G1 p); + void f29(G2 p); + void f30(G1<@Nullable Integer []> p); + void f31(G1> p); + void f32(G1, G1<@NotNull int @NotNull []>>> p); + void f33(G1<@NotNull int @NotNull []> p); + void f34(G1 p); + void f35(G2 p1, G1<@NotNull Integer @NotNull [] []> p2, G1> p3); + void f36(G1<@NotNull Integer @NotNull [] []> p); + void f37(G1> p); + void f38(G1, G1<@NotNull int [] [] @NotNull []>>> p); + void f39(G1<@NotNull int @NotNull [] @NotNull [] []> p); // arrays in wildcard bounds - void f40(G1 p); - void f41(G2 p); - void f42(G1 p); - void f43(G1> p); - void f44(G1, G1>> p); - void f45(G1, G1>> p); - void f46(G1 p); - void f47(G1 p); - void f48(G2 p); - void f49(G1 p1, G1> p2, G2 p3); - void f50(G1> p); - void f51(G1, G1>> p); - void f52(G1, G1>> p); - void f53(G1 p); + void f40(G1 p); + void f41(G2 p); + void f42(G1 p); + void f43(G1> p); + void f44(G1, G1>> p); + void f45(G1, G1>> p); + void f46(G1 p); + void f47(G1 p); + void f48(G2 p); + void f49(G1 p1, G1> p2, G2 p3); + void f50(G1> p); + void f51(G1, G1>> p); + void f52(G1, G1>> p); + void f53(G1 p); - void f54(G1, G1>> p1, G1<@A int @A [] @A [] []> p2, @A Object [] [] [] [] @A [] p3, @A int @A [] p4, G2, ? extends @A("abc") Integer>>> p5); + void f54(G1, G1>> p1, G1<@NotNull int @NotNull [] @NotNull [] []> p2, @NotNull Object [] [] [] [] @NotNull [] p3, @NotNull int @NotNull [] p4, G2, ? extends @NotNull Integer>>> p5); // varargs - void f55(@A String ... x); - void f56(String @A ... x); - void f57(@A String @A ... x); - void f58(@A int ... x); - void f59(int @A ... x); - void f60(@A int @A ... x); + void f55(@NotNull String ... x); + void f56(String @NotNull ... x); + void f57(@NotNull String @NotNull ... x); + void f58(@NotNull int ... x); + void f59(int @NotNull ... x); + void f60(@NotNull int @Nullable ... x); // varargs + arrays - void f61(@A String [] ... x); - void f62(String @A [] ... x); - void f63(String [] @A ... x); - void f64(@A String @A [] @A ... x); - void f65(@A int [] ... x); - void f66(int @A [] ... x); - void f67(int [] @A ... x); - void f68(@A int @A [] @A ... x); + void f61(@Nullable String [] ... x); + void f62(String @Nullable [] ... x); + void f63(String [] @Nullable ... x); + void f64(@NotNull String @NotNull [] @NotNull ... x); + void f65(@NotNull int [] ... x); + void f66(int @NotNull [] ... x); + void f67(int [] @NotNull ... x); + void f68(@NotNull int @NotNull [] @NotNull ... x); - void f69(@A String [] [] ... x); - void f70(String [] @A [] ... x); - void f71(String [] [] [] @A ... x); - void f72(@A String @A [] [] @A [] @A ... x); - void f73(@A int [] @A [] ... x); - void f74(int @A [][][] @A [] ... x); - void f75(int [] [] [] @A ... x); - void f76(@A int @A [] [] @A ... x); + void f69(@NotNull String [] [] ... x); + void f70(String [] @Nullable [] ... x); + void f71(String [] [] [] @Nullable ... x); + void f72(@Nullable String @Nullable [] [] @NotNull [] @NotNull ... x); + void f73(@NotNull int [] @NotNull [] ... x); + void f74(int @NotNull [][][] @NotNull [] ... x); + void f75(int [] [] [] @NotNull ... x); + void f76(@NotNull int @NotNull [] [] @NotNull ... x); class Test { - public Test(G2, ? extends @A("abc") Integer>>> p1, Object [] @A [] p2, int [] @A [] p3, @A int @A [] @A [] [] @A [] p4, @A int @A [] [] @A ... p5) { + public Test(G2, ? extends @NotNull Integer>>> p1, Object [] @NotNull [] p2, int [] @NotNull [] p3, @NotNull int @NotNull [] @NotNull [] [] @NotNull [] p4, @NotNull int @NotNull [] [] @NotNull ... p5) { } } diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ValueArguments.javac.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ValueArguments.javac.txt new file mode 100644 index 00000000000..c4187fbb8fc --- /dev/null +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ValueArguments.javac.txt @@ -0,0 +1,94 @@ +package test + +public/*package*/ interface G0 { +} + +public/*package*/ interface G1 { +} + +public/*package*/ interface G2 { +} + +public/*package*/ interface ValueArguments { + public abstract fun f0(/*0*/ p: test.G1<@org.jetbrains.annotations.NotNull test.G0>!): kotlin.Unit + public abstract fun f1(/*0*/ p: test.G1!>!>!>!): kotlin.Unit + public abstract fun f10(/*0*/ p: test.G1!): kotlin.Unit + public abstract fun f11(/*0*/ p: test.G2?, in @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f12(/*0*/ p: test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f13(/*0*/ p: (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array)): kotlin.Unit + public abstract fun f14(/*0*/ p: kotlin.IntArray!): kotlin.Unit + public abstract fun f15(/*0*/ @org.jetbrains.annotations.NotNull p: (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array)): kotlin.Unit + public abstract fun f16(/*0*/ @org.jetbrains.annotations.Nullable p: kotlin.IntArray!): kotlin.Unit + public abstract fun f17(/*0*/ @org.jetbrains.annotations.Nullable p: (@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.Int?>?..@org.jetbrains.annotations.Nullable kotlin.Array?)): kotlin.Unit + public abstract fun f18(/*0*/ @org.jetbrains.annotations.Nullable p1: kotlin.IntArray!, /*1*/ p2: (@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.Int?>?..@org.jetbrains.annotations.Nullable kotlin.Array?), /*2*/ @org.jetbrains.annotations.Nullable p3: kotlin.IntArray!): kotlin.Unit + public abstract fun f19(/*0*/ p: (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)): kotlin.Unit + public abstract fun f2(/*0*/ p: test.G1<@org.jetbrains.annotations.NotNull kotlin.String>!): kotlin.Unit + public abstract fun f20(/*0*/ p: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)): kotlin.Unit + public abstract fun f21(/*0*/ @org.jetbrains.annotations.NotNull p: (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)): kotlin.Unit + public abstract fun f22(/*0*/ @org.jetbrains.annotations.NotNull p: (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)): kotlin.Unit + public abstract fun f23(/*0*/ @org.jetbrains.annotations.NotNull p: (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>)): kotlin.Unit + public abstract fun f24(/*0*/ @org.jetbrains.annotations.NotNull p: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)): kotlin.Unit + public abstract fun f25(/*0*/ p: kotlin.Array<(out) kotlin.IntArray!>!): kotlin.Unit + public abstract fun f26(/*0*/ p1: kotlin.Array<(out) (@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.Any?>?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!, /*1*/ p2: kotlin.Array<(out) kotlin.IntArray!>!, /*2*/ @org.jetbrains.annotations.Nullable p3: (@org.jetbrains.annotations.Nullable kotlin.Array<(@org.jetbrains.annotations.Nullable kotlin.Array<(@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?)>?)): kotlin.Unit + public abstract fun f27(/*0*/ @org.jetbrains.annotations.Nullable p: (@org.jetbrains.annotations.Nullable kotlin.Array<(@org.jetbrains.annotations.Nullable kotlin.Array<(@org.jetbrains.annotations.Nullable kotlin.Array<(@org.jetbrains.annotations.Nullable kotlin.Array<(@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.Any?>?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?)>?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?)>?)>?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?)>?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?)>?)>?)>?)): kotlin.Unit + public abstract fun f28(/*0*/ p: test.G1<(@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.Int?>?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!): kotlin.Unit + public abstract fun f29(/*0*/ p: test.G2!): kotlin.Unit + public abstract fun f3(/*0*/ p: test.G2<@org.jetbrains.annotations.NotNull kotlin.String, test.G2<@org.jetbrains.annotations.NotNull kotlin.Int, test.G2<@org.jetbrains.annotations.NotNull test.G2, @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f30(/*0*/ p: test.G1!>!): kotlin.Unit + public abstract fun f31(/*0*/ p: test.G1!>!): kotlin.Unit + public abstract fun f32(/*0*/ p: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>!): kotlin.Unit + public abstract fun f33(/*0*/ p: test.G1!): kotlin.Unit + public abstract fun f34(/*0*/ p: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!): kotlin.Unit + public abstract fun f35(/*0*/ p1: test.G2..@org.jetbrains.annotations.NotNull kotlin.Array)>!, /*1*/ p2: test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>!, /*2*/ p3: test.G1!>!): kotlin.Unit + public abstract fun f36(/*0*/ p: test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Int>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>!): kotlin.Unit + public abstract fun f37(/*0*/ p: test.G1!>!>!>!): kotlin.Unit + public abstract fun f38(/*0*/ p: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>!>!>!): kotlin.Unit + public abstract fun f39(/*0*/ p: test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>!): kotlin.Unit + public abstract fun f4(/*0*/ p: test.G1!): kotlin.Unit + public abstract fun f40(/*0*/ p: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!): kotlin.Unit + public abstract fun f41(/*0*/ p: test.G2!): kotlin.Unit + public abstract fun f42(/*0*/ p: test.G1!>!): kotlin.Unit + public abstract fun f43(/*0*/ p: test.G1!>!): kotlin.Unit + public abstract fun f44(/*0*/ p: test.G1?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!, test.G1!>!>!): kotlin.Unit + public abstract fun f45(/*0*/ p: test.G1?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!, test.G1!>!>!): kotlin.Unit + public abstract fun f46(/*0*/ p: test.G1!): kotlin.Unit + public abstract fun f47(/*0*/ p: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!): kotlin.Unit + public abstract fun f48(/*0*/ p: test.G2!>!>!): kotlin.Unit + public abstract fun f49(/*0*/ p1: test.G1!>!>!>!>!>!, /*1*/ p2: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!, /*2*/ p3: test.G2!>!>!): kotlin.Unit + public abstract fun f5(/*0*/ p: test.G1!>!>!>!): kotlin.Unit + public abstract fun f50(/*0*/ p: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!): kotlin.Unit + public abstract fun f51(/*0*/ p: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>!, test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>!>!>!): kotlin.Unit + public abstract fun f52(/*0*/ p: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>!, test.G1!>!>!>!): kotlin.Unit + public abstract fun f53(/*0*/ p: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!): kotlin.Unit + public abstract fun f54(/*0*/ p1: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>!, test.G1!>!>!>!, /*1*/ p2: test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>!, /*2*/ @org.jetbrains.annotations.NotNull p3: (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Any>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>)>), /*3*/ @org.jetbrains.annotations.NotNull p4: kotlin.IntArray!, /*4*/ p5: test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f55(/*0*/ @org.jetbrains.annotations.NotNull vararg x: @org.jetbrains.annotations.NotNull kotlin.String /*(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.String>..@org.jetbrains.annotations.NotNull kotlin.Array)*/): kotlin.Unit + public abstract fun f56(/*0*/ vararg x: @org.jetbrains.annotations.NotNull kotlin.String /*(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.String>..@org.jetbrains.annotations.NotNull kotlin.Array)*/): kotlin.Unit + public abstract fun f57(/*0*/ @org.jetbrains.annotations.NotNull vararg x: @org.jetbrains.annotations.NotNull kotlin.String /*(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.String>..@org.jetbrains.annotations.NotNull kotlin.Array)*/): kotlin.Unit + public abstract fun f58(/*0*/ @org.jetbrains.annotations.NotNull vararg x: kotlin.Int /*kotlin.IntArray!*/): kotlin.Unit + public abstract fun f59(/*0*/ vararg x: kotlin.Int /*kotlin.IntArray!*/): kotlin.Unit + public abstract fun f6(/*0*/ p1: test.G1!, /*1*/ p2: test.G1!>!>!>!): kotlin.Unit + public abstract fun f60(/*0*/ @org.jetbrains.annotations.NotNull vararg x: kotlin.Int /*kotlin.IntArray!*/): kotlin.Unit + public abstract fun f61(/*0*/ @org.jetbrains.annotations.Nullable vararg x: (@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.String?>?..@org.jetbrains.annotations.Nullable kotlin.Array?) /*(@org.jetbrains.annotations.Nullable kotlin.Array<(@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.String?>?..@org.jetbrains.annotations.Nullable kotlin.Array?)>..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?)*/): kotlin.Unit + public abstract fun f62(/*0*/ vararg x: (@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.String?>?..@org.jetbrains.annotations.Nullable kotlin.Array?) /*(@org.jetbrains.annotations.Nullable kotlin.Array<(@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.String?>?..@org.jetbrains.annotations.Nullable kotlin.Array?)>..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?)*/): kotlin.Unit + public abstract fun f63(/*0*/ vararg x: (@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.String?>?..@org.jetbrains.annotations.Nullable kotlin.Array?) /*kotlin.Array<(out) (@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.String?>?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!*/): kotlin.Unit + public abstract fun f64(/*0*/ @org.jetbrains.annotations.NotNull vararg x: (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.String>..@org.jetbrains.annotations.NotNull kotlin.Array) /*(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.String>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)*/): kotlin.Unit + public abstract fun f65(/*0*/ @org.jetbrains.annotations.NotNull vararg x: kotlin.IntArray! /*(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)*/): kotlin.Unit + public abstract fun f66(/*0*/ vararg x: kotlin.IntArray! /*(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)*/): kotlin.Unit + public abstract fun f67(/*0*/ vararg x: kotlin.IntArray! /*kotlin.Array<(out) kotlin.IntArray!>!*/): kotlin.Unit + public abstract fun f68(/*0*/ @org.jetbrains.annotations.NotNull vararg x: kotlin.IntArray! /*(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)*/): kotlin.Unit + public abstract fun f69(/*0*/ @org.jetbrains.annotations.NotNull vararg x: (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.String>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>) /*(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.String>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)*/): kotlin.Unit + public abstract fun f7(/*0*/ p: test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f70(/*0*/ vararg x: (@org.jetbrains.annotations.Nullable kotlin.Array<(@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.String?>?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?) /*kotlin.Array<(out) (@org.jetbrains.annotations.Nullable kotlin.Array<(@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.String?>?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>?)>!*/): kotlin.Unit + public abstract fun f71(/*0*/ vararg x: kotlin.Array<(out) kotlin.Array<(out) (@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.String?>?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>! /*kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) (@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.String?>?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>!>!*/): kotlin.Unit + public abstract fun f72(/*0*/ @org.jetbrains.annotations.Nullable vararg x: (@org.jetbrains.annotations.Nullable kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.String>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>?..@org.jetbrains.annotations.Nullable kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>?) /*(@org.jetbrains.annotations.Nullable kotlin.Array<(@org.jetbrains.annotations.Nullable kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.String>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>?..@org.jetbrains.annotations.Nullable kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>?)>..@org.jetbrains.annotations.Nullable kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>?..@org.jetbrains.annotations.Nullable kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>?)>?)*/): kotlin.Unit + public abstract fun f73(/*0*/ @org.jetbrains.annotations.NotNull vararg x: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array) /*(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)*/): kotlin.Unit + public abstract fun f74(/*0*/ vararg x: (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>) /*(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>)>)*/): kotlin.Unit + public abstract fun f75(/*0*/ vararg x: kotlin.Array<(out) kotlin.Array<(out) kotlin.IntArray!>!>! /*kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) kotlin.IntArray!>!>!>!*/): kotlin.Unit + public abstract fun f76(/*0*/ @org.jetbrains.annotations.NotNull vararg x: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array) /*(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)*/): kotlin.Unit + public abstract fun f8(/*0*/ p: test.G1!): kotlin.Unit + public abstract fun f9(/*0*/ p: test.G1!>!>!>!): kotlin.Unit + + public open class Test { + public constructor Test(/*0*/ p1: test.G2?, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!, /*1*/ p2: kotlin.Array<(out) (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.Any>..@org.jetbrains.annotations.NotNull kotlin.Array)>!, /*2*/ p3: kotlin.Array<(out) kotlin.IntArray!>!, /*3*/ @org.jetbrains.annotations.NotNull p4: (@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>), /*4*/ @org.jetbrains.annotations.NotNull vararg p5: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array) /*(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)*/) + } +} diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ValueArguments.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ValueArguments.txt index 96ff61a326e..0563725504b 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ValueArguments.txt +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ValueArguments.txt @@ -1,85 +1,85 @@ package test public/*package*/ interface ValueArguments { - public abstract fun f0(/*0*/ p: test.G1<@test.A test.G0!>!): kotlin.Unit - public abstract fun f1(/*0*/ p: test.G1!>!>!>!): kotlin.Unit - public abstract fun f10(/*0*/ p: test.G1!): kotlin.Unit - public abstract fun f11(/*0*/ p: test.G2!, in @test.A(value = "abc") kotlin.Int!>!>!>!): kotlin.Unit - public abstract fun f12(/*0*/ p: test.G2!, out @test.A(value = "abc") kotlin.Int!>!>!>!): kotlin.Unit - public abstract fun f13(/*0*/ p: (@test.A kotlin.Array..@test.A kotlin.Array?)): kotlin.Unit - public abstract fun f14(/*0*/ p: @test.A kotlin.IntArray!): kotlin.Unit - public abstract fun f15(/*0*/ @test.A p: kotlin.Array<(out) @test.A kotlin.Int!>!): kotlin.Unit - public abstract fun f16(/*0*/ @test.A p: kotlin.IntArray!): kotlin.Unit - public abstract fun f17(/*0*/ @test.A p: (@test.A kotlin.Array<@test.A kotlin.Int!>..@test.A kotlin.Array?)): kotlin.Unit - public abstract fun f18(/*0*/ @test.A p1: @test.A kotlin.IntArray!, /*1*/ p2: (@test.A kotlin.Array..@test.A kotlin.Array?), /*2*/ @test.A p3: kotlin.IntArray!): kotlin.Unit - public abstract fun f19(/*0*/ p: kotlin.Array<(out) (@test.A kotlin.Array..@test.A kotlin.Array?)>!): kotlin.Unit - public abstract fun f2(/*0*/ p: test.G1<@test.A kotlin.String!>!): kotlin.Unit - public abstract fun f20(/*0*/ p: (@test.A kotlin.Array<@test.A kotlin.IntArray!>..@test.A kotlin.Array?)): kotlin.Unit - public abstract fun f21(/*0*/ @test.A p: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) @test.A kotlin.Int!>!>!>!): kotlin.Unit - public abstract fun f22(/*0*/ @test.A p: (@test.A kotlin.Array..@test.A kotlin.Array?)>!>..@test.A kotlin.Array..@test.A kotlin.Array?)>!>?)): kotlin.Unit - public abstract fun f23(/*0*/ @test.A p: kotlin.Array<(out) (@test.A kotlin.Array..@test.A kotlin.Array?)>!>..@test.A kotlin.Array..@test.A kotlin.Array?)>!>?)>!): kotlin.Unit - public abstract fun f24(/*0*/ @test.A p: (@test.A kotlin.Array<@test.A kotlin.IntArray!>..@test.A kotlin.Array?)): kotlin.Unit - public abstract fun f25(/*0*/ p: (@test.A kotlin.Array..@test.A kotlin.Array?)): kotlin.Unit - public abstract fun f26(/*0*/ p1: (@test.A kotlin.Array!>..@test.A kotlin.Array!>?), /*1*/ p2: (@test.A kotlin.Array..@test.A kotlin.Array?), /*2*/ @test.A p3: (@test.A kotlin.Array..@test.A kotlin.Array?)>!>..@test.A kotlin.Array..@test.A kotlin.Array?)>!>?)): kotlin.Unit - public abstract fun f27(/*0*/ @test.A p: (@test.A kotlin.Array!>!>!>!>..@test.A kotlin.Array!>!>!>!>?)): kotlin.Unit - public abstract fun f28(/*0*/ p: test.G1<(@test.A kotlin.Array..@test.A kotlin.Array?)>!): kotlin.Unit - public abstract fun f29(/*0*/ p: test.G2!): kotlin.Unit - public abstract fun f3(/*0*/ p: test.G2<@test.A kotlin.String!, test.G2<@test.A(value = "abc") kotlin.Int!, test.G2<@test.A(value = "abc") test.G2!, @test.A(value = "abc") kotlin.Int!>!>!>!): kotlin.Unit - public abstract fun f30(/*0*/ p: test.G1!>!): kotlin.Unit + public abstract fun f0(/*0*/ p: test.G1<@org.jetbrains.annotations.NotNull test.G0>!): kotlin.Unit + public abstract fun f1(/*0*/ p: test.G1!>!>!>!): kotlin.Unit + public abstract fun f10(/*0*/ p: test.G1!): kotlin.Unit + public abstract fun f11(/*0*/ p: test.G2?, in @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f12(/*0*/ p: test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f13(/*0*/ p: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)): kotlin.Unit + public abstract fun f14(/*0*/ p: kotlin.IntArray!): kotlin.Unit + public abstract fun f15(/*0*/ @org.jetbrains.annotations.NotNull p: kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.Int>!): kotlin.Unit + public abstract fun f16(/*0*/ @org.jetbrains.annotations.Nullable p: kotlin.IntArray!): kotlin.Unit + public abstract fun f17(/*0*/ @org.jetbrains.annotations.Nullable p: (@org.jetbrains.annotations.Nullable kotlin.Array<@org.jetbrains.annotations.Nullable kotlin.Int?>?..@org.jetbrains.annotations.Nullable kotlin.Array?)): kotlin.Unit + public abstract fun f18(/*0*/ @org.jetbrains.annotations.Nullable p1: kotlin.IntArray!, /*1*/ p2: (@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?), /*2*/ @org.jetbrains.annotations.Nullable p3: kotlin.IntArray!): kotlin.Unit + public abstract fun f19(/*0*/ p: kotlin.Array<(out) (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!): kotlin.Unit + public abstract fun f2(/*0*/ p: test.G1<@org.jetbrains.annotations.NotNull kotlin.String>!): kotlin.Unit + public abstract fun f20(/*0*/ p: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)): kotlin.Unit + public abstract fun f21(/*0*/ @org.jetbrains.annotations.NotNull p: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f22(/*0*/ @org.jetbrains.annotations.NotNull p: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!>)): kotlin.Unit + public abstract fun f23(/*0*/ @org.jetbrains.annotations.NotNull p: kotlin.Array<(out) (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!>)>!): kotlin.Unit + public abstract fun f24(/*0*/ @org.jetbrains.annotations.NotNull p: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)): kotlin.Unit + public abstract fun f25(/*0*/ p: (@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)): kotlin.Unit + public abstract fun f26(/*0*/ p1: (@org.jetbrains.annotations.Nullable kotlin.Array!>?..@org.jetbrains.annotations.Nullable kotlin.Array!>?), /*1*/ p2: (@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?), /*2*/ @org.jetbrains.annotations.Nullable p3: (@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>?..@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>?)): kotlin.Unit + public abstract fun f27(/*0*/ @org.jetbrains.annotations.Nullable p: (@org.jetbrains.annotations.Nullable kotlin.Array!>!>!>!>?..@org.jetbrains.annotations.Nullable kotlin.Array!>!>!>!>?)): kotlin.Unit + public abstract fun f28(/*0*/ p: test.G1<(@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!): kotlin.Unit + public abstract fun f29(/*0*/ p: test.G2!): kotlin.Unit + public abstract fun f3(/*0*/ p: test.G2<@org.jetbrains.annotations.NotNull kotlin.String, test.G2<@org.jetbrains.annotations.NotNull kotlin.Int, test.G2<@org.jetbrains.annotations.NotNull test.G2, @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f30(/*0*/ p: test.G1!>!): kotlin.Unit public abstract fun f31(/*0*/ p: test.G1!>!): kotlin.Unit - public abstract fun f32(/*0*/ p: test.G1..@test.A kotlin.Array?)>!, test.G1<@test.A kotlin.IntArray!>!>!>!): kotlin.Unit - public abstract fun f33(/*0*/ p: test.G1<@test.A kotlin.IntArray!>!): kotlin.Unit - public abstract fun f34(/*0*/ p: test.G1<(@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>!): kotlin.Unit - public abstract fun f35(/*0*/ p1: test.G2!>!, /*1*/ p2: test.G1..@test.A kotlin.Array?)>!>!, /*2*/ p3: test.G1!>!): kotlin.Unit - public abstract fun f36(/*0*/ p: test.G1..@test.A kotlin.Array?)>!>!): kotlin.Unit + public abstract fun f32(/*0*/ p: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>!): kotlin.Unit + public abstract fun f33(/*0*/ p: test.G1!): kotlin.Unit + public abstract fun f34(/*0*/ p: test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>!): kotlin.Unit + public abstract fun f35(/*0*/ p1: test.G2!>!, /*1*/ p2: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!, /*2*/ p3: test.G1!>!): kotlin.Unit + public abstract fun f36(/*0*/ p: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!): kotlin.Unit public abstract fun f37(/*0*/ p: test.G1!>!>!>!): kotlin.Unit - public abstract fun f38(/*0*/ p: test.G1..@test.A kotlin.Array?)>!, test.G1<(@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>!>!>!): kotlin.Unit - public abstract fun f39(/*0*/ p: test.G1..@test.A kotlin.Array?)>!>!): kotlin.Unit - public abstract fun f4(/*0*/ p: test.G1!): kotlin.Unit - public abstract fun f40(/*0*/ p: test.G1..@test.A kotlin.Array?)>!): kotlin.Unit - public abstract fun f41(/*0*/ p: test.G2!): kotlin.Unit - public abstract fun f42(/*0*/ p: test.G1!>!): kotlin.Unit + public abstract fun f38(/*0*/ p: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1<(@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>!>!>!): kotlin.Unit + public abstract fun f39(/*0*/ p: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!): kotlin.Unit + public abstract fun f4(/*0*/ p: test.G1!): kotlin.Unit + public abstract fun f40(/*0*/ p: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!): kotlin.Unit + public abstract fun f41(/*0*/ p: test.G2!): kotlin.Unit + public abstract fun f42(/*0*/ p: test.G1!>!): kotlin.Unit public abstract fun f43(/*0*/ p: test.G1!>!): kotlin.Unit - public abstract fun f44(/*0*/ p: test.G1..@test.A kotlin.Array?)>!, test.G1!>!>!): kotlin.Unit - public abstract fun f45(/*0*/ p: test.G1..@test.A kotlin.Array?)>!, test.G1!>!>!): kotlin.Unit - public abstract fun f46(/*0*/ p: test.G1!): kotlin.Unit - public abstract fun f47(/*0*/ p: test.G1!>..@test.A kotlin.Array!>?)>!): kotlin.Unit - public abstract fun f48(/*0*/ p: test.G2!>..@test.A kotlin.Array!>?)>!): kotlin.Unit - public abstract fun f49(/*0*/ p1: test.G1!>!>!>!>!>!, /*1*/ p2: test.G1!>!>!, /*2*/ p3: test.G2!>..@test.A kotlin.Array!>?)>!): kotlin.Unit - public abstract fun f5(/*0*/ p: test.G1!>!>!>!): kotlin.Unit - public abstract fun f50(/*0*/ p: test.G1!>!>!): kotlin.Unit - public abstract fun f51(/*0*/ p: test.G1!>!>..@test.A kotlin.Array!>!>?)>!, test.G1..@test.A kotlin.Array?)>..@test.A kotlin.Array..@test.A kotlin.Array?)>?)>!>!>!): kotlin.Unit - public abstract fun f52(/*0*/ p: test.G1..@test.A kotlin.Array?)>!>!>!, test.G1..@test.A kotlin.Array?)>!>!>!): kotlin.Unit - public abstract fun f53(/*0*/ p: test.G1!>!): kotlin.Unit - public abstract fun f54(/*0*/ p1: test.G1..@test.A kotlin.Array?)>!>!>!, test.G1..@test.A kotlin.Array?)>!>!>!, /*1*/ p2: test.G1..@test.A kotlin.Array?)>!>!, /*2*/ @test.A p3: (@test.A kotlin.Array!>!>!>!>..@test.A kotlin.Array!>!>!>!>?), /*3*/ @test.A p4: @test.A kotlin.IntArray!, /*4*/ p5: test.G2!, out @test.A(value = "abc") kotlin.Int!>!>!>!): kotlin.Unit - public abstract fun f55(/*0*/ @test.A vararg x: @test.A kotlin.String! /*kotlin.Array<(out) @test.A kotlin.String!>!*/): kotlin.Unit - public abstract fun f56(/*0*/ vararg x: kotlin.String! /*(@test.A kotlin.Array..@test.A kotlin.Array?)*/): kotlin.Unit - public abstract fun f57(/*0*/ @test.A vararg x: @test.A kotlin.String! /*(@test.A kotlin.Array<@test.A kotlin.String!>..@test.A kotlin.Array?)*/): kotlin.Unit - public abstract fun f58(/*0*/ @test.A vararg x: kotlin.Int /*kotlin.IntArray!*/): kotlin.Unit - public abstract fun f59(/*0*/ vararg x: kotlin.Int /*@test.A kotlin.IntArray!*/): kotlin.Unit - public abstract fun f6(/*0*/ p1: test.G1!, /*1*/ p2: test.G1!>!>!>!): kotlin.Unit - public abstract fun f60(/*0*/ @test.A vararg x: kotlin.Int /*@test.A kotlin.IntArray!*/): kotlin.Unit - public abstract fun f61(/*0*/ @test.A vararg x: kotlin.Array<(out) @test.A kotlin.String!>! /*kotlin.Array<(out) kotlin.Array<(out) @test.A kotlin.String!>!>!*/): kotlin.Unit - public abstract fun f62(/*0*/ vararg x: (@test.A kotlin.Array..@test.A kotlin.Array?) /*kotlin.Array<(out) (@test.A kotlin.Array..@test.A kotlin.Array?)>!*/): kotlin.Unit - public abstract fun f63(/*0*/ vararg x: kotlin.Array<(out) kotlin.String!>! /*(@test.A kotlin.Array!>..@test.A kotlin.Array!>?)*/): kotlin.Unit - public abstract fun f64(/*0*/ @test.A vararg x: (@test.A kotlin.Array<@test.A kotlin.String!>..@test.A kotlin.Array?) /*(@test.A kotlin.Array<(@test.A kotlin.Array<@test.A kotlin.String!>..@test.A kotlin.Array?)>..@test.A kotlin.Array..@test.A kotlin.Array?)>?)*/): kotlin.Unit - public abstract fun f65(/*0*/ @test.A vararg x: kotlin.IntArray! /*kotlin.Array<(out) kotlin.IntArray!>!*/): kotlin.Unit - public abstract fun f66(/*0*/ vararg x: @test.A kotlin.IntArray! /*kotlin.Array<(out) @test.A kotlin.IntArray!>!*/): kotlin.Unit - public abstract fun f67(/*0*/ vararg x: kotlin.IntArray! /*(@test.A kotlin.Array..@test.A kotlin.Array?)*/): kotlin.Unit - public abstract fun f68(/*0*/ @test.A vararg x: @test.A kotlin.IntArray! /*(@test.A kotlin.Array<@test.A kotlin.IntArray!>..@test.A kotlin.Array?)*/): kotlin.Unit - public abstract fun f69(/*0*/ @test.A vararg x: kotlin.Array<(out) kotlin.Array<(out) @test.A kotlin.String!>!>! /*kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) @test.A kotlin.String!>!>!>!*/): kotlin.Unit - public abstract fun f7(/*0*/ p: test.G2!, out @test.A(value = "abc") kotlin.Int!>!>!>!): kotlin.Unit - public abstract fun f70(/*0*/ vararg x: (@test.A kotlin.Array!>..@test.A kotlin.Array!>?) /*kotlin.Array<(out) (@test.A kotlin.Array!>..@test.A kotlin.Array!>?)>!*/): kotlin.Unit - public abstract fun f71(/*0*/ vararg x: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) kotlin.String!>!>!>! /*(@test.A kotlin.Array!>!>!>..@test.A kotlin.Array!>!>!>?)*/): kotlin.Unit - public abstract fun f72(/*0*/ @test.A vararg x: (@test.A kotlin.Array..@test.A kotlin.Array?)>!>..@test.A kotlin.Array..@test.A kotlin.Array?)>!>?) /*(@test.A kotlin.Array<(@test.A kotlin.Array..@test.A kotlin.Array?)>!>..@test.A kotlin.Array..@test.A kotlin.Array?)>!>?)>..@test.A kotlin.Array..@test.A kotlin.Array?)>!>..@test.A kotlin.Array..@test.A kotlin.Array?)>!>?)>?)*/): kotlin.Unit - public abstract fun f73(/*0*/ @test.A vararg x: (@test.A kotlin.Array..@test.A kotlin.Array?) /*kotlin.Array<(out) (@test.A kotlin.Array..@test.A kotlin.Array?)>!*/): kotlin.Unit - public abstract fun f74(/*0*/ vararg x: (@test.A kotlin.Array!>!>..@test.A kotlin.Array!>!>?) /*kotlin.Array<(out) (@test.A kotlin.Array!>!>..@test.A kotlin.Array!>!>?)>!*/): kotlin.Unit - public abstract fun f75(/*0*/ vararg x: kotlin.Array<(out) kotlin.Array<(out) kotlin.IntArray!>!>! /*(@test.A kotlin.Array!>!>..@test.A kotlin.Array!>!>?)*/): kotlin.Unit - public abstract fun f76(/*0*/ @test.A vararg x: kotlin.Array<(out) @test.A kotlin.IntArray!>! /*(@test.A kotlin.Array!>..@test.A kotlin.Array!>?)*/): kotlin.Unit - public abstract fun f8(/*0*/ p: test.G1!): kotlin.Unit - public abstract fun f9(/*0*/ p: test.G1!>!>!>!): kotlin.Unit + public abstract fun f44(/*0*/ p: test.G1?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!, test.G1!>!>!): kotlin.Unit + public abstract fun f45(/*0*/ p: test.G1?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!, test.G1!>!>!): kotlin.Unit + public abstract fun f46(/*0*/ p: test.G1!): kotlin.Unit + public abstract fun f47(/*0*/ p: test.G1!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>!): kotlin.Unit + public abstract fun f48(/*0*/ p: test.G2!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>!): kotlin.Unit + public abstract fun f49(/*0*/ p1: test.G1!>!>!>!>!>!, /*1*/ p2: test.G1!>!>!, /*2*/ p3: test.G2!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)>!): kotlin.Unit + public abstract fun f5(/*0*/ p: test.G1!>!>!>!): kotlin.Unit + public abstract fun f50(/*0*/ p: test.G1!>!>!): kotlin.Unit + public abstract fun f51(/*0*/ p: test.G1!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>)>!, test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)>!>!>!): kotlin.Unit + public abstract fun f52(/*0*/ p: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>!, test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>!): kotlin.Unit + public abstract fun f53(/*0*/ p: test.G1!>!): kotlin.Unit + public abstract fun f54(/*0*/ p1: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>!, test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!>!, /*1*/ p2: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!, /*2*/ @org.jetbrains.annotations.NotNull p3: (@org.jetbrains.annotations.NotNull kotlin.Array!>!>!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>!>!>), /*3*/ @org.jetbrains.annotations.NotNull p4: kotlin.IntArray!, /*4*/ p5: test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f55(/*0*/ @org.jetbrains.annotations.NotNull vararg x: @org.jetbrains.annotations.NotNull kotlin.String /*kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.String>!*/): kotlin.Unit + public abstract fun f56(/*0*/ vararg x: kotlin.String! /*(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)*/): kotlin.Unit + public abstract fun f57(/*0*/ @org.jetbrains.annotations.NotNull vararg x: @org.jetbrains.annotations.NotNull kotlin.String /*(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.String>..@org.jetbrains.annotations.NotNull kotlin.Array)*/): kotlin.Unit + public abstract fun f58(/*0*/ @org.jetbrains.annotations.NotNull vararg x: kotlin.Int /*kotlin.IntArray!*/): kotlin.Unit + public abstract fun f59(/*0*/ vararg x: kotlin.Int /*kotlin.IntArray!*/): kotlin.Unit + public abstract fun f6(/*0*/ p1: test.G1!, /*1*/ p2: test.G1!>!>!>!): kotlin.Unit + public abstract fun f60(/*0*/ @org.jetbrains.annotations.NotNull vararg x: kotlin.Int /*kotlin.IntArray!*/): kotlin.Unit + public abstract fun f61(/*0*/ @org.jetbrains.annotations.Nullable vararg x: kotlin.Array<(out) @org.jetbrains.annotations.Nullable kotlin.String?>! /*kotlin.Array<(out) kotlin.Array<(out) @org.jetbrains.annotations.Nullable kotlin.String?>!>!*/): kotlin.Unit + public abstract fun f62(/*0*/ vararg x: (@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?) /*kotlin.Array<(out) (@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!*/): kotlin.Unit + public abstract fun f63(/*0*/ vararg x: kotlin.Array<(out) kotlin.String!>! /*(@org.jetbrains.annotations.Nullable kotlin.Array!>..@org.jetbrains.annotations.Nullable kotlin.Array!>?)*/): kotlin.Unit + public abstract fun f64(/*0*/ @org.jetbrains.annotations.NotNull vararg x: (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.String>..@org.jetbrains.annotations.NotNull kotlin.Array) /*(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.String>..@org.jetbrains.annotations.NotNull kotlin.Array)>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>)*/): kotlin.Unit + public abstract fun f65(/*0*/ @org.jetbrains.annotations.NotNull vararg x: kotlin.IntArray! /*kotlin.Array<(out) kotlin.IntArray!>!*/): kotlin.Unit + public abstract fun f66(/*0*/ vararg x: kotlin.IntArray! /*kotlin.Array<(out) kotlin.IntArray!>!*/): kotlin.Unit + public abstract fun f67(/*0*/ vararg x: kotlin.IntArray! /*(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)*/): kotlin.Unit + public abstract fun f68(/*0*/ @org.jetbrains.annotations.NotNull vararg x: kotlin.IntArray! /*(@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)*/): kotlin.Unit + public abstract fun f69(/*0*/ @org.jetbrains.annotations.NotNull vararg x: kotlin.Array<(out) kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.String>!>! /*kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.String>!>!>!*/): kotlin.Unit + public abstract fun f7(/*0*/ p: test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f70(/*0*/ vararg x: (@org.jetbrains.annotations.Nullable kotlin.Array!>?..@org.jetbrains.annotations.Nullable kotlin.Array!>?) /*kotlin.Array<(out) (@org.jetbrains.annotations.Nullable kotlin.Array!>?..@org.jetbrains.annotations.Nullable kotlin.Array!>?)>!*/): kotlin.Unit + public abstract fun f71(/*0*/ vararg x: kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) kotlin.String!>!>!>! /*(@org.jetbrains.annotations.Nullable kotlin.Array!>!>!>..@org.jetbrains.annotations.Nullable kotlin.Array!>!>!>?)*/): kotlin.Unit + public abstract fun f72(/*0*/ @org.jetbrains.annotations.Nullable vararg x: (@org.jetbrains.annotations.NotNull kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>..@org.jetbrains.annotations.NotNull kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>) /*(@org.jetbrains.annotations.NotNull kotlin.Array<(@org.jetbrains.annotations.NotNull kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>..@org.jetbrains.annotations.NotNull kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>)>..@org.jetbrains.annotations.NotNull kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>..@org.jetbrains.annotations.NotNull kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!>)>)*/): kotlin.Unit + public abstract fun f73(/*0*/ @org.jetbrains.annotations.NotNull vararg x: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array) /*kotlin.Array<(out) (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!*/): kotlin.Unit + public abstract fun f74(/*0*/ vararg x: (@org.jetbrains.annotations.NotNull kotlin.Array!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>) /*kotlin.Array<(out) (@org.jetbrains.annotations.NotNull kotlin.Array!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>)>!*/): kotlin.Unit + public abstract fun f75(/*0*/ vararg x: kotlin.Array<(out) kotlin.Array<(out) kotlin.IntArray!>!>! /*(@org.jetbrains.annotations.NotNull kotlin.Array!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>)*/): kotlin.Unit + public abstract fun f76(/*0*/ @org.jetbrains.annotations.NotNull vararg x: kotlin.Array<(out) kotlin.IntArray!>! /*(@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)*/): kotlin.Unit + public abstract fun f8(/*0*/ p: test.G1!): kotlin.Unit + public abstract fun f9(/*0*/ p: test.G1!>!>!>!): kotlin.Unit public open class Test { - public constructor Test(/*0*/ p1: test.G2!, out @test.A(value = "abc") kotlin.Int!>!>!>!, /*1*/ p2: (@test.A kotlin.Array!>..@test.A kotlin.Array!>?), /*2*/ p3: (@test.A kotlin.Array..@test.A kotlin.Array?), /*3*/ @test.A p4: (@test.A kotlin.Array..@test.A kotlin.Array?)>!>..@test.A kotlin.Array..@test.A kotlin.Array?)>!>?), /*4*/ @test.A vararg p5: kotlin.Array<(out) @test.A kotlin.IntArray!>! /*(@test.A kotlin.Array!>..@test.A kotlin.Array!>?)*/) + public constructor Test(/*0*/ p1: test.G2?, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!, /*1*/ p2: (@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>), /*2*/ p3: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array), /*3*/ @org.jetbrains.annotations.NotNull p4: (@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!>..@org.jetbrains.annotations.NotNull kotlin.Array..@org.jetbrains.annotations.NotNull kotlin.Array)>!>), /*4*/ @org.jetbrains.annotations.NotNull vararg p5: kotlin.Array<(out) kotlin.IntArray!>! /*(@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)*/) } } diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractForeignAnnotationsTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractForeignAnnotationsTest.kt index bca87670eb2..40b66d1a4ee 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractForeignAnnotationsTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractForeignAnnotationsTest.kt @@ -24,15 +24,11 @@ import org.jetbrains.kotlin.utils.JavaTypeEnhancementState import org.jetbrains.kotlin.utils.ReportLevel import java.io.File -val FOREIGN_ANNOTATIONS_SOURCES_PATH = "third-party/annotations" -val TEST_ANNOTATIONS_SOURCE_PATH = "compiler/testData/foreignAnnotations/testAnnotations" +const val FOREIGN_ANNOTATIONS_SOURCES_PATH = "third-party/annotations" +const val FOREIGN_JDK8_ANNOTATIONS_SOURCES_PATH = "third-party/jdk8-annotations" +const val TEST_ANNOTATIONS_SOURCE_PATH = "compiler/testData/foreignAnnotations/testAnnotations" abstract class AbstractForeignAnnotationsTest : AbstractDiagnosticsTest() { - private val JSR305_GLOBAL_DIRECTIVE = "JSR305_GLOBAL_REPORT" - private val JSR305_MIGRATION_DIRECTIVE = "JSR305_MIGRATION_REPORT" - private val JSR305_SPECIAL_DIRECTIVE = "JSR305_SPECIAL_REPORT" - private val JSPECIFY_STATE_SPECIAL_DIRECTIVE = "JSPECIFY_STATE" - override fun getExtraClasspath(): List { val foreignAnnotations = createJarWithForeignAnnotations() return foreignAnnotations + compileTestAnnotations(foreignAnnotations) @@ -51,7 +47,7 @@ abstract class AbstractForeignAnnotationsTest : AbstractDiagnosticsTest() { ForTestCompileRuntime.jvmAnnotationsForTests() ) - open protected val annotationsPath: String + protected open val annotationsPath: String get() = FOREIGN_ANNOTATIONS_SOURCES_PATH override fun loadLanguageVersionSettings(module: List): LanguageVersionSettings { @@ -92,4 +88,11 @@ abstract class AbstractForeignAnnotationsTest : AbstractDiagnosticsTest() { private fun List.getDirectiveValue(directive: String): ReportLevel? = mapNotNull { InTextDirectivesUtils.findLinesWithPrefixesRemoved(it.expectedText, directive).firstOrNull() }.firstOrNull().let { ReportLevel.findByDescription(it) } + + companion object { + private const val JSR305_GLOBAL_DIRECTIVE = "JSR305_GLOBAL_REPORT" + private const val JSR305_MIGRATION_DIRECTIVE = "JSR305_MIGRATION_REPORT" + private const val JSR305_SPECIAL_DIRECTIVE = "JSR305_SPECIAL_REPORT" + private const val JSPECIFY_STATE_SPECIAL_DIRECTIVE = "JSPECIFY_STATE" + } } diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractJspecifyAnnotationsTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractJspecifyAnnotationsTest.kt index 6f7bde486f1..7978bd93e43 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractJspecifyAnnotationsTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractJspecifyAnnotationsTest.kt @@ -27,7 +27,7 @@ abstract class AbstractJspecifyAnnotationsTest : AbstractDiagnosticsTest() { super.doMultiFileTest( wholeFile, files, - MockLibraryUtil.compileJavaFilesLibraryToJar(FOREIGN_ANNOTATIONS_SOURCES_PATH, "foreign-annotations") + MockLibraryUtil.compileJavaFilesLibraryToJar(FOREIGN_JDK8_ANNOTATIONS_SOURCES_PATH, "foreign-annotations") ) } @@ -149,7 +149,6 @@ abstract class AbstractJspecifyAnnotationsTest : AbstractDiagnosticsTest() { } companion object { - const val FOREIGN_ANNOTATIONS_SOURCES_PATH = "third-party/jdk8-annotations" const val JSPECIFY_JAVA_SOURCES_PATH = "compiler/testData/foreignAnnotationsJava8/tests/jspecify/java" const val MAIN_KT_FILE_DIRECTIVE = "// FILE: main.kt\n" diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/cli/AbstractCliTest.java b/compiler/tests-common/tests/org/jetbrains/kotlin/cli/AbstractCliTest.java index cfa44d4a3fe..b3a317824a6 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/cli/AbstractCliTest.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/cli/AbstractCliTest.java @@ -261,7 +261,7 @@ public abstract class AbstractCliTest extends TestCaseWithTmpdir { .replace(TESTDATA_DIR, testDataDir) .replace( "$FOREIGN_ANNOTATIONS_DIR$", - new File(AbstractForeignAnnotationsTestKt.getFOREIGN_ANNOTATIONS_SOURCES_PATH()).getPath() + new File(AbstractForeignAnnotationsTestKt.FOREIGN_ANNOTATIONS_SOURCES_PATH).getPath() ).replace( "$JDK_15$", KtTestUtil.getJdk15Home().getPath() diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/jvm/compiler/AbstractLoadJavaTest.java b/compiler/tests-common/tests/org/jetbrains/kotlin/jvm/compiler/AbstractLoadJavaTest.java index cbbbe39d4a1..3e7d9b8e59e 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/jvm/compiler/AbstractLoadJavaTest.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/jvm/compiler/AbstractLoadJavaTest.java @@ -59,6 +59,8 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir { public static final Configuration COMPARATOR_CONFIGURATION = DONT_INCLUDE_METHODS_OF_OBJECT.renderDeclarationsFromOtherModules(true); + protected boolean withForeignAnnotations() { return false; } + protected void doTestCompiledJava(@NotNull String javaFileName) throws Exception { doTestCompiledJava(javaFileName, COMPARATOR_CONFIGURATION); } @@ -148,7 +150,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir { PackageViewDescriptor packageFromBinary = LoadDescriptorUtil.loadTestPackageAndBindingContextFromJavaRoot( tmpdir, getTestRootDisposable(), getJdkKind(), configurationKind, true, false, useJavacWrapper(), - configuration.get(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS), + withForeignAnnotations(), configuration.get(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS), getExtraClasspath(), this::configureEnvironment ).first; @@ -274,7 +276,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir { Pair javaPackageAndContext = loadTestPackageAndBindingContextFromJavaRoot( tmpdir, getTestRootDisposable(), getJdkKind(), ConfigurationKind.JDK_ONLY, false, - false, useJavacWrapper(), null); + false, useJavacWrapper(), withForeignAnnotations(), null); checkJavaPackage( expectedFile, javaPackageAndContext.first, javaPackageAndContext.second, @@ -329,9 +331,9 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir { @NotNull File outDir, @NotNull ConfigurationKind configurationKind ) throws IOException { - compileJavaWithAnnotationsJar(javaFiles, outDir, getAdditionalJavacArgs(), getJdkHomeForJavac()); + compileJavaWithAnnotationsJar(javaFiles, outDir, getAdditionalJavacArgs(), getJdkHomeForJavac(), withForeignAnnotations()); return loadTestPackageAndBindingContextFromJavaRoot(outDir, getTestRootDisposable(), getJdkKind(), configurationKind, true, - usePsiClassFilesReading(), useJavacWrapper(), null, + usePsiClassFilesReading(), useJavacWrapper(), withForeignAnnotations(), null, getExtraClasspath(), this::configureEnvironment); } diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/jvm/compiler/LoadDescriptorUtil.java b/compiler/tests-common/tests/org/jetbrains/kotlin/jvm/compiler/LoadDescriptorUtil.java index 0aae9989fa1..f387835d13f 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/jvm/compiler/LoadDescriptorUtil.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/jvm/compiler/LoadDescriptorUtil.java @@ -43,10 +43,7 @@ import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.psi.KtFile; import org.jetbrains.kotlin.resolve.BindingContext; import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil; -import org.jetbrains.kotlin.test.ConfigurationKind; -import org.jetbrains.kotlin.test.InTextDirectivesUtils; -import org.jetbrains.kotlin.test.KotlinTestUtils; -import org.jetbrains.kotlin.test.TestJdkKind; +import org.jetbrains.kotlin.test.*; import org.jetbrains.kotlin.test.util.KtTestUtil; import org.jetbrains.kotlin.utils.ExceptionUtilsKt; @@ -56,6 +53,8 @@ import java.util.*; import java.util.function.Consumer; import java.util.stream.Collectors; +import static org.jetbrains.kotlin.checkers.AbstractForeignAnnotationsTestKt.FOREIGN_JDK8_ANNOTATIONS_SOURCES_PATH; + public class LoadDescriptorUtil { @NotNull public static final FqName TEST_PACKAGE_FQNAME = FqName.topLevel(Name.identifier("test")); @@ -81,6 +80,7 @@ public class LoadDescriptorUtil { boolean isBinaryRoot, boolean usePsiClassReading, boolean useJavacWrapper, + boolean withForeignAnnotations, @Nullable LanguageVersionSettings explicitLanguageVersionSettings ) { return loadTestPackageAndBindingContextFromJavaRoot( @@ -91,6 +91,7 @@ public class LoadDescriptorUtil { isBinaryRoot, usePsiClassReading, useJavacWrapper, + withForeignAnnotations, explicitLanguageVersionSettings, Collections.emptyList(), (configuration) -> {} @@ -106,12 +107,16 @@ public class LoadDescriptorUtil { boolean isBinaryRoot, boolean usePsiClassReading, boolean useJavacWrapper, + boolean withForeignAnnotations, @Nullable LanguageVersionSettings explicitLanguageVersionSettings, @NotNull List additionalClasspath, @NotNull Consumer configureEnvironment ) { List javaBinaryRoots = new ArrayList<>(); // TODO: use the same additional binary roots as those were used for compilation + if (withForeignAnnotations) { + javaBinaryRoots.add(MockLibraryUtil.compileJavaFilesLibraryToJar(FOREIGN_JDK8_ANNOTATIONS_SOURCES_PATH, "foreign-annotations")); + } javaBinaryRoots.add(KtTestUtil.getAnnotationsJar()); javaBinaryRoots.add(ForTestCompileRuntime.jvmAnnotationsForTests()); javaBinaryRoots.addAll(additionalClasspath); @@ -147,7 +152,8 @@ public class LoadDescriptorUtil { @NotNull Collection javaFiles, @NotNull File outDir, @NotNull List additionalArgs, - @Nullable File customJdkHomeForJavac + @Nullable File customJdkHomeForJavac, + boolean useJetbrainsAnnotationsWithTypeUse ) throws IOException { List args = new ArrayList<>(Arrays.asList( "-sourcepath", "compiler/testData/loadJava/include", @@ -157,6 +163,9 @@ public class LoadDescriptorUtil { List classpath = new ArrayList<>(); classpath.add(ForTestCompileRuntime.runtimeJarForTests()); + if (useJetbrainsAnnotationsWithTypeUse) { + classpath.add(MockLibraryUtil.compileJavaFilesLibraryToJar(FOREIGN_JDK8_ANNOTATIONS_SOURCES_PATH, "foreign-annotations")); + } classpath.add(KtTestUtil.getAnnotationsJar()); for (File test : javaFiles) { diff --git a/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/AbstractLoadJava8Test.java b/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/AbstractLoadJava8Test.java index 88b2dcbcbf3..0e8fce9b1c1 100644 --- a/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/AbstractLoadJava8Test.java +++ b/compiler/tests-java8/tests/org/jetbrains/kotlin/jvm/compiler/AbstractLoadJava8Test.java @@ -25,4 +25,9 @@ public abstract class AbstractLoadJava8Test extends AbstractLoadJavaTest { protected TestJdkKind getJdkKind() { return TestJdkKind.FULL_JDK; } + + @Override + protected boolean withForeignAnnotations() { + return true; + } } diff --git a/core/descriptors.runtime/tests/org/jetbrains/kotlin/jvm/runtime/AbstractJvmRuntimeDescriptorLoaderTest.kt b/core/descriptors.runtime/tests/org/jetbrains/kotlin/jvm/runtime/AbstractJvmRuntimeDescriptorLoaderTest.kt index d86dbb8bfd7..91890835414 100644 --- a/core/descriptors.runtime/tests/org/jetbrains/kotlin/jvm/runtime/AbstractJvmRuntimeDescriptorLoaderTest.kt +++ b/core/descriptors.runtime/tests/org/jetbrains/kotlin/jvm/runtime/AbstractJvmRuntimeDescriptorLoaderTest.kt @@ -99,7 +99,7 @@ abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdir() { } val expected = LoadDescriptorUtil.loadTestPackageAndBindingContextFromJavaRoot( - tmpdir, testRootDisposable, jdkKind, ConfigurationKind.ALL, true, false, false, null + tmpdir, testRootDisposable, jdkKind, ConfigurationKind.ALL, true, false, false, false, null ).first RecursiveDescriptorComparatorAdaptor.validateAndCompareDescriptors(expected, actual, comparatorConfiguration, null) @@ -125,7 +125,7 @@ abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdir() { } } ) - LoadDescriptorUtil.compileJavaWithAnnotationsJar(sources, tmpdir, emptyList(), null) + LoadDescriptorUtil.compileJavaWithAnnotationsJar(sources, tmpdir, emptyList(), null, false) } fileName.endsWith(".kt") -> { val environment = KotlinTestUtils.createEnvironmentWithJdkAndNullabilityAnnotationsFromIdea( diff --git a/third-party/jdk8-annotations/org/jetbrains/annotations/NotNull.java b/third-party/jdk8-annotations/org/jetbrains/annotations/NotNull.java new file mode 100644 index 00000000000..a5fca75fe06 --- /dev/null +++ b/third-party/jdk8-annotations/org/jetbrains/annotations/NotNull.java @@ -0,0 +1,44 @@ +/* + * Copyright 2000-2020 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.annotations; + +import java.lang.annotation.*; + +/** + * An element annotated with NotNull claims {@code null} value is forbidden + * to return (for methods), pass to (parameters) and hold (local variables and fields). + * Apart from documentation purposes this annotation is intended to be used by static analysis tools + * to validate against probable runtime errors and element contract violations. + */ +@Documented +@Retention(RetentionPolicy.CLASS) +@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.LOCAL_VARIABLE, ElementType.TYPE_USE}) +public @interface NotNull { + /** + * @return Custom exception message + */ + String value() default ""; + + /** + * @return Custom exception type that should be thrown when not-nullity contract is violated. + * The exception class should have a constructor with one String argument (message). + * + * By default, {@link IllegalArgumentException} is thrown on null method arguments and + * {@link IllegalStateException} — on null return value. + */ + Class exception() default Exception.class; +} diff --git a/third-party/jdk8-annotations/org/jetbrains/annotations/Nullable.java b/third-party/jdk8-annotations/org/jetbrains/annotations/Nullable.java new file mode 100644 index 00000000000..14147afba8c --- /dev/null +++ b/third-party/jdk8-annotations/org/jetbrains/annotations/Nullable.java @@ -0,0 +1,31 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.annotations; + +import java.lang.annotation.*; + +/** + * An element annotated with {@link Nullable} claims {@code null} value is perfectly valid + * to return (for methods), pass to (parameters) or hold in (local variables and fields). + * Apart from documentation purposes this annotation is intended to be used by static analysis tools + * to validate against probable runtime errors or element contract violations. + *
+ * By convention, this annotation applied only when the value should always be checked against {@code null} + * because the developer could do nothing to prevent null from happening. + * Otherwise, too eager {@link Nullable} usage could lead to too many false positives from static analysis tools. + *
+ * For example, {@link java.util.Map#get(Object key)} should not be annotated {@link Nullable} because + * someone may have put not-null value in the map by this key and is expecting to find this value there ever since. + *
+ * On the other hand, the {@link java.lang.ref.Reference#get()} should be annotated {@link Nullable} because + * it returns {@code null} if object got collected which can happen at any time completely unexpectedly. + */ +@Documented +@Retention(RetentionPolicy.CLASS) +@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.LOCAL_VARIABLE, ElementType.TYPE_USE}) +public @interface Nullable { + @NonNls String value() default ""; +}