diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java index ae708b7d994..4edf67e3206 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java @@ -41290,6 +41290,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/testsWithStdLib/typealias/hashMapTypeAlias.kt"); } + @Test + @TestMetadata("nothingTypeAlias.kt") + public void testNothingTypeAlias() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/typealias/nothingTypeAlias.kt"); + } + @Test @TestMetadata("typeAliasSamAdapterConstructors.kt") public void testTypeAliasSamAdapterConstructors() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java index b4968f3f3c6..7b362e9e4eb 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java @@ -41290,6 +41290,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/testsWithStdLib/typealias/hashMapTypeAlias.kt"); } + @Test + @TestMetadata("nothingTypeAlias.kt") + public void testNothingTypeAlias() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/typealias/nothingTypeAlias.kt"); + } + @Test @TestMetadata("typeAliasSamAdapterConstructors.kt") public void testTypeAliasSamAdapterConstructors() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java index 26278132bea..ff045ff422f 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java @@ -41354,6 +41354,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/testsWithStdLib/typealias/hashMapTypeAlias.kt"); } + @Test + @TestMetadata("nothingTypeAlias.kt") + public void testNothingTypeAlias() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/typealias/nothingTypeAlias.kt"); + } + @Test @TestMetadata("typeAliasSamAdapterConstructors.kt") public void testTypeAliasSamAdapterConstructors() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java index 6a4a9ffe1af..90a1c96eb8c 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java @@ -41468,6 +41468,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/testsWithStdLib/typealias/hashMapTypeAlias.kt"); } + @Test + @TestMetadata("nothingTypeAlias.kt") + public void testNothingTypeAlias() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/typealias/nothingTypeAlias.kt"); + } + @Test @TestMetadata("typeAliasSamAdapterConstructors.kt") public void testTypeAliasSamAdapterConstructors() throws Exception { diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt index 7ee9b25e903..32bcb2c4ce8 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt @@ -143,12 +143,12 @@ interface ConeTypeContext : TypeSystemContext, TypeSystemOptimizationContext, Ty override fun SimpleTypeMarker.isMarkedNullable(): Boolean { require(this is ConeKotlinType) - return this.nullability.isNullable + return fullyExpandedType(session).nullability.isNullable } override fun SimpleTypeMarker.withNullability(nullable: Boolean): SimpleTypeMarker { require(this is ConeKotlinType) - return withNullability(ConeNullability.create(nullable), session.typeContext) + return fullyExpandedType(session).withNullability(ConeNullability.create(nullable), session.typeContext) as SimpleTypeMarker } override fun SimpleTypeMarker.typeConstructor(): TypeConstructorMarker { diff --git a/compiler/testData/diagnostics/testsWithStdLib/typealias/nothingTypeAlias.kt b/compiler/testData/diagnostics/testsWithStdLib/typealias/nothingTypeAlias.kt new file mode 100644 index 00000000000..d4099b341e4 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/typealias/nothingTypeAlias.kt @@ -0,0 +1,22 @@ +// FIR_IDENTICAL +// ISSUE: KT-60154 + +// MODULE: lib +// FILE: lib.kt + +interface Column + +fun column(): Column = TODO() + +fun column(id: String): Column = TODO() + +typealias Void = Nothing? + +// MODULE: app(lib) +// FILE: app.kt + +interface RowData> + +typealias ReadonlyArray = Array + +private val ALL_COLUMNS: ReadonlyArray, *>> = arrayOf(column(id = ""), column()) diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index cc5dcad264a..fbe72979cae 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -42472,6 +42472,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/testsWithStdLib/typealias/hashMapTypeAlias.kt"); } + @Test + @TestMetadata("nothingTypeAlias.kt") + public void testNothingTypeAlias() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/typealias/nothingTypeAlias.kt"); + } + @Test @TestMetadata("typeAliasSamAdapterConstructors.kt") public void testTypeAliasSamAdapterConstructors() throws Exception {