From 9bb7a29baa86eecf400b1231f7a662f5a366c766 Mon Sep 17 00:00:00 2001 From: pyos Date: Thu, 2 Sep 2021 12:18:49 +0200 Subject: [PATCH] FIR: disregard enhancements for warnings Warnings are not implemented yet, so don't produce errors either. --- .../enhancement/jsr305/NonNullNever.fir.txt | 2 +- .../FieldsAreNullable.fir.txt | 2 +- .../ForceFlexibility.fir.txt | 2 +- .../NullabilityFromOverridden.fir.txt | 26 +++++------ .../OverridingDefaultQualifier.fir.txt | 24 +++++----- .../ParametersAreNonnullByDefault.fir.txt | 2 +- ...rametersAreNonnullByDefaultPackage.fir.txt | 2 +- .../SpringNullable.fir.txt | 6 +-- .../SpringNullablePackage.fir.txt | 6 +-- .../fir/java/enhancement/javaTypeUtils.kt | 5 +- .../warnMode/AnnotatedBoundsOfWildcard.fir.kt | 18 ++++---- .../jspecify/warnMode/Captured.fir.kt | 17 ------- .../java8Tests/jspecify/warnMode/Captured.kt | 1 + .../jspecify/warnMode/Defaults.fir.kt | 10 ++-- .../warnMode/IgnoreAnnotations.fir.kt | 10 ++-- .../warnMode/NonPlatformTypeParameter.fir.kt | 6 +-- .../NullnessUnspecifiedTypeParameter.fir.kt | 10 ++-- .../jspecify/warnMode/SelfType.fir.kt | 6 +-- .../jspecify/warnMode/Simple.fir.kt | 6 +-- .../TypeArgumentsFromParameterBounds.fir.kt | 6 +-- .../warnMode/TypeParameterBounds.fir.kt | 12 ++--- .../moduleAnnotations/warn/basic.fir.kt | 2 +- .../composeWithClassDefaultAnnotation.fir.kt | 2 +- ...composeWithPackageDefaultAnnotation.fir.kt | 2 +- .../warn/dependentModulesNullMarked.fir.kt | 2 +- .../warn/dotNamedModule.fir.kt | 2 +- .../warn/inheritanceAcrossModules.fir.kt | 4 +- .../warn/nestedClasses.fir.kt | 8 ++-- .../severalModulesDifferentPackages.fir.kt | 2 +- .../tests/androidRecently.fir.kt | 22 ++++----- .../tests/jsr305/nullabilityWarnings/elvis.kt | 1 + .../fromPlatformTypes/arithmetic.fir.kt | 4 +- .../fromPlatformTypes/array.fir.kt | 4 +- .../fromPlatformTypes/assignToVar.fir.kt | 2 +- .../fromPlatformTypes/conditions.fir.kt | 12 ++--- .../fromPlatformTypes/dataFlowInfo.fir.kt | 6 +-- .../delegatedProperties.fir.kt | 2 +- .../derefenceExtension.fir.kt | 4 +- .../fromPlatformTypes/derefenceMember.fir.kt | 4 +- .../fromPlatformTypes/expectedType.fir.kt | 2 +- .../fromPlatformTypes/for.fir.kt | 2 +- .../functionArguments.fir.kt | 2 +- .../fromPlatformTypes/invoke.fir.kt | 2 +- .../fromPlatformTypes/kt6829.fir.kt | 2 +- .../fromPlatformTypes/multiDeclaration.fir.kt | 2 +- .../fromPlatformTypes/passToJava.fir.kt | 20 ++++---- .../fromPlatformTypes/primitiveArray.fir.kt | 4 +- .../uselessElvisRightIsNull.fir.kt | 2 +- .../nullabilityWarnings/localInference.fir.kt | 4 +- .../nullabilityGenerics.fir.kt | 10 ++-- .../nullabilityNicknames.fir.kt | 12 ++--- .../{elvis.fir.kt => safeCalls.fir.kt} | 27 +++-------- .../jsr305/nullabilityWarnings/safeCalls.kt | 1 - .../equalsOnNonNull.fir.kt | 46 +++++++++++++++++++ .../typeQualifierDefault/equalsOnNonNull.kt | 1 - .../fieldsAreNullable.fir.kt | 2 +- .../nullabilityFromOverridden.fir.kt | 18 ++++---- .../overridingDefaultQualifier.fir.kt | 32 ++++++------- .../parametersAreNonnullByDefault.fir.kt | 2 +- ...arametersAreNonnullByDefaultPackage.fir.kt | 2 +- .../springNullable.fir.kt | 8 ++-- .../springNullablePackage.fir.kt | 8 ++-- .../migration/customMigration.fir.kt | 4 +- .../migration/globalIgnore.fir.kt | 4 +- .../globalWarningMigrationIgnore.fir.kt | 4 +- .../migration/migrationError.fir.kt | 6 +-- .../migration/migrationIgnore.fir.kt | 6 +-- .../migration/migrationWarning.fir.kt | 4 +- .../migration/overrideConflicts.fir.kt | 4 +- .../migration/specialCollision.fir.kt | 35 ++++++++++++++ .../migration/specialCollision.kt | 1 - .../migration/stateRefinement.fir.kt | 8 ++-- .../tests/kt47920.fir.kt | 11 ----- .../foreignAnnotationsTests/tests/kt47920.kt | 1 + .../tests/multiple.fir.kt | 14 +++--- .../tests/rxjava3Default.fir.kt | 14 +++--- .../tests/rxjava3Warnings.fir.kt | 14 +++--- .../defaultAndNicknameMigrationPolicy.fir.kt | 2 +- .../return/TypeParamOfClass.fir.txt | 2 +- 79 files changed, 325 insertions(+), 284 deletions(-) delete mode 100644 compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/Captured.fir.kt rename compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/{elvis.fir.kt => safeCalls.fir.kt} (64%) create mode 100644 compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/equalsOnNonNull.fir.kt create mode 100644 compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/specialCollision.fir.kt delete mode 100644 compiler/testData/diagnostics/foreignAnnotationsTests/tests/kt47920.fir.kt diff --git a/compiler/fir/analysis-tests/testData/enhancement/jsr305/NonNullNever.fir.txt b/compiler/fir/analysis-tests/testData/enhancement/jsr305/NonNullNever.fir.txt index 480dfc2cda8..79e06670c4a 100644 --- a/compiler/fir/analysis-tests/testData/enhancement/jsr305/NonNullNever.fir.txt +++ b/compiler/fir/analysis-tests/testData/enhancement/jsr305/NonNullNever.fir.txt @@ -5,7 +5,7 @@ public open class NonNullNever : R|kotlin/Any| { @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.NEVER|()) public open field field: R|kotlin/String?| - @R|MyNullable|() public open fun foo(@R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.NEVER|()) x: R|kotlin/String?|, @R|MyNullable|() y: R|kotlin/CharSequence?|): R|kotlin/String?| + @R|MyNullable|() public open fun foo(@R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.NEVER|()) x: R|kotlin/String?|, @R|MyNullable|() y: R|ft|): R|ft| public constructor(): R|NonNullNever| diff --git a/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/FieldsAreNullable.fir.txt b/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/FieldsAreNullable.fir.txt index f9df6ad0804..e5d5ed7c754 100644 --- a/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/FieldsAreNullable.fir.txt +++ b/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/FieldsAreNullable.fir.txt @@ -1,5 +1,5 @@ @R|FieldsAreNullable|() public open class A : R|kotlin/Any| { - public open field field: R|kotlin/String?| + public open field field: R|ft| @R|javax/annotation/Nonnull|() public open field nonNullField: R|@EnhancedNullability kotlin/String| diff --git a/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/ForceFlexibility.fir.txt b/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/ForceFlexibility.fir.txt index 4e5e5b7a452..28b60ce2636 100644 --- a/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/ForceFlexibility.fir.txt +++ b/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/ForceFlexibility.fir.txt @@ -1,5 +1,5 @@ @R|spr/NonNullApi|() public open class A : R|kotlin/Any| { - public open fun foo(x: R|@EnhancedNullability kotlin/String|, @R|spr/Nullable|() y: R|kotlin/CharSequence?|): R|@EnhancedNullability kotlin/String| + public open fun foo(x: R|ft|, @R|spr/Nullable|() y: R|ft|): R|ft| @R|spr/ForceFlexibility|() public open fun bar(x: R|ft|, @R|javax/annotation/Nonnull|() y: R|@EnhancedNullability kotlin/CharSequence|): R|ft| diff --git a/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/NullabilityFromOverridden.fir.txt b/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/NullabilityFromOverridden.fir.txt index 44dc971c5f2..f3c11425b1d 100644 --- a/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/NullabilityFromOverridden.fir.txt +++ b/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/NullabilityFromOverridden.fir.txt @@ -1,55 +1,55 @@ @R|NonNullApi|() public open class A : R|kotlin/Any| { - public open fun foo1(x: R|@EnhancedNullability kotlin/String|): R|@EnhancedNullability kotlin/String| + public open fun foo1(x: R|ft|): R|ft| - public open fun foo2(x: R|@EnhancedNullability kotlin/String|): R|@EnhancedNullability kotlin/String| + public open fun foo2(x: R|ft|): R|ft| - public open fun foo3(x: R|@EnhancedNullability kotlin/String|): R|@EnhancedNullability kotlin/String| + public open fun foo3(x: R|ft|): R|ft| @R|javax/annotation/Nullable|() public open fun bar1(@R|javax/annotation/Nullable|() x: R|kotlin/String?|): R|kotlin/String?| @R|javax/annotation/Nullable|() public open fun bar2(@R|javax/annotation/Nullable|() x: R|kotlin/String?|): R|kotlin/String?| - public open fun baz(@R|javax/annotation/Nonnull|() x: R|@EnhancedNullability kotlin/String|): R|@EnhancedNullability kotlin/String| + public open fun baz(@R|javax/annotation/Nonnull|() x: R|@EnhancedNullability kotlin/String|): R|ft| public constructor(): R|A| } @R|NonNullApi|() public abstract interface AInt : R|kotlin/Any| { - public abstract fun foo1(x: R|@EnhancedNullability kotlin/String|): R|@EnhancedNullability kotlin/CharSequence| + public abstract fun foo1(x: R|ft|): R|ft| - public abstract fun foo2(x: R|@EnhancedNullability kotlin/String|): R|@EnhancedNullability kotlin/CharSequence| + public abstract fun foo2(x: R|ft|): R|ft| - public abstract fun foo3(x: R|@EnhancedNullability kotlin/String|): R|@EnhancedNullability kotlin/CharSequence| + public abstract fun foo3(x: R|ft|): R|ft| @R|javax/annotation/Nullable|() public abstract fun bar1(@R|javax/annotation/Nullable|() x: R|kotlin/String?|): R|kotlin/CharSequence?| @R|javax/annotation/Nullable|() public abstract fun bar2(@R|javax/annotation/Nullable|() x: R|kotlin/String?|): R|kotlin/CharSequence?| - public abstract fun baz(@R|javax/annotation/Nonnull|() x: R|@EnhancedNullability kotlin/String|): R|@EnhancedNullability kotlin/CharSequence| + public abstract fun baz(@R|javax/annotation/Nonnull|() x: R|@EnhancedNullability kotlin/String|): R|ft| } @R|NullableApi|() public open class B : R|A|, R|AInt| { - public open fun foo1(x: R|@EnhancedNullability kotlin/String|): R|@EnhancedNullability kotlin/String| + public open fun foo1(x: R|ft|): R|ft| @R|javax/annotation/Nonnull|() public open fun foo2(@R|javax/annotation/Nonnull|() x: R|@EnhancedNullability kotlin/String|): R|@EnhancedNullability kotlin/String| public open fun bar1(x: R|kotlin/String?|): R|kotlin/String?| - public open fun baz(x: R|@EnhancedNullability kotlin/String|): R|@EnhancedNullability kotlin/String| + public open fun baz(x: R|@EnhancedNullability kotlin/String|): R|ft| public constructor(): R|B| } @R|NonNullApi|() public open class C : R|A|, R|AInt| { - public open fun foo1(x: R|@EnhancedNullability kotlin/String|): R|@EnhancedNullability kotlin/String| + public open fun foo1(x: R|ft|): R|ft| - public open fun foo2(@R|javax/annotation/Nonnull|() x: R|@EnhancedNullability kotlin/String|): R|@EnhancedNullability kotlin/String| + public open fun foo2(@R|javax/annotation/Nonnull|() x: R|@EnhancedNullability kotlin/String|): R|ft| public open fun bar1(x: R|kotlin/String?|): R|kotlin/String?| @R|javax/annotation/Nullable|() public open fun bar2(@R|javax/annotation/Nullable|() x: R|kotlin/String?|): R|kotlin/String?| - public open fun baz(x: R|@EnhancedNullability kotlin/String|): R|@EnhancedNullability kotlin/String| + public open fun baz(x: R|@EnhancedNullability kotlin/String|): R|ft| public constructor(): R|C| diff --git a/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/OverridingDefaultQualifier.fir.txt b/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/OverridingDefaultQualifier.fir.txt index d49cc5ab9eb..9557eaaf2d1 100644 --- a/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/OverridingDefaultQualifier.fir.txt +++ b/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/OverridingDefaultQualifier.fir.txt @@ -1,24 +1,24 @@ @R|NonNullApi|() public open class A : R|kotlin/Any| { - public open field field: R|@EnhancedNullability kotlin/String| + public open field field: R|ft| - public open fun foo(x: R|@EnhancedNullability kotlin/String|, @R|javax/annotation/CheckForNull|() y: R|kotlin/CharSequence?|): R|@EnhancedNullability kotlin/String| + public open fun foo(x: R|ft|, @R|javax/annotation/CheckForNull|() y: R|kotlin/CharSequence?|): R|ft| - @R|NullableApi|() public open fun foobar(x: R|kotlin/String?|, @R|NonNullApi|() y: R|@EnhancedNullability kotlin/CharSequence|): R|kotlin/String?| + @R|NullableApi|() public open fun foobar(x: R|ft|, @R|NonNullApi|() y: R|ft|): R|ft| - public open fun bar(): R|@EnhancedNullability kotlin/String| + public open fun bar(): R|ft| @R|javax/annotation/Nullable|() public open fun baz(): R|ft>?, kotlin/collections/List>?>| public constructor(): R|A| @R|NullableApi|() public open inner class B : R|kotlin/Any| { - public open field field: R|kotlin/String?| + public open field field: R|ft| - public open fun foo(x: R|kotlin/String?|, @R|javax/annotation/Nonnull|() y: R|@EnhancedNullability kotlin/CharSequence|): R|kotlin/String?| + public open fun foo(x: R|ft|, @R|javax/annotation/Nonnull|() y: R|@EnhancedNullability kotlin/CharSequence|): R|ft| - @R|NonNullApi|() public open fun foobar(x: R|@EnhancedNullability kotlin/String|, @R|NullableApi|() y: R|kotlin/CharSequence?|): R|@EnhancedNullability kotlin/String| + @R|NonNullApi|() public open fun foobar(x: R|ft|, @R|NullableApi|() y: R|ft|): R|ft| - public open fun bar(): R|kotlin/String?| + public open fun bar(): R|ft| @R|javax/annotation/Nullable|() public open fun baz(): R|ft>?, kotlin/collections/List>?>| @@ -26,13 +26,13 @@ } @R|FieldsAreNullable|() public open inner class C : R|kotlin/Any| { - public open field field: R|kotlin/String?| + public open field field: R|ft| - public open fun foo(x: R|@EnhancedNullability kotlin/String|, @R|javax/annotation/Nullable|() y: R|kotlin/CharSequence?|): R|@EnhancedNullability kotlin/String| + public open fun foo(x: R|ft|, @R|javax/annotation/Nullable|() y: R|kotlin/CharSequence?|): R|ft| - @R|NullableApi|() public open fun foobar(x: R|kotlin/String?|, @R|javax/annotation/Nullable|() y: R|kotlin/CharSequence?|): R|kotlin/String?| + @R|NullableApi|() public open fun foobar(x: R|ft|, @R|javax/annotation/Nullable|() y: R|kotlin/CharSequence?|): R|ft| - public open fun bar(): R|@EnhancedNullability kotlin/String| + public open fun bar(): R|ft| @R|javax/annotation/Nullable|() public open fun baz(): R|ft>?, kotlin/collections/List>?>| diff --git a/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/ParametersAreNonnullByDefault.fir.txt b/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/ParametersAreNonnullByDefault.fir.txt index 2b9298b719b..96f49fe9531 100644 --- a/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/ParametersAreNonnullByDefault.fir.txt +++ b/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/ParametersAreNonnullByDefault.fir.txt @@ -1,7 +1,7 @@ @R|javax/annotation/ParametersAreNonnullByDefault|() public open class A : R|kotlin/Any| { @R|javax/annotation/Nullable|() public open field field: R|kotlin/String?| - public open fun foo(q: R|@EnhancedNullability kotlin/String|, @R|javax/annotation/Nonnull|() x: R|@EnhancedNullability kotlin/String|, @R|javax/annotation/CheckForNull|() y: R|kotlin/CharSequence?|): R|ft| + public open fun foo(q: R|ft|, @R|javax/annotation/Nonnull|() x: R|@EnhancedNullability kotlin/String|, @R|javax/annotation/CheckForNull|() y: R|kotlin/CharSequence?|): R|ft| @R|javax/annotation/Nonnull|() public open fun bar(): R|@EnhancedNullability kotlin/String| diff --git a/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/ParametersAreNonnullByDefaultPackage.fir.txt b/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/ParametersAreNonnullByDefaultPackage.fir.txt index 0e915c2fdea..eb7b2b5c972 100644 --- a/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/ParametersAreNonnullByDefaultPackage.fir.txt +++ b/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/ParametersAreNonnullByDefaultPackage.fir.txt @@ -1,7 +1,7 @@ public open class A : R|kotlin/Any| { @R|javax/annotation/Nullable|() public open field field: R|kotlin/String?| - public open fun foo(q: R|@EnhancedNullability kotlin/String|, @R|javax/annotation/Nonnull|() x: R|@EnhancedNullability kotlin/String|, @R|javax/annotation/CheckForNull|() y: R|kotlin/CharSequence?|): R|ft| + public open fun foo(q: R|ft|, @R|javax/annotation/Nonnull|() x: R|@EnhancedNullability kotlin/String|, @R|javax/annotation/CheckForNull|() y: R|kotlin/CharSequence?|): R|ft| @R|javax/annotation/Nonnull|() public open fun bar(): R|@EnhancedNullability kotlin/String| diff --git a/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/SpringNullable.fir.txt b/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/SpringNullable.fir.txt index 3d0a96f1a44..254685a3342 100644 --- a/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/SpringNullable.fir.txt +++ b/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/SpringNullable.fir.txt @@ -1,11 +1,11 @@ @R|spr/NonNullApi|() public open class A : R|kotlin/Any| { public open field field: R|ft| - public open fun foo(x: R|@EnhancedNullability kotlin/String|, @R|spr/Nullable|() y: R|kotlin/CharSequence?|): R|@EnhancedNullability kotlin/String| + public open fun foo(x: R|ft|, @R|spr/Nullable|() y: R|ft|): R|ft| - public open fun bar(): R|@EnhancedNullability kotlin/String| + public open fun bar(): R|ft| - @R|spr/Nullable|() public open fun baz(): R|ft>?, kotlin/collections/List>?>| + @R|spr/Nullable|() public open fun baz(): R|ft>, kotlin/collections/List>?>| public constructor(): R|A| diff --git a/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/SpringNullablePackage.fir.txt b/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/SpringNullablePackage.fir.txt index 5279f82490d..d9da7324299 100644 --- a/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/SpringNullablePackage.fir.txt +++ b/compiler/fir/analysis-tests/testData/enhancement/jsr305/typeQualifierDefault/SpringNullablePackage.fir.txt @@ -1,11 +1,11 @@ public open class A : R|kotlin/Any| { public open field field: R|ft| - public open fun foo(x: R|@EnhancedNullability kotlin/String|, @R|spr/Nullable|() y: R|kotlin/CharSequence?|): R|@EnhancedNullability kotlin/String| + public open fun foo(x: R|ft|, @R|spr/Nullable|() y: R|ft|): R|ft| - public open fun bar(): R|@EnhancedNullability kotlin/String| + public open fun bar(): R|ft| - @R|spr/Nullable|() public open fun baz(): R|ft>?, kotlin/collections/List>?>| + @R|spr/Nullable|() public open fun baz(): R|ft>, kotlin/collections/List>?>| public constructor(): R|test/A| diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/javaTypeUtils.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/javaTypeUtils.kt index d716b275b32..6ab2bd2256b 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/javaTypeUtils.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/javaTypeUtils.kt @@ -113,7 +113,9 @@ private fun ConeKotlinType.enhanceInflexibleType( val effectiveQualifiers = qualifiers(index) val enhancedTag = lookupTag.enhanceMutability(effectiveQualifiers, position) - val nullabilityFromQualifiers = effectiveQualifiers.nullability.takeIf { shouldEnhance } + // TODO: implement warnings + val nullabilityFromQualifiers = effectiveQualifiers.nullability + .takeIf { shouldEnhance && !effectiveQualifiers.isNullabilityQualifierForWarning } val enhancedNullability = when (nullabilityFromQualifiers) { NullabilityQualifier.NULLABLE -> true NullabilityQualifier.NOT_NULL -> false @@ -138,7 +140,6 @@ private fun ConeKotlinType.enhanceInflexibleType( return null // absolutely no changes } - // TODO: val nullabilityForWarning = enhancedNullabilityAttribute != null && effectiveQualifiers.isNullabilityQualifierForWarning val mergedArguments = Array(typeArguments.size) { enhancedArguments[it] ?: typeArguments[it] } val mergedAttributes = if (shouldAddAttribute) attributes + CompilerConeAttributes.EnhancedNullability else attributes val enhancedType = enhancedTag.constructType(mergedArguments, enhancedNullability, mergedAttributes) diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/AnnotatedBoundsOfWildcard.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/AnnotatedBoundsOfWildcard.fir.kt index ca25a05d5c3..fb11c5e00c1 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/AnnotatedBoundsOfWildcard.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/AnnotatedBoundsOfWildcard.fir.kt @@ -43,8 +43,8 @@ fun main( b: AnnotatedBoundsOfWildcard ): Unit { - b.superAsIs(aAnyNotNullNotNullNotNull) - b.superAsIs(aAnyNotNullNotNullNull) + b.superAsIs(aAnyNotNullNotNullNotNull) + b.superAsIs(aAnyNotNullNotNullNull) b.superAsIs(aAnyNotNullNullNotNull) b.superAsIs(aAnyNotNullNullNull) @@ -53,10 +53,10 @@ fun main( b.superNotNull(aAnyNotNullNullNotNull) b.superNotNull(aAnyNotNullNullNull) - b.superNullable(aAnyNotNullNotNullNotNull) - b.superNullable(aAnyNotNullNotNullNull) - b.superNullable(aAnyNotNullNullNotNull) - b.superNullable(aAnyNotNullNullNull) + b.superNullable(aAnyNotNullNotNullNotNull) + b.superNullable(aAnyNotNullNotNullNull) + b.superNullable(aAnyNotNullNullNotNull) + b.superNullable(aAnyNotNullNullNull) b.extendsAsIs(aNotNullNotNullNotNull) b.extendsAsIs(aNotNullNotNullNull) @@ -64,9 +64,9 @@ fun main( b.extendsAsIs(aNotNullNullNull) b.extendsNotNull(aNotNullNotNullNotNull) - b.extendsNotNull(aNotNullNotNullNull) - b.extendsNotNull(aNotNullNullNotNull) - b.extendsNotNull(aNotNullNullNull) + b.extendsNotNull(aNotNullNotNullNull) + b.extendsNotNull(aNotNullNullNotNull) + b.extendsNotNull(aNotNullNullNull) b.extendsNullable(aNotNullNotNullNotNull) b.extendsNullable(aNotNullNotNullNull) diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/Captured.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/Captured.fir.kt deleted file mode 100644 index ccaffbd21df..00000000000 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/Captured.fir.kt +++ /dev/null @@ -1,17 +0,0 @@ -// JSPECIFY_STATE: warn -// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode -// FILE: J1.java -import org.jetbrains.annotations.Nullable; - -public interface J1 { - @Nullable - public static T foo(J1 x) { return null; } -} - -// FILE: J2.java -import org.jspecify.nullness.Nullable; - -public interface J2 extends J1 { } - -// FILE: kotlin.kt -private fun J2<*>.bar() = J1.foo(this) diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/Captured.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/Captured.kt index a6d3d7413b2..7261ab9c634 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/Captured.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/Captured.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // JSPECIFY_STATE: warn // !LANGUAGE: +TypeEnhancementImprovementsInStrictMode // FILE: J1.java diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/Defaults.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/Defaults.fir.kt index 090db16ba6b..d08b4945416 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/Defaults.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/Defaults.fir.kt @@ -26,20 +26,20 @@ public class Foo { // FILE: main.kt fun main(a: Defaults, x: Foo): Unit { - a.everythingNotNullable(null).foo() + a.everythingNotNullable(null).foo() a.everythingNotNullable(x).foo() - a.everythingNullable(null).foo() + a.everythingNullable(null).foo() a.everythingUnknown(null).foo() - a.mixed(null).foo() - a.mixed(x).foo() + a.mixed(null).foo() + a.mixed(x).foo() a.explicitlyNullnessUnspecified(x).foo() a.explicitlyNullnessUnspecified(null).foo() a.defaultField.foo() - a.field.foo() + a.field.foo() } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/IgnoreAnnotations.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/IgnoreAnnotations.fir.kt index c49f4d4532c..946a4b61e1e 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/IgnoreAnnotations.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/IgnoreAnnotations.fir.kt @@ -29,15 +29,15 @@ public class Derived extends Base { } // FILE: main.kt fun main(a: IgnoreAnnotations, x: Derived): Unit { - a.foo(x, null).foo() - a.foo(null, x).foo() + a.foo(x, null).foo() + a.foo(null, x).foo() - a.field.foo() + a.field.foo() - a.everythingNotNullable(null).foo() + a.everythingNotNullable(null).foo() a.everythingNotNullable(x).foo() - a.everythingNullable(null).foo() + a.everythingNullable(null).foo() a.everythingUnknown(null).foo() } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/NonPlatformTypeParameter.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/NonPlatformTypeParameter.fir.kt index 0fb57a464ec..c07db7b6b46 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/NonPlatformTypeParameter.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/NonPlatformTypeParameter.fir.kt @@ -17,11 +17,11 @@ public class Test {} fun main(a1: NonPlatformTypeParameter, a2: NonPlatformTypeParameter, x: T): Unit { a1.foo(null) a1.bar(null) - a1.bar(null) + a1.bar(null) a1.bar(x) - a2.foo(null) + a2.foo(null) a2.bar(null) - a2.bar(null) + a2.bar(null) a2.bar(x) } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/NullnessUnspecifiedTypeParameter.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/NullnessUnspecifiedTypeParameter.fir.kt index 0d140526495..65e055542fa 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/NullnessUnspecifiedTypeParameter.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/NullnessUnspecifiedTypeParameter.fir.kt @@ -13,18 +13,18 @@ public class NullnessUnspecifiedTypeParameter { public class Test {} // FILE: main.kt -fun main(a1: NullnessUnspecifiedTypeParameter, a2: NullnessUnspecifiedTypeParameter<Any?>, x: Test): Unit { - a1.foo(null) +fun main(a1: NullnessUnspecifiedTypeParameter, a2: NullnessUnspecifiedTypeParameter, x: Test): Unit { + a1.foo(null) a1.foo(1) a2.foo(null) a2.foo(1) - a1.bar(null, null) - a1.bar(x, null) + a1.bar(null, null) + a1.bar(x, null) a1.bar(x, 1) - a2.bar(null, null) + a2.bar(null, null) a2.bar(x, null) a2.bar(x, 1) } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/SelfType.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/SelfType.fir.kt index df115e1875d..778782e4bcb 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/SelfType.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/SelfType.fir.kt @@ -40,15 +40,15 @@ public class CKN extends C<@Nullable CK> {} // FILE: main.kt fun main(ak: AK, akn: AKN, bk: BK, ck: CK, ckn: CKN): Unit { ak.foo(ak) - ak.foo(null) + ak.foo(null) akn.foo(null) // the corresponding warning/error is present on the Java side bk.foo(bk) - bk.foo(null) + bk.foo(null) ck.foo(ck) - ck.foo(null) + ck.foo(null) ckn.foo(null) // the corresponding warning/error is present on the Java side } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/Simple.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/Simple.fir.kt index 5890b68f3c4..d83a6f47fbd 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/Simple.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/Simple.fir.kt @@ -27,10 +27,10 @@ public class Derived extends Base { // FILE: main.kt fun main(a: Simple, x: Derived): Unit { - a.foo(x, null).foo() - a.foo(null, x).foo() + a.foo(x, null).foo() + a.foo(null, x).foo() a.bar().foo() - a.field.foo() + a.field.foo() } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/TypeArgumentsFromParameterBounds.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/TypeArgumentsFromParameterBounds.fir.kt index 3b635f34474..6113d95708c 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/TypeArgumentsFromParameterBounds.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/TypeArgumentsFromParameterBounds.fir.kt @@ -34,9 +34,9 @@ fun main( a: A, b: B ): Unit { a.bar(aNotNullNotNullNotNull) - a.bar(aNotNullNotNullNull) - a.bar(aNotNullNullNotNull) - a.bar(aNotNullNullNull) + a.bar(aNotNullNotNullNull) + a.bar(aNotNullNullNotNull) + a.bar(aNotNullNullNull) b.bar(aNotNullNotNullNotNull) b.bar(aNotNullNotNullNull) diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/TypeParameterBounds.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/TypeParameterBounds.fir.kt index d94132a205c..d03604d890b 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/TypeParameterBounds.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java8Tests/jspecify/warnMode/TypeParameterBounds.fir.kt @@ -20,20 +20,20 @@ public class B { public class Test {} // FILE: main.kt -fun main(a1: A<Any?>, a2: A, b1: B<Any?>, b2: B, x: T): Unit { +fun main(a1: A, a2: A, b1: B, b2: B, x: T): Unit { a1.foo(null) - a1.bar<T?>(null) + a1.bar(null) a1.bar(x) a2.foo(null) - a2.bar<T?>(null) + a2.bar(null) a2.bar(x) b1.foo(null) - b1.bar<T?>(null) + b1.bar(null) b1.bar(x) - b2.foo(null) - b2.bar<T?>(null) + b2.foo(null) + b2.bar(null) b2.bar(x) } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/basic.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/basic.fir.kt index 9faee915fa0..140f5cd7446 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/basic.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/basic.fir.kt @@ -21,5 +21,5 @@ public class Test { import test.Test fun main(x: Test) { - x.foo(null) + x.foo(null) } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/composeWithClassDefaultAnnotation.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/composeWithClassDefaultAnnotation.fir.kt index 0225adb71b7..f04a05cbad9 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/composeWithClassDefaultAnnotation.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/composeWithClassDefaultAnnotation.fir.kt @@ -24,5 +24,5 @@ public class Test { import test.Test fun main(x: Test) { - x.foo(null) + x.foo(null) } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/composeWithPackageDefaultAnnotation.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/composeWithPackageDefaultAnnotation.fir.kt index a38b728d613..a8c6dea1146 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/composeWithPackageDefaultAnnotation.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/composeWithPackageDefaultAnnotation.fir.kt @@ -27,5 +27,5 @@ public class Test { import test.Test fun main(x: Test) { - x.foo(null) + x.foo(null) } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/dependentModulesNullMarked.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/dependentModulesNullMarked.fir.kt index 05c54c6a531..5a18583c504 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/dependentModulesNullMarked.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/dependentModulesNullMarked.fir.kt @@ -26,5 +26,5 @@ public class Test { // FILE: main.kt fun main(y: test2.Test) { - y.foo(null) + y.foo(null) } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/dotNamedModule.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/dotNamedModule.fir.kt index b94e06b2d0e..a6833e397c4 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/dotNamedModule.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/dotNamedModule.fir.kt @@ -21,5 +21,5 @@ public class Test { import my.test.Test fun main(x: Test) { - x.foo(null) + x.foo(null) } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/inheritanceAcrossModules.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/inheritanceAcrossModules.fir.kt index 812190846f1..b3a6eb69c54 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/inheritanceAcrossModules.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/inheritanceAcrossModules.fir.kt @@ -39,7 +39,7 @@ import test1.Test1 import test2.Test2 fun main(x: Test1, y: Test2) { - x.foo(null) - y.foo(null) + x.foo(null) + y.foo(null) y.foo2(null) } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/nestedClasses.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/nestedClasses.fir.kt index 33d9b2d0d83..1e674e3e15a 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/nestedClasses.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/nestedClasses.fir.kt @@ -35,9 +35,9 @@ public class Test { import test.Test fun main(x: Test) { - x.Test3().foo(null) - x.Test3().Test5().foo(null) + x.Test3().foo(null) + x.Test3().Test5().foo(null) - Test.Test2().foo(null) - Test.Test2().Test5().foo(null) + Test.Test2().foo(null) + Test.Test2().Test5().foo(null) } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/severalModulesDifferentPackages.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/severalModulesDifferentPackages.fir.kt index be6f1e6cf8e..5e99d57f9fe 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/severalModulesDifferentPackages.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/java9Tests/jspecify/moduleAnnotations/warn/severalModulesDifferentPackages.fir.kt @@ -34,6 +34,6 @@ public class Test { // FILE: main.kt fun main(x: test1.Test, y: test2.Test) { - x.foo(null) + x.foo(null) y.foo(null) } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/androidRecently.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/androidRecently.fir.kt index c447a1497c2..5aab99e6885 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/androidRecently.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/androidRecently.fir.kt @@ -26,27 +26,27 @@ public class A { // FILE: main.kt fun main(a: A, a1: A) { a.foo("", null)?.length - a.foo("", null).length - a.foo(null, "").length + a.foo("", null).length + a.foo(null, "").length a.bar().length - a.bar()!!.length + a.bar()!!.length a.field?.length - a.field.length + a.field.length - a.baz("").length + a.baz("").length a.baz("")?.length - a.baz(null).length + a.baz(null).length a1.baz("")!!.length - a1.baz(null)!!.length + a1.baz(null)!!.length a.baz2("").length - a.baz2("")?.length - a.baz2("")!!.length + a.baz2("")?.length + a.baz2("")!!.length a.baz2(null).length - a.baz2(null)?.length - a.baz2(null)!!.length + a.baz2(null)?.length + a.baz2(null)!!.length } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/elvis.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/elvis.kt index 0d8430398c6..2d84b7df1c8 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/elvis.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/elvis.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // !DIAGNOSTICS: -UNUSED_VARIABLE // JSR305_GLOBAL_REPORT: warn diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/arithmetic.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/arithmetic.fir.kt index e58a324fba4..1859cef38fa 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/arithmetic.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/arithmetic.fir.kt @@ -16,11 +16,11 @@ fun test() { var platformJ = J.staticJ +platformNN - +platformN + +platformN +platformJ ++platformNN - ++platformN + ++platformN ++platformJ platformNN++ diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/array.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/array.fir.kt index 3e9b0e3b1aa..f506b6731ef 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/array.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/array.fir.kt @@ -16,10 +16,10 @@ fun test() { val platformJ = J.staticJ platformNN[0] - platformN[0] + platformN[0] platformJ[0] platformNN[0] = 1 - platformN[0] = 1 + platformN[0] = 1 platformJ[0] = 1 } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/assignToVar.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/assignToVar.fir.kt index bd8a5630257..387d548304f 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/assignToVar.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/assignToVar.fir.kt @@ -15,7 +15,7 @@ var n: J? = J() fun test() { v = J.staticNN - v = J.staticN + v = J.staticN v = J.staticJ n = J.staticNN diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/conditions.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/conditions.fir.kt index b78da5dc423..4d13b2b227b 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/conditions.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/conditions.fir.kt @@ -17,26 +17,26 @@ fun test() { val platformJ = J.staticJ if (platformNN) {} - if (platformN) {} + if (platformN) {} if (platformJ) {} while (platformNN) {} - while (platformN) {} + while (platformN) {} while (platformJ) {} do {} while (platformNN) - do {} while (platformN) + do {} while (platformN) do {} while (platformJ) platformNN && false - platformN && false + platformN && false platformJ && false platformNN || false - platformN || false + platformN || false platformJ || false !platformNN - !platformN + !platformN !platformJ } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/dataFlowInfo.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/dataFlowInfo.fir.kt index 61e7a5d9d3f..6d4fae5a67b 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/dataFlowInfo.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/dataFlowInfo.fir.kt @@ -12,15 +12,15 @@ public class J { // FILE: k.kt fun test() { val n = J.staticN - foo(n) - J.staticNN = n + foo(n) + J.staticNN = n if (n != null) { foo(n) J.staticNN = n } val x: J? = null - J.staticNN = x + J.staticNN = x if (x != null) { J.staticNN = x } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/delegatedProperties.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/delegatedProperties.fir.kt index 25cf058091f..d02f5ceee7c 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/delegatedProperties.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/delegatedProperties.fir.kt @@ -17,5 +17,5 @@ public class J { // FILE: k.kt var A by J.staticNN -var B by J.staticN +var B by J.staticN var C by J.staticJ diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/derefenceExtension.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/derefenceExtension.fir.kt index e8e2c0065e6..6e2470fc866 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/derefenceExtension.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/derefenceExtension.fir.kt @@ -17,14 +17,14 @@ fun test() { val platformJ = J.staticJ platformNN.foo() - platformN.foo() + platformN.foo() platformJ.foo() with(platformNN) { foo() } with(platformN) { - foo() + foo() } with(platformJ) { foo() diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/derefenceMember.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/derefenceMember.fir.kt index 6ed0aa0199f..17be65d281b 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/derefenceMember.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/derefenceMember.fir.kt @@ -22,14 +22,14 @@ fun test() { val platformJ = J.staticJ platformNN.foo() - platformN.foo() + platformN.foo() platformJ.foo() with(platformNN) { foo() } with(platformN) { - foo() + foo() } with(platformJ) { foo() diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/expectedType.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/expectedType.fir.kt index 8cd2991126b..41e897829f1 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/expectedType.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/expectedType.fir.kt @@ -17,7 +17,7 @@ fun test() { val platformJ = J.staticJ checkSubtype(platformNN) - checkSubtype(platformN) + checkSubtype(platformN) checkSubtype(platformJ) checkSubtype(platformNN) diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/for.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/for.fir.kt index f15e339e213..d031995c909 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/for.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/for.fir.kt @@ -18,6 +18,6 @@ fun test() { val platformJ = J.staticJ for (x in platformNN) {} - for (x in platformN) {} + for (x in platformN) {} for (x in platformJ) {} } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/functionArguments.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/functionArguments.fir.kt index 3fdffccead5..410b565cdae 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/functionArguments.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/functionArguments.fir.kt @@ -13,7 +13,7 @@ public class J { // FILE: k.kt fun test() { foo(J.staticNN) - foo(J.staticN) + foo(J.staticN) foo(J.staticJ) bar(J.staticNN) diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/invoke.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/invoke.fir.kt index cf4b3bb3d5c..d053d428cb3 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/invoke.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/invoke.fir.kt @@ -16,6 +16,6 @@ public class J { // FILE: k.kt fun test() { J.staticNN() - J.staticN() + J.staticN() J.staticJ() } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/kt6829.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/kt6829.fir.kt index bbb62055ab1..93b8678ff4e 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/kt6829.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/kt6829.fir.kt @@ -13,7 +13,7 @@ public class J { // FILE: k.kt fun foo(collection: Collection) { val mapped = collection.map { it.method() } - mapped[0].length + mapped[0].length } public fun Iterable.map(transform: (T) -> R): List { diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/multiDeclaration.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/multiDeclaration.fir.kt index 262d806d390..7bfe6d6ea3f 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/multiDeclaration.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/multiDeclaration.fir.kt @@ -22,6 +22,6 @@ fun test() { val platformJ = J.staticJ val (a1, b1) = platformNN - val (a2, b2) = platformN + val (a2, b2) = platformN val (a3, b3) = platformJ } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/passToJava.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/passToJava.fir.kt index c6a46e270e9..f143fc60b2b 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/passToJava.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/passToJava.fir.kt @@ -32,8 +32,8 @@ fun test(n: J?, nn: J) { // platform type with no annotation val platformJ = J.staticJ - J.staticNN = n - J.staticNN = platformN + J.staticNN = n + J.staticNN = platformN J.staticNN = nn J.staticNN = platformNN J.staticNN = platformJ @@ -52,12 +52,12 @@ fun test(n: J?, nn: J) { J.staticSet(nn, nn, nn) J.staticSet(platformNN, platformNN, platformNN) - J.staticSet(n, n, n) - J.staticSet(platformN, platformN, platformN) + J.staticSet(n, n, n) + J.staticSet(platformN, platformN, platformN) J.staticSet(platformJ, platformJ, platformJ) - J().nn = n - J().nn = platformN + J().nn = n + J().nn = platformN J().nn = nn J().nn = platformNN J().nn = platformJ @@ -76,13 +76,13 @@ fun test(n: J?, nn: J) { J().set(nn, nn, nn) J().set(platformNN, platformNN, platformNN) - J().set(n, n, n) - J().set(platformN, platformN, platformN) + J().set(n, n, n) + J().set(platformN, platformN, platformN) J().set(platformJ, platformJ, platformJ) J(nn, nn, nn) J(platformNN, platformNN, platformNN) - J(n, n, n) - J(platformN, platformN, platformN) + J(n, n, n) + J(platformN, platformN, platformN) J(platformJ, platformJ, platformJ) } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/primitiveArray.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/primitiveArray.fir.kt index 3a010fcb7aa..d37b90b100d 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/primitiveArray.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/primitiveArray.fir.kt @@ -16,10 +16,10 @@ fun test() { val platformJ = J.staticJ platformNN[0] - platformN[0] + platformN[0] platformJ[0] platformNN[0] = 1 - platformN[0] = 1 + platformN[0] = 1 platformJ[0] = 1 } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/uselessElvisRightIsNull.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/uselessElvisRightIsNull.fir.kt index d4c31e8530d..280c832f9d2 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/uselessElvisRightIsNull.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/fromPlatformTypes/uselessElvisRightIsNull.fir.kt @@ -24,7 +24,7 @@ fun test() { foo(a) val b = JJ.staticNN ?: null foo(b) - val c = JJJ.staticNNN ?: null + val c = JJJ.staticNNN ?: null foo(c) } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/localInference.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/localInference.fir.kt index 56e0ec47fe8..fe944866df2 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/localInference.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/localInference.fir.kt @@ -69,7 +69,7 @@ val f = platformNullable?.string fun evlis() { // JSR - val r1 = a ?: "" + val r1 = a ?: "" val r2 = b ?: "" // JB @@ -83,7 +83,7 @@ fun evlis() { fun ifChecksAndSmartCasts() { // JSR - val r1 = if (a == null) 42 else a.length + val r1 = if (a == null) 42 else a.length val r2 = if (b == null) 42 else b.length // JB diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/nullabilityGenerics.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/nullabilityGenerics.fir.kt index 33c0aac308a..4d3ce1a127e 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/nullabilityGenerics.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/nullabilityGenerics.fir.kt @@ -25,16 +25,16 @@ class X(t: T?) { init { val a = A() - a.foo(t) + a.foo(t) - val x: T = a.bam() - val y: T = a.baz() + val x: T = a.bam() + val y: T = a.baz() } } fun test() { val a = A() - a.foo(null) + a.foo(null) - val b: String = a.bar() + val b: String = a.bar() } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/nullabilityNicknames.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/nullabilityNicknames.fir.kt index 5155b6c05b9..033472eb014 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/nullabilityNicknames.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/nullabilityNicknames.fir.kt @@ -77,15 +77,15 @@ public class A { // FILE: main.kt fun main(a: A) { a.foo("", null)?.length - a.foo("", null).length - a.foo(null, "").length + a.foo("", null).length + a.foo(null, "").length - a.baz("", null).length - a.baz(null, "").length + a.baz("", null).length + a.baz(null, "").length a.bar().length - a.bar()!!.length + a.bar()!!.length a.field?.length - a.field.length + a.field.length } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/elvis.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/safeCalls.fir.kt similarity index 64% rename from compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/elvis.fir.kt rename to compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/safeCalls.fir.kt index 0bbc430309f..26fe5ebf78e 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/elvis.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/safeCalls.fir.kt @@ -60,26 +60,13 @@ val jbNullable: AnnotatedWithJB? = null val platform: PlainJava = PlainJava() val platformNullable: PlainJava? = null -object Elvis { - fun fromJava() { - val a = jsr.string ?: "" - val b = jsrNullable?.string ?: "" +fun safeCalls() { + val a = jsr.string?.length + val b = jsrNullable?.string?.length - val c = jb.string ?: "" - val d = jbNullable?.string ?: "" + val c = jb.string?.length + val d = jbNullable?.string?.length - val e = platform.string ?: "" - val f = platformNullable?.string ?: "" - } - - fun toJava(nullableString: String?) { - val b = jsr.consumeString(nullableString ?: "") - val d = jsrNullable?.consumeString(nullableString ?: "") - - val f = jb.consumeString(nullableString ?: "") - val h = jbNullable?.consumeString(nullableString ?: "") - - val j = platform.consumeString(nullableString ?: "") - val l = platformNullable?.consumeString(nullableString ?: "") - } + val e = platform.string?.length + val f = platformNullable?.string?.length } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/safeCalls.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/safeCalls.kt index 1c734073b4f..39c0347a208 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/safeCalls.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/safeCalls.kt @@ -1,4 +1,3 @@ -// FIR_IDENTICAL // !DIAGNOSTICS: -UNUSED_VARIABLE // JSR305_GLOBAL_REPORT: warn diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/equalsOnNonNull.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/equalsOnNonNull.fir.kt new file mode 100644 index 00000000000..0832e8ff6cb --- /dev/null +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/equalsOnNonNull.fir.kt @@ -0,0 +1,46 @@ +// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER +// JSR305_GLOBAL_REPORT: warn + +// FILE: spr/NonNullApi.java +package spr; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import javax.annotation.Nonnull; +import javax.annotation.meta.TypeQualifierDefault; + +@Target(ElementType.TYPE) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Nonnull +@TypeQualifierDefault({ElementType.METHOD, ElementType.PARAMETER}) +public @interface NonNullApi { +} + +// FILE: A.java +import spr.*; + +@NonNullApi +public class A { + public String getBar() { + return ""; + } +} + +// FILE: main.kt +fun main(a: A) { + if (a.getBar() == "1" && a.hashCode() != 0) return + if (a.getBar() != "2" && a.hashCode() != 0) return + + if (a.getBar() == null && a.hashCode() != 0) return + if (a.getBar() != null && a.hashCode() != 0) return + + if (a.bar == "1" && a.hashCode() != 0) return + if (a.bar != "2" && a.hashCode() != 0) return + + if (a.bar == null && a.hashCode() != 0) return + if (a.bar != null && a.hashCode() != 0) return +} diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/equalsOnNonNull.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/equalsOnNonNull.kt index a1307079a1a..3200835dfb5 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/equalsOnNonNull.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/equalsOnNonNull.kt @@ -1,4 +1,3 @@ -// FIR_IDENTICAL // !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER // JSR305_GLOBAL_REPORT: warn diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/fieldsAreNullable.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/fieldsAreNullable.fir.kt index 60e3980449e..8333fdb8429 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/fieldsAreNullable.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/fieldsAreNullable.fir.kt @@ -48,7 +48,7 @@ fun main(a: A) { a.bar()!!.length a.field?.length - a.field.length + a.field.length a.field = null a.nonNullField?.length diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/nullabilityFromOverridden.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/nullabilityFromOverridden.fir.kt index 1ed97838dbf..477a87b5154 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/nullabilityFromOverridden.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/nullabilityFromOverridden.fir.kt @@ -126,25 +126,25 @@ public class C extends A implements AInt { // FILE: main.kt fun main(a: A, b: B, c: C) { - a.foo1(null).length - a.foo2(null).length - a.foo3(null).length + a.foo1(null).length + a.foo2(null).length + a.foo3(null).length a.bar1(null).length a.bar2(null).length a.baz(null).length - b.foo1(null).length - b.foo1(null)?.length + b.foo1(null).length + b.foo1(null)?.length b.foo2(null).length - b.foo3(null).length + b.foo3(null).length b.bar1(null).length b.bar2(null).length b.baz(null).length - b.baz(null)?.length + b.baz(null)?.length - c.foo1(null).length + c.foo1(null).length c.foo2(null).length - c.foo3(null).length + c.foo3(null).length c.bar1(null).length c.bar1(null)?.length c.bar2(null).length diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/overridingDefaultQualifier.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/overridingDefaultQualifier.fir.kt index e08a5e81d7c..b0fd01e7701 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/overridingDefaultQualifier.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/overridingDefaultQualifier.fir.kt @@ -126,17 +126,17 @@ public class A { // FILE: main.kt fun main(a: A, b: A.B, c: A.C) { - a.foo("", null)?.length + a.foo("", null)?.length a.foo("", null).length - a.foo(null, "").length + a.foo(null, "").length - a.foobar(null, "").length + a.foobar(null, "").length a.foobar("", null)?.length a.bar().length - a.bar()!!.length + a.bar()!!.length - a.field?.length + a.field?.length a.field.length a.baz().get(0) @@ -145,35 +145,35 @@ fun main(a: A, b: A.B, c: A.C) { // b b.foo("", null)?.length - b.foo("", null).length - b.foo(null, "").length + b.foo("", null).length + b.foo(null, "").length - b.foobar(null, "").length - b.foobar("", null)?.length + b.foobar(null, "").length + b.foobar("", null)?.length - b.bar().length + b.bar().length b.bar()!!.length b.field?.length - b.field.length + b.field.length b.baz().get(0) b.baz()!!.get(0).get(0) b.baz()!!.get(0)?.get(0) // c - c.foo("", null)?.length + c.foo("", null)?.length c.foo("", null).length - c.foo(null, "").length + c.foo(null, "").length - c.foobar(null, "").length + c.foobar(null, "").length c.foobar("", null)?.length c.bar().length - c.bar()!!.length + c.bar()!!.length c.field?.length - c.field.length + c.field.length c.baz().get(0) c.baz()!!.get(0).get(0) diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefault.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefault.fir.kt index 52161145d86..0ebff68f8f0 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefault.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefault.fir.kt @@ -23,7 +23,7 @@ fun main(a: A) { // foo is platform a.foo("", "", null)?.length a.foo("", "", null).length - a.foo(null, null, "").length + a.foo(null, null, "").length a.bar().length a.bar()!!.length diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefaultPackage.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefaultPackage.fir.kt index 62ec7608a96..945094b559b 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefaultPackage.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/parametersAreNonnullByDefaultPackage.fir.kt @@ -48,7 +48,7 @@ import test2.A2 fun main(a: A, a2: A2) { a.foo("", "", null)?.length a.foo("", "", null).length - a.foo(null, null, "").length + a.foo(null, null, "").length a.bar().length a.bar()!!.length diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/springNullable.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/springNullable.fir.kt index 76cbc408a2c..262a9a4af89 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/springNullable.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/springNullable.fir.kt @@ -63,17 +63,17 @@ public class A { // FILE: main.kt fun main(a: A) { - a.foo("", null)?.length + a.foo("", null)?.length a.foo("", null).length - a.foo(null, "").length + a.foo(null, "").length a.bar().length - a.bar()!!.length + a.bar()!!.length a.field?.length a.field.length - a.baz().get(0) + a.baz().get(0) a.baz()!!.get(0).get(0) a.baz()!!.get(0)?.get(0) } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/springNullablePackage.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/springNullablePackage.fir.kt index 89b1c13982b..5d02aca963d 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/springNullablePackage.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305/nullabilityWarnings/typeQualifierDefault/springNullablePackage.fir.kt @@ -68,17 +68,17 @@ public class A { // FILE: main.kt fun main(a: test.A) { - a.foo("", null)?.length + a.foo("", null)?.length a.foo("", null).length - a.foo(null, "").length + a.foo(null, "").length a.bar().length - a.bar()!!.length + a.bar()!!.length a.field?.length a.field.length - a.baz().get(0) + a.baz().get(0) a.baz()!!.get(0).get(0) a.baz()!!.get(0)?.get(0) } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/customMigration.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/customMigration.fir.kt index 1a55297c8d5..7531e7fde42 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/customMigration.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/customMigration.fir.kt @@ -72,11 +72,11 @@ fun main(a: A) { a.foo(null) a.foo2("") - a.foo2(null) + a.foo2(null) a.foo3("") a.foo3(null) a.foo4("") - a.foo4(null) + a.foo4(null) } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/globalIgnore.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/globalIgnore.fir.kt index 32a75c8e455..d9ab359fb69 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/globalIgnore.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/globalIgnore.fir.kt @@ -45,10 +45,10 @@ fun main(a: A) { a.foo2("", null)?.length a.foo2("", null).length - a.foo2(null, "").length + a.foo2(null, "").length a.bar2().length - a.bar2()!!.length + a.bar2()!!.length a.field2?.length a.field2.length diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/globalWarningMigrationIgnore.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/globalWarningMigrationIgnore.fir.kt index 63dc596c6a3..bf6cc8813de 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/globalWarningMigrationIgnore.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/globalWarningMigrationIgnore.fir.kt @@ -45,10 +45,10 @@ fun main(a: A) { a.foo2("", null)?.length a.foo2("", null).length - a.foo2(null, "").length + a.foo2(null, "").length a.bar2().length - a.bar2()!!.length + a.bar2()!!.length a.field2?.length a.field2.length diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/migrationError.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/migrationError.fir.kt index af554670b68..fd5065dc58a 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/migrationError.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/migrationError.fir.kt @@ -62,14 +62,14 @@ fun main(a: A) { a.field.length a.foo2("", null)?.length - a.foo2("", null).length - a.foo2(null, "").length + a.foo2("", null).length + a.foo2(null, "").length a.bar2().length a.bar2()!!.length a.field2?.length - a.field2.length + a.field2.length a.field3?.length a.field3.length diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/migrationIgnore.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/migrationIgnore.fir.kt index a3e0ebb430b..b46e19b8323 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/migrationIgnore.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/migrationIgnore.fir.kt @@ -44,12 +44,12 @@ fun main(a: A) { a.field.length a.foo2("", null)?.length - a.foo2("", null).length - a.foo2(null, "").length + a.foo2("", null).length + a.foo2(null, "").length a.bar2().length a.bar2()!!.length a.field2?.length - a.field2.length + a.field2.length } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/migrationWarning.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/migrationWarning.fir.kt index cd1a46490f8..08faaa927eb 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/migrationWarning.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/migrationWarning.fir.kt @@ -35,10 +35,10 @@ public class A { fun main(a: A) { a.foo("", null)?.length a.foo("", null).length - a.foo(null, "").length + a.foo(null, "").length a.bar().length - a.bar()!!.length + a.bar()!!.length a.field?.length a.field.length diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/overrideConflicts.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/overrideConflicts.fir.kt index b1d3fbd8950..b7d75134700 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/overrideConflicts.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/overrideConflicts.fir.kt @@ -66,7 +66,7 @@ fun main(b: B, c: C) { b.foo2()?.length b.foo3().length b.foo3()?.length - b.foo4().length + b.foo4().length b.foo4()?.length b.bar(null) @@ -75,7 +75,7 @@ fun main(b: B, c: C) { b.bar2("") b.bar3(null) b.bar3("") - b.bar4(null) + b.bar4(null) b.bar4("") c.foo4().length diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/specialCollision.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/specialCollision.fir.kt new file mode 100644 index 00000000000..8f48e137f6f --- /dev/null +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/specialCollision.fir.kt @@ -0,0 +1,35 @@ +// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER +// JSR305_GLOBAL_REPORT: ignore +// JSR305_MIGRATION_REPORT: ignore +// JSR305_SPECIAL_REPORT: MyNonnull:warn, MyMigrationNonnull:strict + +// FILE: A.java +import javax.annotation.*; + +public class A { + @MyMigrationNullable public String field = null; + + @MyMigrationNullable + public String foo(@MyMigrationNonnull String x, CharSequence y) { + return ""; + } + + @MyNonnull + @MyMigrationNonnull + public String bar() { + return ""; + } +} + +// FILE: main.kt +fun main(a: A) { + a.foo("", null)?.length + a.foo("", null).length + a.foo(null, "").length + + a.bar().length + a.bar()!!.length + + a.field?.length + a.field.length +} diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/specialCollision.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/specialCollision.kt index 0def2c9bbbd..6d8aae90a20 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/specialCollision.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/specialCollision.kt @@ -1,4 +1,3 @@ -// FIR_IDENTICAL // !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER // JSR305_GLOBAL_REPORT: ignore // JSR305_MIGRATION_REPORT: ignore diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/stateRefinement.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/stateRefinement.fir.kt index 10c75034c3b..98b1d57d269 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/stateRefinement.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/jsr305NullabilityWarnings/migration/stateRefinement.fir.kt @@ -34,14 +34,14 @@ public class A { // FILE: main.kt fun main(a: A) { a.foo("", null)?.length - a.foo("", null).length - a.foo(null, "").length + a.foo("", null).length + a.foo(null, "").length a.bar().length - a.bar()!!.length + a.bar()!!.length a.field?.length - a.field.length + a.field.length a.foo2("", null)?.length a.foo2("", null).length diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/kt47920.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/kt47920.fir.kt deleted file mode 100644 index dddebe62d5a..00000000000 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/kt47920.fir.kt +++ /dev/null @@ -1,11 +0,0 @@ -// MUTE_FOR_PSI_CLASS_FILES_READING - -// FILE: J1.java -import io.reactivex.rxjava3.annotations.*; - -public class J1<@NonNull T> {} - -// FILE: main.kt -fun main() { - J1<Any?>() // violated nullability, no warnings; but there is an error with -Xtype-enhancement-improvements-strict-mode -} diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/kt47920.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/kt47920.kt index baaede4d2a9..4329a426411 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/kt47920.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/kt47920.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // MUTE_FOR_PSI_CLASS_FILES_READING // FILE: J1.java diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/multiple.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/multiple.fir.kt index 68868a2d3d3..c8973214321 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/multiple.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/multiple.fir.kt @@ -102,21 +102,21 @@ fun main1(a: A1, a1: A1) { fun main2(a: A2, a1: A2) { a.foo("", null)?.length - a.foo("", null).length - a.foo(null, "").length + a.foo("", null).length + a.foo(null, "").length a.bar().length - a.bar()!!.length + a.bar()!!.length a.field?.length - a.field.length + a.field.length - a.baz("").length + a.baz("").length a.baz("")?.length - a.baz(null).length + a.baz(null).length a1.baz("")!!.length - a1.baz(null)!!.length + a1.baz(null)!!.length } fun main3(a: A3, a1: A3) { diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/rxjava3Default.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/rxjava3Default.fir.kt index d89f6f6ddfc..7c97f692a78 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/rxjava3Default.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/rxjava3Default.fir.kt @@ -23,19 +23,19 @@ public class A { fun main(a: A, a1: A) { a.foo("", null)?.length - a.foo("", null).length - a.foo(null, "").length + a.foo("", null).length + a.foo(null, "").length a.bar().length - a.bar()!!.length + a.bar()!!.length a.field?.length - a.field.length + a.field.length - a.baz("").length + a.baz("").length a.baz("")?.length - a.baz(null).length + a.baz(null).length a1.baz("")!!.length - a1.baz(null)!!.length + a1.baz(null)!!.length } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/rxjava3Warnings.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/rxjava3Warnings.fir.kt index 9596f8e58c0..91bbfbd9f8d 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/rxjava3Warnings.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/rxjava3Warnings.fir.kt @@ -25,19 +25,19 @@ public class A { fun main(a: A, a1: A) { a.foo("", null)?.length - a.foo("", null).length - a.foo(null, "").length + a.foo("", null).length + a.foo(null, "").length a.bar().length - a.bar()!!.length + a.bar()!!.length a.field?.length - a.field.length + a.field.length - a.baz("").length + a.baz("").length a.baz("")?.length - a.baz(null).length + a.baz(null).length a1.baz("")!!.length - a1.baz(null)!!.length + a1.baz(null)!!.length } diff --git a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/typeQualifierDefault/defaultAndNicknameMigrationPolicy.fir.kt b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/typeQualifierDefault/defaultAndNicknameMigrationPolicy.fir.kt index b9dd9a44a77..17da142bc26 100644 --- a/compiler/testData/diagnostics/foreignAnnotationsTests/tests/typeQualifierDefault/defaultAndNicknameMigrationPolicy.fir.kt +++ b/compiler/testData/diagnostics/foreignAnnotationsTests/tests/typeQualifierDefault/defaultAndNicknameMigrationPolicy.fir.kt @@ -56,7 +56,7 @@ public class PolicyFromNickname { // FILE: main.kt fun main(default: PolicyFromDefault, nickname: PolicyFromNickname) { - default.foo(null).length + default.foo(null).length default.foo("hello").length nickname.foo(null).length diff --git a/compiler/testData/loadJava/compiledJava/kotlinSignature/propagation/return/TypeParamOfClass.fir.txt b/compiler/testData/loadJava/compiledJava/kotlinSignature/propagation/return/TypeParamOfClass.fir.txt index 978ed1e9819..39338142ec8 100644 --- a/compiler/testData/loadJava/compiledJava/kotlinSignature/propagation/return/TypeParamOfClass.fir.txt +++ b/compiler/testData/loadJava/compiledJava/kotlinSignature/propagation/return/TypeParamOfClass.fir.txt @@ -1,6 +1,6 @@ public abstract interface TypeParamOfClass : R|kotlin/Any| { public abstract interface Sub|> : R|test/TypeParamOfClass.Super>| { - public abstract fun foo(): R|@EnhancedNullability T| + public abstract fun foo(): R|@EnhancedNullability T & Any| } public abstract interface Super|> : R|kotlin/Any| {