diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/intersectRawAndMutable.fir.txt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/intersectRawAndMutable.fir.txt index 06bb57a240e..71c2c9ff9b2 100644 --- a/compiler/fir/analysis-tests/testData/resolveWithStdlib/intersectRawAndMutable.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/intersectRawAndMutable.fir.txt @@ -2,16 +2,16 @@ FILE: test.kt public abstract interface StringSet : R|kotlin/collections/MutableSet| { } public final fun foo(arg: R|kotlin/Boolean|): R|kotlin/Unit| { - lval x: R|ft, @EnhancedNullability java/util/ArrayList<*>>| = Q|Producer|.R|/Producer.foo*s|() + lval x: R|ft, Raw type java/util/ArrayList<*>>| = Q|Producer|.R|/Producer.foo*s|() when () { (R|/x| is R|kotlin/collections/Set<*>|) -> { - lval y: R|ft, @EnhancedNullability java/util/ArrayList<*>>| = R|/x| + lval y: R|ft, Raw type java/util/ArrayList<*>>| = R|/x| } } when () { (R|/x| is R|kotlin/collections/MutableSet<*>|) -> { - lval y: R|ft, @EnhancedNullability java/util/ArrayList<*>>| = R|/x| + lval y: R|ft, Raw type java/util/ArrayList<*>>| = R|/x| } } diff --git a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/ConeAttributes.kt b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/ConeAttributes.kt index fa21e61e111..9ab97ee3bde 100644 --- a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/ConeAttributes.kt +++ b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/ConeAttributes.kt @@ -96,9 +96,10 @@ class ConeAttributes private constructor(attributes: List>) : A if (attribute in this) return this if (isEmpty()) return predefinedAttributes[attribute] ?: ConeAttributes(attribute) val newAttributes = buildList { - addAll(this) + addAll(arrayMap) add(attribute) } + return ConeAttributes(newAttributes) } diff --git a/compiler/testData/diagnostics/tests/annotations/rendering/typeMismatchOnOverrideJavaNullable.ll.kt b/compiler/testData/diagnostics/tests/annotations/rendering/typeMismatchOnOverrideJavaNullable.ll.kt new file mode 100644 index 00000000000..f9edc4e8487 --- /dev/null +++ b/compiler/testData/diagnostics/tests/annotations/rendering/typeMismatchOnOverrideJavaNullable.ll.kt @@ -0,0 +1,45 @@ +// LL_FIR_DIVERGENCE +// KT-60504 +// LL_FIR_DIVERGENCE +// !RENDER_DIAGNOSTICS_MESSAGES +// SKIP_JAVAC + +// FILE: A.java + +import org.jetbrains.annotations.NotNull; +import java.lang.annotation.*; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.METHOD) +@javax.annotation.meta.TypeQualifier +public @interface MyTypeQualifier {} + +@An +public interface A { + @NotNull + @An + @MyTypeQualifier + String foo(); +} + +// FILE: k.kt + +import org.jetbrains.annotations.NotNull; + +@Target(AnnotationTarget.FUNCTION, AnnotationTarget.TYPE, AnnotationTarget.CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER) +annotation class An + +class B : A { + override fun foo(): String? = null +} + +@An +public interface C { + @NotNull + @An + fun foo(): String +} + +class D : C { + override fun foo(): String? = null +} diff --git a/compiler/testData/diagnostics/tests/j+k/types/notNullTypeParameterWithKotlinNullableWarnings.fir.diag.txt b/compiler/testData/diagnostics/tests/j+k/types/notNullTypeParameterWithKotlinNullableWarnings.fir.diag.txt index 3d3a2d40031..345b05c2234 100644 --- a/compiler/testData/diagnostics/tests/j+k/types/notNullTypeParameterWithKotlinNullableWarnings.fir.diag.txt +++ b/compiler/testData/diagnostics/tests/j+k/types/notNullTypeParameterWithKotlinNullableWarnings.fir.diag.txt @@ -1,7 +1,7 @@ /main.kt:(98,103): error: Argument type mismatch: actual type is 'V' but '@EnhancedNullability V & Any' was expected -/main.kt:(119,120): error: Argument type mismatch: actual type is 'kotlin/collections/List' but 'ft<@EnhancedNullability kotlin/collections/MutableList<@EnhancedNullability V & Any>, @EnhancedNullability kotlin/collections/List<@EnhancedNullability V & Any>>' was expected +/main.kt:(119,120): error: Argument type mismatch: actual type is 'kotlin/collections/List' but 'ft<@EnhancedNullability kotlin/collections/MutableList<@EnhancedNullability @R|org/jetbrains/annotations/NotNull|() V & Any>, @EnhancedNullability kotlin/collections/List<@EnhancedNullability @R|org/jetbrains/annotations/NotNull|() V & Any>>' was expected /main.kt:(133,138): error: Argument type mismatch: actual type is 'V' but '@EnhancedNullability E & Any' was expected -/main.kt:(154,155): error: Argument type mismatch: actual type is 'kotlin/collections/List' but 'ft<@EnhancedNullability kotlin/collections/MutableList<@EnhancedNullability E & Any>, @EnhancedNullability kotlin/collections/List<@EnhancedNullability E & Any>>' was expected +/main.kt:(154,155): error: Argument type mismatch: actual type is 'kotlin/collections/List' but 'ft<@EnhancedNullability kotlin/collections/MutableList<@EnhancedNullability @R|org/jetbrains/annotations/NotNull|() E & Any>, @EnhancedNullability kotlin/collections/List<@EnhancedNullability @R|org/jetbrains/annotations/NotNull|() E & Any>>' was expected diff --git a/compiler/testData/ir/irText/types/nullChecks/enhancedNullabilityInDestructuringAssignment.fir.ir.txt b/compiler/testData/ir/irText/types/nullChecks/enhancedNullabilityInDestructuringAssignment.fir.ir.txt index 33f71e8e46f..095ff6cd4ef 100644 --- a/compiler/testData/ir/irText/types/nullChecks/enhancedNullabilityInDestructuringAssignment.fir.ir.txt +++ b/compiler/testData/ir/irText/types/nullChecks/enhancedNullabilityInDestructuringAssignment.fir.ir.txt @@ -131,66 +131,66 @@ FILE fqName: fileName:/enhancedNullabilityInDestructuringAssignment.kt y: GET_VAR 'val y: kotlin.Int declared in .test1' type=kotlin.Int origin=null FUN name:test2 visibility:public modality:FINAL <> () returnType:kotlin.Unit BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:@[FlexibleNullability] .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String>? [val] - CALL 'public open fun notNullComponents (): @[FlexibleNullability] .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String>? declared in .J' type=@[FlexibleNullability] .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String>? origin=null - VAR name:x type:@[EnhancedNullability] kotlin.String [val] - TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String - CALL 'public final fun component1 (): T1 of .Q declared in .Q' type=@[EnhancedNullability] kotlin.String origin=COMPONENT_N(index=1) - $this: GET_VAR 'val tmp_1: @[FlexibleNullability] .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String>? declared in .test2' type=@[FlexibleNullability] .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String>? origin=null - VAR name:y type:@[EnhancedNullability] kotlin.String [val] - TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String - CALL 'public final fun component2 (): T2 of .Q declared in .Q' type=@[EnhancedNullability] kotlin.String origin=COMPONENT_N(index=2) - $this: GET_VAR 'val tmp_1: @[FlexibleNullability] .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String>? declared in .test2' type=@[FlexibleNullability] .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String>? origin=null + VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:@[FlexibleNullability] .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String>? [val] + CALL 'public open fun notNullComponents (): @[FlexibleNullability] .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String>? declared in .J' type=@[FlexibleNullability] .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String>? origin=null + VAR name:x type:@[EnhancedNullability] @[NotNull(value = )] kotlin.String [val] + TYPE_OP type=@[NotNull(value = )] kotlin.String origin=IMPLICIT_NOTNULL typeOperand=@[NotNull(value = )] kotlin.String + CALL 'public final fun component1 (): T1 of .Q declared in .Q' type=@[EnhancedNullability] @[NotNull(value = )] kotlin.String origin=COMPONENT_N(index=1) + $this: GET_VAR 'val tmp_1: @[FlexibleNullability] .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String>? declared in .test2' type=@[FlexibleNullability] .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String>? origin=null + VAR name:y type:@[EnhancedNullability] @[NotNull(value = )] kotlin.String [val] + TYPE_OP type=@[NotNull(value = )] kotlin.String origin=IMPLICIT_NOTNULL typeOperand=@[NotNull(value = )] kotlin.String + CALL 'public final fun component2 (): T2 of .Q declared in .Q' type=@[EnhancedNullability] @[NotNull(value = )] kotlin.String origin=COMPONENT_N(index=2) + $this: GET_VAR 'val tmp_1: @[FlexibleNullability] .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String>? declared in .test2' type=@[FlexibleNullability] .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String>? origin=null CALL 'public final fun use (x: kotlin.Any, y: kotlin.Any): kotlin.Unit declared in ' type=kotlin.Unit origin=null - x: GET_VAR 'val x: @[EnhancedNullability] kotlin.String declared in .test2' type=@[EnhancedNullability] kotlin.String origin=null - y: GET_VAR 'val y: @[EnhancedNullability] kotlin.String declared in .test2' type=@[EnhancedNullability] kotlin.String origin=null + x: GET_VAR 'val x: @[EnhancedNullability] @[NotNull(value = )] kotlin.String declared in .test2' type=@[EnhancedNullability] @[NotNull(value = )] kotlin.String origin=null + y: GET_VAR 'val y: @[EnhancedNullability] @[NotNull(value = )] kotlin.String declared in .test2' type=@[EnhancedNullability] @[NotNull(value = )] kotlin.String origin=null FUN name:test2Desugared visibility:public modality:FINAL <> () returnType:kotlin.Unit BLOCK_BODY - VAR name:tmp type:@[FlexibleNullability] .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String>? [val] - CALL 'public open fun notNullComponents (): @[FlexibleNullability] .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String>? declared in .J' type=@[FlexibleNullability] .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String>? origin=null - VAR name:x type:kotlin.String [val] - TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String - CALL 'public final fun component1 (): T1 of .Q declared in .Q' type=@[EnhancedNullability] kotlin.String origin=null - $this: GET_VAR 'val tmp: @[FlexibleNullability] .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String>? declared in .test2Desugared' type=@[FlexibleNullability] .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String>? origin=null - VAR name:y type:kotlin.String [val] - TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String - CALL 'public final fun component2 (): T2 of .Q declared in .Q' type=@[EnhancedNullability] kotlin.String origin=null - $this: GET_VAR 'val tmp: @[FlexibleNullability] .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String>? declared in .test2Desugared' type=@[FlexibleNullability] .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String>? origin=null + VAR name:tmp type:@[FlexibleNullability] .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String>? [val] + CALL 'public open fun notNullComponents (): @[FlexibleNullability] .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String>? declared in .J' type=@[FlexibleNullability] .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String>? origin=null + VAR name:x type:@[NotNull(value = )] kotlin.String [val] + TYPE_OP type=@[NotNull(value = )] kotlin.String origin=IMPLICIT_NOTNULL typeOperand=@[NotNull(value = )] kotlin.String + CALL 'public final fun component1 (): T1 of .Q declared in .Q' type=@[EnhancedNullability] @[NotNull(value = )] kotlin.String origin=null + $this: GET_VAR 'val tmp: @[FlexibleNullability] .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String>? declared in .test2Desugared' type=@[FlexibleNullability] .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String>? origin=null + VAR name:y type:@[NotNull(value = )] kotlin.String [val] + TYPE_OP type=@[NotNull(value = )] kotlin.String origin=IMPLICIT_NOTNULL typeOperand=@[NotNull(value = )] kotlin.String + CALL 'public final fun component2 (): T2 of .Q declared in .Q' type=@[EnhancedNullability] @[NotNull(value = )] kotlin.String origin=null + $this: GET_VAR 'val tmp: @[FlexibleNullability] .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String>? declared in .test2Desugared' type=@[FlexibleNullability] .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String>? origin=null CALL 'public final fun use (x: kotlin.Any, y: kotlin.Any): kotlin.Unit declared in ' type=kotlin.Unit origin=null - x: GET_VAR 'val x: kotlin.String declared in .test2Desugared' type=kotlin.String origin=null - y: GET_VAR 'val y: kotlin.String declared in .test2Desugared' type=kotlin.String origin=null + x: GET_VAR 'val x: @[NotNull(value = )] kotlin.String declared in .test2Desugared' type=@[NotNull(value = )] kotlin.String origin=null + y: GET_VAR 'val y: @[NotNull(value = )] kotlin.String declared in .test2Desugared' type=@[NotNull(value = )] kotlin.String origin=null FUN name:test3 visibility:public modality:FINAL <> () returnType:kotlin.Unit BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:.Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String> [val] - TYPE_OP type=.Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String> origin=IMPLICIT_NOTNULL typeOperand=.Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String> - CALL 'public open fun notNullQAndComponents (): @[EnhancedNullability] .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String> declared in .J' type=@[EnhancedNullability] .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String> origin=null - VAR name:x type:@[EnhancedNullability] kotlin.String [val] - TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String - CALL 'public final fun component1 (): T1 of .Q declared in .Q' type=@[EnhancedNullability] kotlin.String origin=COMPONENT_N(index=1) - $this: GET_VAR 'val tmp_2: .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String> declared in .test3' type=.Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String> origin=null - VAR name:y type:@[EnhancedNullability] kotlin.String [val] - TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String - CALL 'public final fun component2 (): T2 of .Q declared in .Q' type=@[EnhancedNullability] kotlin.String origin=COMPONENT_N(index=2) - $this: GET_VAR 'val tmp_2: .Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String> declared in .test3' type=.Q<@[EnhancedNullability] kotlin.String, @[EnhancedNullability] kotlin.String> origin=null + VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:.Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String> [val] + TYPE_OP type=.Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String> origin=IMPLICIT_NOTNULL typeOperand=.Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String> + CALL 'public open fun notNullQAndComponents (): @[EnhancedNullability] .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String> declared in .J' type=@[EnhancedNullability] .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String> origin=null + VAR name:x type:@[EnhancedNullability] @[NotNull(value = )] kotlin.String [val] + TYPE_OP type=@[NotNull(value = )] kotlin.String origin=IMPLICIT_NOTNULL typeOperand=@[NotNull(value = )] kotlin.String + CALL 'public final fun component1 (): T1 of .Q declared in .Q' type=@[EnhancedNullability] @[NotNull(value = )] kotlin.String origin=COMPONENT_N(index=1) + $this: GET_VAR 'val tmp_2: .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String> declared in .test3' type=.Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String> origin=null + VAR name:y type:@[EnhancedNullability] @[NotNull(value = )] kotlin.String [val] + TYPE_OP type=@[NotNull(value = )] kotlin.String origin=IMPLICIT_NOTNULL typeOperand=@[NotNull(value = )] kotlin.String + CALL 'public final fun component2 (): T2 of .Q declared in .Q' type=@[EnhancedNullability] @[NotNull(value = )] kotlin.String origin=COMPONENT_N(index=2) + $this: GET_VAR 'val tmp_2: .Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String> declared in .test3' type=.Q<@[EnhancedNullability] @[NotNull(value = )] kotlin.String, @[EnhancedNullability] @[NotNull(value = )] kotlin.String> origin=null CALL 'public final fun use (x: kotlin.Any, y: kotlin.Any): kotlin.Unit declared in ' type=kotlin.Unit origin=null - x: GET_VAR 'val x: @[EnhancedNullability] kotlin.String declared in .test3' type=@[EnhancedNullability] kotlin.String origin=null - y: GET_VAR 'val y: @[EnhancedNullability] kotlin.String declared in .test3' type=@[EnhancedNullability] kotlin.String origin=null + x: GET_VAR 'val x: @[EnhancedNullability] @[NotNull(value = )] kotlin.String declared in .test3' type=@[EnhancedNullability] @[NotNull(value = )] kotlin.String origin=null + y: GET_VAR 'val y: @[EnhancedNullability] @[NotNull(value = )] kotlin.String declared in .test3' type=@[EnhancedNullability] @[NotNull(value = )] kotlin.String origin=null FUN name:test4 visibility:public modality:FINAL <> () returnType:kotlin.Unit BLOCK_BODY - VAR IR_TEMPORARY_VARIABLE name:tmp_3 type:kotlin.collections.IndexedValue<@[EnhancedNullability] .P> [val] - CALL 'public final fun first (): T of kotlin.collections.first declared in kotlin.collections' type=kotlin.collections.IndexedValue<@[EnhancedNullability] .P> origin=null - : kotlin.collections.IndexedValue<@[EnhancedNullability] .P> - $receiver: CALL 'public final fun withIndex (): kotlin.collections.Iterable> declared in kotlin.collections' type=kotlin.collections.Iterable.P>> origin=null - : @[EnhancedNullability] .P - $receiver: TYPE_OP type=@[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] .P> origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] .P> - CALL 'public open fun listOfNotNull (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] .P>? declared in .J' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] .P>? origin=null + VAR IR_TEMPORARY_VARIABLE name:tmp_3 type:kotlin.collections.IndexedValue<@[EnhancedNullability] @[NotNull(value = )] .P> [val] + CALL 'public final fun first (): T of kotlin.collections.first declared in kotlin.collections' type=kotlin.collections.IndexedValue<@[EnhancedNullability] @[NotNull(value = )] .P> origin=null + : kotlin.collections.IndexedValue<@[EnhancedNullability] @[NotNull(value = )] .P> + $receiver: CALL 'public final fun withIndex (): kotlin.collections.Iterable> declared in kotlin.collections' type=kotlin.collections.Iterable)] .P>> origin=null + : @[EnhancedNullability] @[NotNull(value = )] .P + $receiver: TYPE_OP type=@[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] @[NotNull(value = )] .P> origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] @[NotNull(value = )] .P> + CALL 'public open fun listOfNotNull (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] @[NotNull(value = )] .P>? declared in .J' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] @[NotNull(value = )] .P>? origin=null VAR name:x type:kotlin.Int [val] CALL 'public final fun component1 (): kotlin.Int declared in kotlin.collections.IndexedValue' type=kotlin.Int origin=COMPONENT_N(index=1) - $this: GET_VAR 'val tmp_3: kotlin.collections.IndexedValue<@[EnhancedNullability] .P> declared in .test4' type=kotlin.collections.IndexedValue<@[EnhancedNullability] .P> origin=null - VAR name:y type:@[EnhancedNullability] .P [val] - TYPE_OP type=.P origin=IMPLICIT_NOTNULL typeOperand=.P - CALL 'public final fun component2 (): T of kotlin.collections.IndexedValue declared in kotlin.collections.IndexedValue' type=@[EnhancedNullability] .P origin=COMPONENT_N(index=2) - $this: GET_VAR 'val tmp_3: kotlin.collections.IndexedValue<@[EnhancedNullability] .P> declared in .test4' type=kotlin.collections.IndexedValue<@[EnhancedNullability] .P> origin=null + $this: GET_VAR 'val tmp_3: kotlin.collections.IndexedValue<@[EnhancedNullability] @[NotNull(value = )] .P> declared in .test4' type=kotlin.collections.IndexedValue<@[EnhancedNullability] @[NotNull(value = )] .P> origin=null + VAR name:y type:@[EnhancedNullability] @[NotNull(value = )] .P [val] + TYPE_OP type=@[NotNull(value = )] .P origin=IMPLICIT_NOTNULL typeOperand=@[NotNull(value = )] .P + CALL 'public final fun component2 (): T of kotlin.collections.IndexedValue declared in kotlin.collections.IndexedValue' type=@[EnhancedNullability] @[NotNull(value = )] .P origin=COMPONENT_N(index=2) + $this: GET_VAR 'val tmp_3: kotlin.collections.IndexedValue<@[EnhancedNullability] @[NotNull(value = )] .P> declared in .test4' type=kotlin.collections.IndexedValue<@[EnhancedNullability] @[NotNull(value = )] .P> origin=null CALL 'public final fun use (x: kotlin.Any, y: kotlin.Any): kotlin.Unit declared in ' type=kotlin.Unit origin=null x: GET_VAR 'val x: kotlin.Int declared in .test4' type=kotlin.Int origin=null - y: GET_VAR 'val y: @[EnhancedNullability] .P declared in .test4' type=@[EnhancedNullability] .P origin=null + y: GET_VAR 'val y: @[EnhancedNullability] @[NotNull(value = )] .P declared in .test4' type=@[EnhancedNullability] @[NotNull(value = )] .P origin=null diff --git a/compiler/testData/ir/irText/types/nullChecks/enhancedNullabilityInDestructuringAssignment.fir.kt.txt b/compiler/testData/ir/irText/types/nullChecks/enhancedNullabilityInDestructuringAssignment.fir.kt.txt index c33928fe4eb..5722b73d39f 100644 --- a/compiler/testData/ir/irText/types/nullChecks/enhancedNullabilityInDestructuringAssignment.fir.kt.txt +++ b/compiler/testData/ir/irText/types/nullChecks/enhancedNullabilityInDestructuringAssignment.fir.kt.txt @@ -59,30 +59,30 @@ fun test1() { } fun test2() { - val : @FlexibleNullability Q<@EnhancedNullability String, @EnhancedNullability String>? = notNullComponents() - val x: @EnhancedNullability String = .component1() /*!! String */ - val y: @EnhancedNullability String = .component2() /*!! String */ + val : @FlexibleNullability Q<@EnhancedNullability @NotNull String, @EnhancedNullability @NotNull String>? = notNullComponents() + val x: @EnhancedNullability @NotNull String = .component1() /*!! @NotNull String */ + val y: @EnhancedNullability @NotNull String = .component2() /*!! @NotNull String */ use(x = x, y = y) } fun test2Desugared() { - val tmp: @FlexibleNullability Q<@EnhancedNullability String, @EnhancedNullability String>? = notNullComponents() - val x: String = tmp.component1() /*!! String */ - val y: String = tmp.component2() /*!! String */ + val tmp: @FlexibleNullability Q<@EnhancedNullability @NotNull String, @EnhancedNullability @NotNull String>? = notNullComponents() + val x: @NotNull String = tmp.component1() /*!! @NotNull String */ + val y: @NotNull String = tmp.component2() /*!! @NotNull String */ use(x = x, y = y) } fun test3() { - val : Q<@EnhancedNullability String, @EnhancedNullability String> = notNullQAndComponents() /*!! Q<@EnhancedNullability String, @EnhancedNullability String> */ - val x: @EnhancedNullability String = .component1() /*!! String */ - val y: @EnhancedNullability String = .component2() /*!! String */ + val : Q<@EnhancedNullability @NotNull String, @EnhancedNullability @NotNull String> = notNullQAndComponents() /*!! Q<@EnhancedNullability @NotNull String, @EnhancedNullability @NotNull String> */ + val x: @EnhancedNullability @NotNull String = .component1() /*!! @NotNull String */ + val y: @EnhancedNullability @NotNull String = .component2() /*!! @NotNull String */ use(x = x, y = y) } fun test4() { - val : IndexedValue<@EnhancedNullability P> = listOfNotNull() /*!! @FlexibleMutability MutableList<@EnhancedNullability P> */.withIndex<@EnhancedNullability P>().first>() + val : IndexedValue<@EnhancedNullability @NotNull P> = listOfNotNull() /*!! @FlexibleMutability MutableList<@EnhancedNullability @NotNull P> */.withIndex<@EnhancedNullability @NotNull P>().first>() val x: Int = .component1() - val y: @EnhancedNullability P = .component2() /*!! P */ + val y: @EnhancedNullability @NotNull P = .component2() /*!! @NotNull P */ use(x = x, y = y) } diff --git a/compiler/testData/ir/irText/types/nullChecks/enhancedNullabilityInForLoop.fir.ir.txt b/compiler/testData/ir/irText/types/nullChecks/enhancedNullabilityInForLoop.fir.ir.txt index 8f823463a62..6b113286b6b 100644 --- a/compiler/testData/ir/irText/types/nullChecks/enhancedNullabilityInForLoop.fir.ir.txt +++ b/compiler/testData/ir/irText/types/nullChecks/enhancedNullabilityInForLoop.fir.ir.txt @@ -5,52 +5,52 @@ FILE fqName: fileName:/enhancedNullabilityInForLoop.kt FUN name:testForInListUnused visibility:public modality:FINAL <> () returnType:kotlin.Unit BLOCK_BODY BLOCK type=kotlin.Unit origin=FOR_LOOP - VAR FOR_LOOP_ITERATOR name:tmp_0 type:kotlin.collections.MutableIterator<@[EnhancedNullability] .P> [val] - CALL 'public abstract fun iterator (): kotlin.collections.MutableIterator declared in kotlin.collections.MutableList' type=kotlin.collections.MutableIterator<@[EnhancedNullability] .P> origin=FOR_LOOP_ITERATOR - $this: CALL 'public open fun listOfNotNull (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] .P>? declared in .J' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] .P>? origin=null + VAR FOR_LOOP_ITERATOR name:tmp_0 type:kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> [val] + CALL 'public abstract fun iterator (): kotlin.collections.MutableIterator declared in kotlin.collections.MutableList' type=kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> origin=FOR_LOOP_ITERATOR + $this: CALL 'public open fun listOfNotNull (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] @[NotNull(value = )] .P>? declared in .J' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] @[NotNull(value = )] .P>? origin=null WHILE label=null origin=FOR_LOOP_INNER_WHILE condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.MutableIterator' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT - $this: GET_VAR 'val tmp_0: kotlin.collections.MutableIterator<@[EnhancedNullability] .P> declared in .testForInListUnused' type=kotlin.collections.MutableIterator<@[EnhancedNullability] .P> origin=null + $this: GET_VAR 'val tmp_0: kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> declared in .testForInListUnused' type=kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> origin=null body: BLOCK type=kotlin.Unit origin=FOR_LOOP_INNER_WHILE - VAR FOR_LOOP_VARIABLE name:x type:.P [val] - TYPE_OP type=.P origin=IMPLICIT_NOTNULL typeOperand=.P - CALL 'public abstract fun next (): T of kotlin.collections.MutableIterator declared in kotlin.collections.MutableIterator' type=@[EnhancedNullability] .P origin=FOR_LOOP_NEXT - $this: GET_VAR 'val tmp_0: kotlin.collections.MutableIterator<@[EnhancedNullability] .P> declared in .testForInListUnused' type=kotlin.collections.MutableIterator<@[EnhancedNullability] .P> origin=null + VAR FOR_LOOP_VARIABLE name:x type:@[NotNull(value = )] .P [val] + TYPE_OP type=@[NotNull(value = )] .P origin=IMPLICIT_NOTNULL typeOperand=@[NotNull(value = )] .P + CALL 'public abstract fun next (): T of kotlin.collections.MutableIterator declared in kotlin.collections.MutableIterator' type=@[EnhancedNullability] @[NotNull(value = )] .P origin=FOR_LOOP_NEXT + $this: GET_VAR 'val tmp_0: kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> declared in .testForInListUnused' type=kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> origin=null BLOCK type=kotlin.Unit origin=null FUN name:testForInListDestructured visibility:public modality:FINAL <> () returnType:kotlin.Unit BLOCK_BODY BLOCK type=kotlin.Unit origin=FOR_LOOP - VAR FOR_LOOP_ITERATOR name:tmp_1 type:kotlin.collections.MutableIterator<@[EnhancedNullability] .P> [val] - CALL 'public abstract fun iterator (): kotlin.collections.MutableIterator declared in kotlin.collections.MutableList' type=kotlin.collections.MutableIterator<@[EnhancedNullability] .P> origin=FOR_LOOP_ITERATOR - $this: CALL 'public open fun listOfNotNull (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] .P>? declared in .J' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] .P>? origin=null + VAR FOR_LOOP_ITERATOR name:tmp_1 type:kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> [val] + CALL 'public abstract fun iterator (): kotlin.collections.MutableIterator declared in kotlin.collections.MutableList' type=kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> origin=FOR_LOOP_ITERATOR + $this: CALL 'public open fun listOfNotNull (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] @[NotNull(value = )] .P>? declared in .J' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] @[NotNull(value = )] .P>? origin=null WHILE label=null origin=FOR_LOOP_INNER_WHILE condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.MutableIterator' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT - $this: GET_VAR 'val tmp_1: kotlin.collections.MutableIterator<@[EnhancedNullability] .P> declared in .testForInListDestructured' type=kotlin.collections.MutableIterator<@[EnhancedNullability] .P> origin=null + $this: GET_VAR 'val tmp_1: kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> declared in .testForInListDestructured' type=kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> origin=null body: BLOCK type=kotlin.Unit origin=FOR_LOOP_INNER_WHILE - VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:.P [val] - TYPE_OP type=.P origin=IMPLICIT_NOTNULL typeOperand=.P - CALL 'public abstract fun next (): T of kotlin.collections.MutableIterator declared in kotlin.collections.MutableIterator' type=@[EnhancedNullability] .P origin=FOR_LOOP_NEXT - $this: GET_VAR 'val tmp_1: kotlin.collections.MutableIterator<@[EnhancedNullability] .P> declared in .testForInListDestructured' type=kotlin.collections.MutableIterator<@[EnhancedNullability] .P> origin=null + VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:@[NotNull(value = )] .P [val] + TYPE_OP type=@[NotNull(value = )] .P origin=IMPLICIT_NOTNULL typeOperand=@[NotNull(value = )] .P + CALL 'public abstract fun next (): T of kotlin.collections.MutableIterator declared in kotlin.collections.MutableIterator' type=@[EnhancedNullability] @[NotNull(value = )] .P origin=FOR_LOOP_NEXT + $this: GET_VAR 'val tmp_1: kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> declared in .testForInListDestructured' type=kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> origin=null VAR name:x type:kotlin.Int [val] CALL 'public final fun component1 (): kotlin.Int declared in .P' type=kotlin.Int origin=COMPONENT_N(index=1) - $this: GET_VAR 'val tmp_2: .P declared in .testForInListDestructured' type=.P origin=null + $this: GET_VAR 'val tmp_2: @[NotNull(value = )] .P declared in .testForInListDestructured' type=@[NotNull(value = )] .P origin=null VAR name:y type:kotlin.Int [val] CALL 'public final fun component2 (): kotlin.Int declared in .P' type=kotlin.Int origin=COMPONENT_N(index=2) - $this: GET_VAR 'val tmp_2: .P declared in .testForInListDestructured' type=.P origin=null + $this: GET_VAR 'val tmp_2: @[NotNull(value = )] .P declared in .testForInListDestructured' type=@[NotNull(value = )] .P origin=null BLOCK type=kotlin.Unit origin=null FUN name:testDesugaredForInList visibility:public modality:FINAL <> () returnType:kotlin.Unit BLOCK_BODY - VAR name:iterator type:kotlin.collections.MutableIterator<@[EnhancedNullability] .P> [val] - CALL 'public abstract fun iterator (): kotlin.collections.MutableIterator declared in kotlin.collections.MutableList' type=kotlin.collections.MutableIterator<@[EnhancedNullability] .P> origin=null - $this: CALL 'public open fun listOfNotNull (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] .P>? declared in .J' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] .P>? origin=null + VAR name:iterator type:kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> [val] + CALL 'public abstract fun iterator (): kotlin.collections.MutableIterator declared in kotlin.collections.MutableList' type=kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> origin=null + $this: CALL 'public open fun listOfNotNull (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] @[NotNull(value = )] .P>? declared in .J' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] @[NotNull(value = )] .P>? origin=null WHILE label=null origin=WHILE_LOOP condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.MutableIterator' type=kotlin.Boolean origin=null - $this: GET_VAR 'val iterator: kotlin.collections.MutableIterator<@[EnhancedNullability] .P> declared in .testDesugaredForInList' type=kotlin.collections.MutableIterator<@[EnhancedNullability] .P> origin=null + $this: GET_VAR 'val iterator: kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> declared in .testDesugaredForInList' type=kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> origin=null body: BLOCK type=kotlin.Unit origin=null - VAR name:x type:.P [val] - TYPE_OP type=.P origin=IMPLICIT_NOTNULL typeOperand=.P - CALL 'public abstract fun next (): T of kotlin.collections.MutableIterator declared in kotlin.collections.MutableIterator' type=@[EnhancedNullability] .P origin=null - $this: GET_VAR 'val iterator: kotlin.collections.MutableIterator<@[EnhancedNullability] .P> declared in .testDesugaredForInList' type=kotlin.collections.MutableIterator<@[EnhancedNullability] .P> origin=null + VAR name:x type:@[NotNull(value = )] .P [val] + TYPE_OP type=@[NotNull(value = )] .P origin=IMPLICIT_NOTNULL typeOperand=@[NotNull(value = )] .P + CALL 'public abstract fun next (): T of kotlin.collections.MutableIterator declared in kotlin.collections.MutableIterator' type=@[EnhancedNullability] @[NotNull(value = )] .P origin=null + $this: GET_VAR 'val iterator: kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> declared in .testDesugaredForInList' type=kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> origin=null FUN name:testForInArrayUnused visibility:public modality:FINAL <> (j:.J) returnType:kotlin.Unit VALUE_PARAMETER name:j index:0 type:.J BLOCK_BODY @@ -71,22 +71,22 @@ FILE fqName: fileName:/enhancedNullabilityInForLoop.kt FUN name:testForInListUse visibility:public modality:FINAL <> () returnType:kotlin.Unit BLOCK_BODY BLOCK type=kotlin.Unit origin=FOR_LOOP - VAR FOR_LOOP_ITERATOR name:tmp_4 type:kotlin.collections.MutableIterator<@[EnhancedNullability] .P> [val] - CALL 'public abstract fun iterator (): kotlin.collections.MutableIterator declared in kotlin.collections.MutableList' type=kotlin.collections.MutableIterator<@[EnhancedNullability] .P> origin=FOR_LOOP_ITERATOR - $this: CALL 'public open fun listOfNotNull (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] .P>? declared in .J' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] .P>? origin=null + VAR FOR_LOOP_ITERATOR name:tmp_4 type:kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> [val] + CALL 'public abstract fun iterator (): kotlin.collections.MutableIterator declared in kotlin.collections.MutableList' type=kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> origin=FOR_LOOP_ITERATOR + $this: CALL 'public open fun listOfNotNull (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] @[NotNull(value = )] .P>? declared in .J' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] @[NotNull(value = )] .P>? origin=null WHILE label=null origin=FOR_LOOP_INNER_WHILE condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.MutableIterator' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT - $this: GET_VAR 'val tmp_4: kotlin.collections.MutableIterator<@[EnhancedNullability] .P> declared in .testForInListUse' type=kotlin.collections.MutableIterator<@[EnhancedNullability] .P> origin=null + $this: GET_VAR 'val tmp_4: kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> declared in .testForInListUse' type=kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> origin=null body: BLOCK type=kotlin.Unit origin=FOR_LOOP_INNER_WHILE - VAR FOR_LOOP_VARIABLE name:x type:.P [val] - TYPE_OP type=.P origin=IMPLICIT_NOTNULL typeOperand=.P - CALL 'public abstract fun next (): T of kotlin.collections.MutableIterator declared in kotlin.collections.MutableIterator' type=@[EnhancedNullability] .P origin=FOR_LOOP_NEXT - $this: GET_VAR 'val tmp_4: kotlin.collections.MutableIterator<@[EnhancedNullability] .P> declared in .testForInListUse' type=kotlin.collections.MutableIterator<@[EnhancedNullability] .P> origin=null + VAR FOR_LOOP_VARIABLE name:x type:@[NotNull(value = )] .P [val] + TYPE_OP type=@[NotNull(value = )] .P origin=IMPLICIT_NOTNULL typeOperand=@[NotNull(value = )] .P + CALL 'public abstract fun next (): T of kotlin.collections.MutableIterator declared in kotlin.collections.MutableIterator' type=@[EnhancedNullability] @[NotNull(value = )] .P origin=FOR_LOOP_NEXT + $this: GET_VAR 'val tmp_4: kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> declared in .testForInListUse' type=kotlin.collections.MutableIterator<@[EnhancedNullability] @[NotNull(value = )] .P> origin=null BLOCK type=kotlin.Unit origin=null CALL 'public final fun use (s: .P): kotlin.Unit declared in ' type=kotlin.Unit origin=null - s: GET_VAR 'val x: .P declared in .testForInListUse' type=.P origin=null + s: GET_VAR 'val x: @[NotNull(value = )] .P declared in .testForInListUse' type=@[NotNull(value = )] .P origin=null CALL 'public open fun use (s: @[EnhancedNullability] .P): kotlin.Unit declared in .J' type=kotlin.Unit origin=null - s: GET_VAR 'val x: .P declared in .testForInListUse' type=.P origin=null + s: GET_VAR 'val x: @[NotNull(value = )] .P declared in .testForInListUse' type=@[NotNull(value = )] .P origin=null FUN name:testForInArrayUse visibility:public modality:FINAL <> (j:.J) returnType:kotlin.Unit VALUE_PARAMETER name:j index:0 type:.J BLOCK_BODY diff --git a/compiler/testData/ir/irText/types/nullChecks/enhancedNullabilityInForLoop.fir.kt.txt b/compiler/testData/ir/irText/types/nullChecks/enhancedNullabilityInForLoop.fir.kt.txt index 115636a1f14..d6d0808f3c7 100644 --- a/compiler/testData/ir/irText/types/nullChecks/enhancedNullabilityInForLoop.fir.kt.txt +++ b/compiler/testData/ir/irText/types/nullChecks/enhancedNullabilityInForLoop.fir.kt.txt @@ -3,9 +3,9 @@ fun use(s: P) { fun testForInListUnused() { { // BLOCK - val : MutableIterator<@EnhancedNullability P> = listOfNotNull().iterator() + val : MutableIterator<@EnhancedNullability @NotNull P> = listOfNotNull().iterator() while (.hasNext()) { // BLOCK - val x: P = .next() /*!! P */ + val x: @NotNull P = .next() /*!! @NotNull P */ { // BLOCK } } @@ -14,9 +14,9 @@ fun testForInListUnused() { fun testForInListDestructured() { { // BLOCK - val : MutableIterator<@EnhancedNullability P> = listOfNotNull().iterator() + val : MutableIterator<@EnhancedNullability @NotNull P> = listOfNotNull().iterator() while (.hasNext()) { // BLOCK - val : P = .next() /*!! P */ + val : @NotNull P = .next() /*!! @NotNull P */ val x: Int = .component1() val y: Int = .component2() { // BLOCK @@ -26,9 +26,9 @@ fun testForInListDestructured() { } fun testDesugaredForInList() { - val iterator: MutableIterator<@EnhancedNullability P> = listOfNotNull().iterator() + val iterator: MutableIterator<@EnhancedNullability @NotNull P> = listOfNotNull().iterator() while (iterator.hasNext()) { // BLOCK - val x: P = iterator.next() /*!! P */ + val x: @NotNull P = iterator.next() /*!! @NotNull P */ } } @@ -45,9 +45,9 @@ fun testForInArrayUnused(j: J) { fun testForInListUse() { { // BLOCK - val : MutableIterator<@EnhancedNullability P> = listOfNotNull().iterator() + val : MutableIterator<@EnhancedNullability @NotNull P> = listOfNotNull().iterator() while (.hasNext()) { // BLOCK - val x: P = .next() /*!! P */ + val x: @NotNull P = .next() /*!! @NotNull P */ { // BLOCK use(s = x) use(s = x)