From 6c6d653e85c0cbd193cd09e60c0d659308770493 Mon Sep 17 00:00:00 2001 From: pyos Date: Wed, 22 Sep 2021 13:14:05 +0200 Subject: [PATCH] FE: don't lose annotations on Java primitive arrays but only use them to enhance for warnings for now. ^KT-48861 Fixed --- ...nAnnotationsCompiledJavaTestGenerated.java | 12 +++++ ...dJavaWithPsiClassReadingTestGenerated.java | 12 +++++ ...ignAnnotationsSourceJavaTestGenerated.java | 12 +++++ .../java/enhancement/SignatureEnhancement.kt | 4 +- .../kotlin/frontend/java/di/injection.kt | 3 +- .../misc/annotatedPrimitiveArray.kt | 12 +++++ .../annotatedPrimitiveArray_before.fir.kt | 11 ++++ .../misc/annotatedPrimitiveArray_before.kt | 11 ++++ .../BaseClassTypeArguments.txt | 8 +-- .../ClassTypeParameterBounds.txt | 4 +- .../MethodTypeParameterBounds.txt | 4 +- .../typeUseAnnotations/ReturnType.txt | 42 +++++++-------- .../typeUseAnnotations/ValueArguments.txt | 54 +++++++++---------- .../BaseClassTypeArguments.txt | 8 +-- .../ClassTypeParameterBounds.txt | 4 +- .../MethodTypeParameterBounds.txt | 4 +- .../typeUseAnnotations/ReturnType.txt | 42 +++++++-------- .../typeUseAnnotations/ValueArguments.txt | 54 +++++++++---------- ...nAnnotationsCompiledJavaTestGenerated.java | 12 +++++ ...dJavaWithPsiClassReadingTestGenerated.java | 12 +++++ ...ignAnnotationsSourceJavaTestGenerated.java | 12 +++++ .../kotlin/config/LanguageVersionSettings.kt | 1 + .../typeEnhancement/AbstractSignatureParts.kt | 4 +- .../kotlin/load/java/lazy/context.kt | 8 ++- .../load/java/lazy/types/JavaTypeResolver.kt | 11 ++-- .../typeEnhancement/signatureEnhancement.kt | 10 ++-- 26 files changed, 245 insertions(+), 126 deletions(-) create mode 100644 compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray.kt create mode 100644 compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray_before.fir.kt create mode 100644 compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray_before.kt diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendForeignAnnotationsCompiledJavaTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendForeignAnnotationsCompiledJavaTestGenerated.java index 4869252bf85..711c91e22db 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendForeignAnnotationsCompiledJavaTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendForeignAnnotationsCompiledJavaTestGenerated.java @@ -901,6 +901,18 @@ public class FirOldFrontendForeignAnnotationsCompiledJavaTestGenerated extends A KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true); } + @Test + @TestMetadata("annotatedPrimitiveArray.kt") + public void testAnnotatedPrimitiveArray() throws Exception { + runTest("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray.kt"); + } + + @Test + @TestMetadata("annotatedPrimitiveArray_before.kt") + public void testAnnotatedPrimitiveArray_before() throws Exception { + runTest("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray_before.kt"); + } + @Test @TestMetadata("annotatedTypeArguments.kt") public void testAnnotatedTypeArguments() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendForeignAnnotationsCompiledJavaWithPsiClassReadingTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendForeignAnnotationsCompiledJavaWithPsiClassReadingTestGenerated.java index 4a76d08edf6..ef268fefc9e 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendForeignAnnotationsCompiledJavaWithPsiClassReadingTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendForeignAnnotationsCompiledJavaWithPsiClassReadingTestGenerated.java @@ -901,6 +901,18 @@ public class FirOldFrontendForeignAnnotationsCompiledJavaWithPsiClassReadingTest KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true); } + @Test + @TestMetadata("annotatedPrimitiveArray.kt") + public void testAnnotatedPrimitiveArray() throws Exception { + runTest("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray.kt"); + } + + @Test + @TestMetadata("annotatedPrimitiveArray_before.kt") + public void testAnnotatedPrimitiveArray_before() throws Exception { + runTest("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray_before.kt"); + } + @Test @TestMetadata("annotatedTypeArguments.kt") public void testAnnotatedTypeArguments() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendForeignAnnotationsSourceJavaTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendForeignAnnotationsSourceJavaTestGenerated.java index 6bb078539fb..80e7425ced9 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendForeignAnnotationsSourceJavaTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendForeignAnnotationsSourceJavaTestGenerated.java @@ -901,6 +901,18 @@ public class FirOldFrontendForeignAnnotationsSourceJavaTestGenerated extends Abs KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true); } + @Test + @TestMetadata("annotatedPrimitiveArray.kt") + public void testAnnotatedPrimitiveArray() throws Exception { + runTest("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray.kt"); + } + + @Test + @TestMetadata("annotatedPrimitiveArray_before.kt") + public void testAnnotatedPrimitiveArray_before() throws Exception { + runTest("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray_before.kt"); + } + @Test @TestMetadata("annotatedTypeArguments.kt") public void testAnnotatedTypeArguments() throws Exception { diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt index 091b8e21cfe..39c24c3c2d9 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt @@ -529,8 +529,8 @@ private class EnhancementSignatureParts( override val typeSystem: TypeSystemContext get() = session.typeContext - override val FirAnnotation.forceWarning: Boolean - get() = false // TODO: force warnings on IDEA external annotations + override fun FirAnnotation.forceWarning(unenhancedType: KotlinTypeMarker?): Boolean = + false // TODO: force warnings on IDEA external annotations override val KotlinTypeMarker.annotations: Iterable get() = (this as ConeKotlinType).attributes.customAnnotations diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt index 00c8760c930..9e4bd3c9cbd 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt @@ -151,7 +151,8 @@ fun StorageComponentContainer.configureJavaSpecificComponents( JavaResolverSettings.create( correctNullabilityForNotNullTypeParameter = languageVersionSettings.supportsFeature(LanguageFeature.ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated), typeEnhancementImprovementsInStrictMode = languageVersionSettings.supportsFeature(LanguageFeature.TypeEnhancementImprovementsInStrictMode), - ignoreNullabilityForErasedValueParameters = languageVersionSettings.supportsFeature(LanguageFeature.IgnoreNullabilityForErasedValueParameters) + ignoreNullabilityForErasedValueParameters = languageVersionSettings.supportsFeature(LanguageFeature.IgnoreNullabilityForErasedValueParameters), + enhancePrimitiveArrays = languageVersionSettings.supportsFeature(LanguageFeature.EnhanceNullabilityOfPrimitiveArrays), ) ) useInstance(JavaModuleResolver.getInstance(moduleContext.project)) diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray.kt new file mode 100644 index 00000000000..252a55910e4 --- /dev/null +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray.kt @@ -0,0 +1,12 @@ +// FIR_IDENTICAL +// SKIP_TXT +// !LANGUAGE: +EnhanceNullabilityOfPrimitiveArrays +// FILE: J.java +import org.jetbrains.annotations.Nullable; + +public interface J { + int @Nullable [] foo(); +} + +// FILE: main.kt +fun bar(j: J) = j.foo().iterator() diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray_before.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray_before.fir.kt new file mode 100644 index 00000000000..f24d91c0db2 --- /dev/null +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray_before.fir.kt @@ -0,0 +1,11 @@ +// SKIP_TXT +// !LANGUAGE: -EnhanceNullabilityOfPrimitiveArrays +// FILE: J.java +import org.jetbrains.annotations.Nullable; + +public interface J { + int @Nullable [] foo(); +} + +// FILE: main.kt +fun bar(j: J) = j.foo().iterator() diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray_before.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray_before.kt new file mode 100644 index 00000000000..2457e0323b9 --- /dev/null +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray_before.kt @@ -0,0 +1,11 @@ +// SKIP_TXT +// !LANGUAGE: -EnhanceNullabilityOfPrimitiveArrays +// FILE: J.java +import org.jetbrains.annotations.Nullable; + +public interface J { + int @Nullable [] foo(); +} + +// FILE: main.kt +fun bar(j: J) = j.foo().iterator() diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/BaseClassTypeArguments.txt b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/BaseClassTypeArguments.txt index a479ecfc05b..01aef89670f 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/BaseClassTypeArguments.txt +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/BaseClassTypeArguments.txt @@ -12,10 +12,10 @@ public/*package*/ open class 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!>!>)>, test.I2<@org.jetbrains.annotations.NotNull B & Any, B!>, test.I3!>!>!>!>!, B!, @org.jetbrains.annotations.NotNull B & Any> { +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 & Any, B!>, test.I3!>!>!>!>!, B!, @org.jetbrains.annotations.NotNull B & Any> { public constructor BaseClassTypeArguments() - public/*package*/ open class BaseClassTypeArguments2 : test.A3!>!>!>!>!, test.I1..@org.jetbrains.annotations.NotNull 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() } @@ -27,10 +27,10 @@ public open class BaseClassTypeArguments : test.A3 /*captured type parameters: /*1*/ B : kotlin.Any!*/ : test.I1!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>)>!, test.I1!>!>!>, test.I2<@org.jetbrains.annotations.NotNull B & Any, B!>, test.I3!>!>!>!>!, test.I1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!, test.I2!>!>!> { + 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 & Any, 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 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/ClassTypeParameterBounds.txt b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ClassTypeParameterBounds.txt index 24c0214dfc8..c8d9cf09dd1 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ClassTypeParameterBounds.txt +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ClassTypeParameterBounds.txt @@ -6,13 +6,13 @@ public open class 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 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!>!>!>)>!, _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*/ 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 { diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodTypeParameterBounds.txt b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodTypeParameterBounds.txt index 25276820749..f6747b84bcf 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodTypeParameterBounds.txt +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/MethodTypeParameterBounds.txt @@ -5,9 +5,9 @@ public/*package*/ abstract class 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 : @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 & Any): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!, _A : @org.jetbrains.annotations.NotNull test.MethodTypeParameterBounds.I3 + public/*package*/ open fun !> f12(/*0*/ p0: _A & Any): 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*/ 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? diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ReturnType.txt b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ReturnType.txt index a46258d783e..e4c18a96607 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ReturnType.txt +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ReturnType.txt @@ -14,41 +14,41 @@ public/*package*/ interface ReturnType { 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! + public abstract fun f14(): @org.jetbrains.annotations.NotNull 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!>)>) + public abstract fun f20(): (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.IntArray!>..@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 f25(): kotlin.Array<(out) @org.jetbrains.annotations.NotNull 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 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 f32(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1<@org.jetbrains.annotations.NotNull kotlin.IntArray!>!>!>! + public abstract fun f33(): test.G1<@org.jetbrains.annotations.NotNull kotlin.IntArray!>! 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..@org.jetbrains.annotations.NotNull kotlin.Array)>!, 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 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 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 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>!>!>! @@ -63,25 +63,25 @@ public/*package*/ interface ReturnType { @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) + @org.jetbrains.annotations.NotNull public/*package*/ final var f24: (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.IntArray!>..@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!>!>)>!, 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!>!>)>!, 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 f18: @org.jetbrains.annotations.NotNull 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 f24: (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.IntArray!>..@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!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>)>!, 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!>!>)>!, test.G1!>!>!>! } diff --git a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ValueArguments.txt b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ValueArguments.txt index 28bf56655b6..99fac565481 100644 --- a/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ValueArguments.txt +++ b/compiler/testData/loadJava8/compiledJava/typeUseAnnotations/ValueArguments.txt @@ -16,66 +16,66 @@ public/*package*/ interface ValueArguments { 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 f14(/*0*/ p0: @org.jetbrains.annotations.NotNull 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 f18(/*0*/ @org.jetbrains.annotations.Nullable p0: @org.jetbrains.annotations.Nullable 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 f20(/*0*/ p0: (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.IntArray!>..@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 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 f24(/*0*/ @org.jetbrains.annotations.NotNull p0: (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.IntArray!>..@org.jetbrains.annotations.NotNull kotlin.Array)): kotlin.Unit + public abstract fun f25(/*0*/ p0: kotlin.Array<(out) @org.jetbrains.annotations.Nullable 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) @org.jetbrains.annotations.Nullable 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 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..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1!>!>!): kotlin.Unit - public abstract fun f33(/*0*/ p0: test.G1!): kotlin.Unit + public abstract fun f32(/*0*/ p0: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1<@org.jetbrains.annotations.NotNull kotlin.IntArray!>!>!>!): kotlin.Unit + public abstract fun f33(/*0*/ p0: test.G1<@org.jetbrains.annotations.NotNull kotlin.IntArray!>!): 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..@org.jetbrains.annotations.NotNull kotlin.Array)>!, 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 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?..@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 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 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 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 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: @org.jetbrains.annotations.NotNull 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 f59(/*0*/ vararg p0: kotlin.Int /*@org.jetbrains.annotations.NotNull 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 f60(/*0*/ @org.jetbrains.annotations.NotNull vararg p0: kotlin.Int /*@org.jetbrains.annotations.Nullable 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 f67(/*0*/ vararg p0: @org.jetbrains.annotations.NotNull kotlin.IntArray! /*kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.IntArray!>!*/): kotlin.Unit + public abstract fun f68(/*0*/ @org.jetbrains.annotations.NotNull vararg p0: @org.jetbrains.annotations.NotNull kotlin.IntArray! /*(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.IntArray!>..@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 @@ -83,12 +83,12 @@ public/*package*/ interface ValueArguments { 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 f75(/*0*/ vararg p0: kotlin.Array<(out) kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.IntArray!>!>! /*kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.IntArray!>!>!>!*/): kotlin.Unit + public abstract fun f76(/*0*/ @org.jetbrains.annotations.NotNull vararg p0: kotlin.Array<(out) @org.jetbrains.annotations.NotNull 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 @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!>)*/) + 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) @org.jetbrains.annotations.NotNull 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) @org.jetbrains.annotations.NotNull kotlin.IntArray!>! /*(@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)*/) } } diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/BaseClassTypeArguments.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/BaseClassTypeArguments.txt index 428a527ee47..e3701ec78f2 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/BaseClassTypeArguments.txt +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/BaseClassTypeArguments.txt @@ -1,9 +1,9 @@ package test -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 & Any, B!>, test.I3!>!>!>!>!, B!, @org.jetbrains.annotations.NotNull B & Any> { +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 & Any, B!>, test.I3!>!>!>!>!, B!, @org.jetbrains.annotations.NotNull B & Any> { public constructor BaseClassTypeArguments() - public/*package*/ open class BaseClassTypeArguments2 : test.A3!>!>!>!>!, test.I1..@org.jetbrains.annotations.NotNull 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() } @@ -15,10 +15,10 @@ public open class BaseClassTypeArguments : test.A3 /*captured type parameters: /*1*/ B : kotlin.Any!*/ : test.I1!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>)>!, test.I1!>!>!>, test.I2<@org.jetbrains.annotations.NotNull B & Any, B!>, test.I3!>!>!>!>!, test.I1..@org.jetbrains.annotations.NotNull kotlin.Array)>!>!, test.I2!>!>!> { + 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 & Any, 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 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/sourceJava/typeUseAnnotations/ClassTypeParameterBounds.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ClassTypeParameterBounds.txt index 24c0214dfc8..c8d9cf09dd1 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ClassTypeParameterBounds.txt +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ClassTypeParameterBounds.txt @@ -6,13 +6,13 @@ public open class 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 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!>!>!>)>!, _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*/ 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 { diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodTypeParameterBounds.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodTypeParameterBounds.txt index 90e8a566c61..adbc810b645 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodTypeParameterBounds.txt +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/MethodTypeParameterBounds.txt @@ -5,9 +5,9 @@ public/*package*/ abstract class 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 & Any): kotlin.Unit where _A : test.MethodTypeParameterBounds.I2!, _A : @org.jetbrains.annotations.NotNull test.MethodTypeParameterBounds.I3 + public/*package*/ open fun !> f12(/*0*/ x: _A & Any): 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 ..@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*/ 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? diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ReturnType.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ReturnType.txt index e02be087dd0..dbfb19c32bf 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ReturnType.txt +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ReturnType.txt @@ -5,41 +5,41 @@ public/*package*/ interface ReturnType { 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! + public abstract fun f14(): @org.jetbrains.annotations.NotNull 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!>)>) + public abstract fun f20(): (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.IntArray!>..@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 f25(): kotlin.Array<(out) @org.jetbrains.annotations.NotNull 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 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 f32(): test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1<@org.jetbrains.annotations.NotNull kotlin.IntArray!>!>!>! + public abstract fun f33(): test.G1<@org.jetbrains.annotations.NotNull kotlin.IntArray!>! 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..@org.jetbrains.annotations.NotNull kotlin.Array)>!, 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 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 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 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>!>!>! @@ -54,25 +54,25 @@ public/*package*/ interface ReturnType { @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) + @org.jetbrains.annotations.NotNull public/*package*/ final var f24: (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.IntArray!>..@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!>!>)>!, 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!>!>)>!, 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 f18: @org.jetbrains.annotations.NotNull 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 f24: (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.IntArray!>..@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!>!>..@org.jetbrains.annotations.NotNull kotlin.Array!>!>)>!, 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!>!>)>!, test.G1!>!>!>! } diff --git a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ValueArguments.txt b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ValueArguments.txt index 1948e021877..4c52542bfef 100644 --- a/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ValueArguments.txt +++ b/compiler/testData/loadJava8/sourceJava/typeUseAnnotations/ValueArguments.txt @@ -7,66 +7,66 @@ public/*package*/ interface ValueArguments { 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 f14(/*0*/ p: @org.jetbrains.annotations.NotNull 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 f18(/*0*/ @org.jetbrains.annotations.Nullable p1: @org.jetbrains.annotations.Nullable 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: (@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 f20(/*0*/ p: (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.IntArray!>..@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!>..@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!>)>)): 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!>)>!>)): 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.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!>?)>?)): kotlin.Unit + public abstract fun f24(/*0*/ @org.jetbrains.annotations.NotNull p: (@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.IntArray!>..@org.jetbrains.annotations.NotNull kotlin.Array)): kotlin.Unit + public abstract fun f25(/*0*/ p: kotlin.Array<(out) @org.jetbrains.annotations.Nullable kotlin.IntArray!>!): kotlin.Unit + public abstract fun f26(/*0*/ p1: kotlin.Array<(out) (@org.jetbrains.annotations.Nullable kotlin.Array?..@org.jetbrains.annotations.Nullable kotlin.Array?)>!, /*1*/ p2: kotlin.Array<(out) @org.jetbrains.annotations.Nullable 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!>?)>?)): kotlin.Unit public abstract fun f27(/*0*/ @org.jetbrains.annotations.Nullable p: 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*/ 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 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 f32(/*0*/ p: test.G1..@org.jetbrains.annotations.NotNull kotlin.Array)>!, test.G1<@org.jetbrains.annotations.NotNull kotlin.IntArray!>!>!>!): kotlin.Unit + public abstract fun f33(/*0*/ p: test.G1<@org.jetbrains.annotations.NotNull kotlin.IntArray!>!): 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!>)>!, /*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!>)>!): 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 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 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 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 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!>!>)>!, 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!>!>!>!): 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!>!>)>!, 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: 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 p4: kotlin.IntArray!, /*4*/ p5: test.G2, out @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!): kotlin.Unit + public abstract fun f54(/*0*/ p1: test.G1!>!>..@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: 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 p4: @org.jetbrains.annotations.NotNull 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 f59(/*0*/ vararg x: kotlin.Int /*@org.jetbrains.annotations.NotNull 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 f60(/*0*/ @org.jetbrains.annotations.NotNull vararg x: kotlin.Int /*@org.jetbrains.annotations.Nullable 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: 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 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 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! /*(@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 f67(/*0*/ vararg x: @org.jetbrains.annotations.NotNull kotlin.IntArray! /*kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.IntArray!>!*/): kotlin.Unit + public abstract fun f68(/*0*/ @org.jetbrains.annotations.NotNull vararg x: @org.jetbrains.annotations.NotNull kotlin.IntArray! /*(@org.jetbrains.annotations.NotNull kotlin.Array<@org.jetbrains.annotations.NotNull kotlin.IntArray!>..@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 @@ -74,12 +74,12 @@ public/*package*/ interface ValueArguments { public abstract fun f72(/*0*/ @org.jetbrains.annotations.Nullable vararg x: 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 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: 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 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: kotlin.Array<(out) kotlin.IntArray!>! /*(@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) @org.jetbrains.annotations.NotNull kotlin.IntArray!>!>! /*kotlin.Array<(out) kotlin.Array<(out) kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.IntArray!>!>!>!*/): kotlin.Unit + public abstract fun f76(/*0*/ @org.jetbrains.annotations.NotNull vararg x: kotlin.Array<(out) @org.jetbrains.annotations.NotNull 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 @org.jetbrains.annotations.NotNull kotlin.Int>!>!>!, /*1*/ p2: kotlin.Array<(out) (@org.jetbrains.annotations.NotNull kotlin.Array..@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!>)>), /*4*/ @org.jetbrains.annotations.NotNull vararg p5: kotlin.Array<(out) kotlin.IntArray!>! /*(@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)*/) + 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.Array)>!, /*2*/ p3: kotlin.Array<(out) @org.jetbrains.annotations.NotNull 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!>)>), /*4*/ @org.jetbrains.annotations.NotNull vararg p5: kotlin.Array<(out) @org.jetbrains.annotations.NotNull kotlin.IntArray!>! /*(@org.jetbrains.annotations.NotNull kotlin.Array!>..@org.jetbrains.annotations.NotNull kotlin.Array!>)*/) } } diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsCompiledJavaTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsCompiledJavaTestGenerated.java index 2a20ae7718d..beefbdc02e5 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsCompiledJavaTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsCompiledJavaTestGenerated.java @@ -901,6 +901,18 @@ public class ForeignAnnotationsCompiledJavaTestGenerated extends AbstractForeign KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true); } + @Test + @TestMetadata("annotatedPrimitiveArray.kt") + public void testAnnotatedPrimitiveArray() throws Exception { + runTest("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray.kt"); + } + + @Test + @TestMetadata("annotatedPrimitiveArray_before.kt") + public void testAnnotatedPrimitiveArray_before() throws Exception { + runTest("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray_before.kt"); + } + @Test @TestMetadata("annotatedTypeArguments.kt") public void testAnnotatedTypeArguments() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsCompiledJavaWithPsiClassReadingTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsCompiledJavaWithPsiClassReadingTestGenerated.java index baa0fe402cc..be452bc8427 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsCompiledJavaWithPsiClassReadingTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsCompiledJavaWithPsiClassReadingTestGenerated.java @@ -901,6 +901,18 @@ public class ForeignAnnotationsCompiledJavaWithPsiClassReadingTestGenerated exte KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true); } + @Test + @TestMetadata("annotatedPrimitiveArray.kt") + public void testAnnotatedPrimitiveArray() throws Exception { + runTest("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray.kt"); + } + + @Test + @TestMetadata("annotatedPrimitiveArray_before.kt") + public void testAnnotatedPrimitiveArray_before() throws Exception { + runTest("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray_before.kt"); + } + @Test @TestMetadata("annotatedTypeArguments.kt") public void testAnnotatedTypeArguments() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsSourceJavaTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsSourceJavaTestGenerated.java index a97bd62c0c6..5d845a6b2a8 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsSourceJavaTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ForeignAnnotationsSourceJavaTestGenerated.java @@ -901,6 +901,18 @@ public class ForeignAnnotationsSourceJavaTestGenerated extends AbstractForeignAn KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true); } + @Test + @TestMetadata("annotatedPrimitiveArray.kt") + public void testAnnotatedPrimitiveArray() throws Exception { + runTest("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray.kt"); + } + + @Test + @TestMetadata("annotatedPrimitiveArray_before.kt") + public void testAnnotatedPrimitiveArray_before() throws Exception { + runTest("compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/misc/annotatedPrimitiveArray_before.kt"); + } + @Test @TestMetadata("annotatedTypeArguments.kt") public void testAnnotatedTypeArguments() throws Exception { diff --git a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt index 6d9c6641318..005af7a7098 100644 --- a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt +++ b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt @@ -285,6 +285,7 @@ enum class LanguageFeature( ProhibitAccessToEnumCompanionMembersInEnumConstructorCall(KOTLIN_1_9, kind = BUG_FIX), // KT-49110 ReferencesToSyntheticJavaProperties(KOTLIN_1_9), // KT-8575 CustomEqualsInInlineClasses(KOTLIN_1_9), // KT-24874 + EnhanceNullabilityOfPrimitiveArrays(KOTLIN_1_9, kind = BUG_FIX), // KT-54521 // Disabled for indefinite time. See KT-53751 diff --git a/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/AbstractSignatureParts.kt b/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/AbstractSignatureParts.kt index cad9223301f..bc37cc65810 100644 --- a/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/AbstractSignatureParts.kt +++ b/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/AbstractSignatureParts.kt @@ -30,7 +30,7 @@ abstract class AbstractSignatureParts { open val forceOnlyHeadTypeConstructor: Boolean get() = false - abstract val TAnnotation.forceWarning: Boolean + abstract fun TAnnotation.forceWarning(unenhancedType: KotlinTypeMarker?): Boolean abstract val KotlinTypeMarker.annotations: Iterable abstract val KotlinTypeMarker.enhancedForWarnings: KotlinTypeMarker? @@ -91,7 +91,7 @@ abstract class AbstractSignatureParts { } val annotationsMutability = annotationTypeQualifierResolver.extractMutability(composedAnnotation) - val annotationsNullability = annotationTypeQualifierResolver.extractNullability(composedAnnotation) { forceWarning } + val annotationsNullability = annotationTypeQualifierResolver.extractNullability(composedAnnotation) { forceWarning(type) } if (annotationsNullability != null) { return JavaTypeQualifiers( annotationsNullability.qualifier, annotationsMutability, diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/context.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/context.kt index dcae80a367e..01752971679 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/context.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/context.kt @@ -83,6 +83,7 @@ interface JavaResolverSettings { val correctNullabilityForNotNullTypeParameter: Boolean val typeEnhancementImprovementsInStrictMode: Boolean val ignoreNullabilityForErasedValueParameters: Boolean + val enhancePrimitiveArrays: Boolean object Default : JavaResolverSettings { override val correctNullabilityForNotNullTypeParameter: Boolean @@ -93,18 +94,23 @@ interface JavaResolverSettings { override val ignoreNullabilityForErasedValueParameters: Boolean get() = false + + override val enhancePrimitiveArrays: Boolean + get() = false } companion object { fun create( correctNullabilityForNotNullTypeParameter: Boolean, typeEnhancementImprovementsInStrictMode: Boolean, - ignoreNullabilityForErasedValueParameters: Boolean + ignoreNullabilityForErasedValueParameters: Boolean, + enhancePrimitiveArrays: Boolean, ): JavaResolverSettings = object : JavaResolverSettings { override val correctNullabilityForNotNullTypeParameter get() = correctNullabilityForNotNullTypeParameter override val typeEnhancementImprovementsInStrictMode get() = typeEnhancementImprovementsInStrictMode override val ignoreNullabilityForErasedValueParameters get() = ignoreNullabilityForErasedValueParameters + override val enhancePrimitiveArrays get() = enhancePrimitiveArrays } } } diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/types/JavaTypeResolver.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/types/JavaTypeResolver.kt index 22d88150d60..3a2232254ff 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/types/JavaTypeResolver.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/types/JavaTypeResolver.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMapper import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor import org.jetbrains.kotlin.descriptors.annotations.Annotations +import org.jetbrains.kotlin.descriptors.annotations.CompositeAnnotations import org.jetbrains.kotlin.load.java.extractNullabilityAnnotationOnBoundedWildcard import org.jetbrains.kotlin.types.TypeUsage.COMMON import org.jetbrains.kotlin.types.TypeUsage.SUPERTYPE @@ -69,13 +70,13 @@ class JavaTypeResolver( val annotations = LazyJavaAnnotations(c, arrayType, areAnnotationsFreshlySupported = true) if (primitiveType != null) { - val jetType = c.module.builtIns.getPrimitiveArrayKotlinType(primitiveType) - - jetType.replaceAnnotations(Annotations.create(annotations + jetType.annotations)) + val kotlinType = c.module.builtIns.getPrimitiveArrayKotlinType(primitiveType).let { + it.replaceAnnotations(CompositeAnnotations(it.annotations, annotations)) as SimpleType + } return if (attr.isForAnnotationParameter) - jetType - else KotlinTypeFactory.flexibleType(jetType, jetType.makeNullableAsSpecified(true)) + kotlinType + else KotlinTypeFactory.flexibleType(kotlinType, kotlinType.makeNullableAsSpecified(true)) } val componentType = transformJavaType( diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/signatureEnhancement.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/signatureEnhancement.kt index cde4e3e12d8..0fbc365cfca 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/signatureEnhancement.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/signatureEnhancement.kt @@ -249,11 +249,15 @@ private class SignatureParts( override val typeSystem: TypeSystemInferenceExtensionContext get() = SimpleClassicTypeSystemContext - override val AnnotationDescriptor.forceWarning: Boolean - get() = (this is PossiblyExternalAnnotationDescriptor && isIdeExternalAnnotation) || + override fun AnnotationDescriptor.forceWarning(unenhancedType: KotlinTypeMarker?): Boolean = + (this is PossiblyExternalAnnotationDescriptor && isIdeExternalAnnotation) || (this is LazyJavaAnnotationDescriptor && !enableImprovementsInStrictMode && (isFreshlySupportedTypeUseAnnotation || - containerApplicabilityType == AnnotationQualifierApplicabilityType.TYPE_PARAMETER_BOUNDS)) + containerApplicabilityType == AnnotationQualifierApplicabilityType.TYPE_PARAMETER_BOUNDS)) || + // Previously, type use annotations on primitive arrays were lost, so temporarily treat them as warnings. + (unenhancedType != null && KotlinBuiltIns.isPrimitiveArray(unenhancedType as KotlinType) && + annotationTypeQualifierResolver.isTypeUseAnnotation(this) && + !containerContext.components.settings.enhancePrimitiveArrays) override val KotlinTypeMarker.annotations: Iterable get() = (this as KotlinType).annotations