diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt index 64358754726..8ce55e134ee 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt @@ -70,6 +70,11 @@ class Fir2IrImplicitCastInserter( override fun visitResolvedQualifier(resolvedQualifier: FirResolvedQualifier, data: IrElement): IrElement = data + override fun visitErrorResolvedQualifier(errorResolvedQualifier: FirErrorResolvedQualifier, data: IrElement): IrElement { + // Support for error suppression case + return visitResolvedQualifier(errorResolvedQualifier, data) + } + override fun visitGetClassCall(getClassCall: FirGetClassCall, data: IrElement): IrElement = data override fun visitFunctionCall(functionCall: FirFunctionCall, data: IrElement): IrElement = data diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt index f5e9f5ef821..702259e0348 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt @@ -1537,6 +1537,11 @@ class Fir2IrVisitor( return callGenerator.convertToGetObject(resolvedQualifier) } + override fun visitErrorResolvedQualifier(errorResolvedQualifier: FirErrorResolvedQualifier, data: Any?): IrElement { + // Support for error suppression case + return visitResolvedQualifier(errorResolvedQualifier, data) + } + private fun LogicOperationKind.toIrDynamicOperator() = when (this) { LogicOperationKind.AND -> IrDynamicOperator.ANDAND LogicOperationKind.OR -> IrDynamicOperator.OROR diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java index b3912c6f98a..3d59035108e 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java @@ -18865,6 +18865,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr runTest("compiler/testData/codegen/box/fir/staticImportViaInheritance.kt"); } + @Test + @TestMetadata("suppressedInvisibleReferenceQualifier.kt") + public void testSuppressedInvisibleReferenceQualifier() throws Exception { + runTest("compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt"); + } + @Test @TestMetadata("SuspendExtension.kt") public void testSuspendExtension() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java index 42f1245ff30..6b10d0168af 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java @@ -18865,6 +18865,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo runTest("compiler/testData/codegen/box/fir/staticImportViaInheritance.kt"); } + @Test + @TestMetadata("suppressedInvisibleReferenceQualifier.kt") + public void testSuppressedInvisibleReferenceQualifier() throws Exception { + runTest("compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt"); + } + @Test @TestMetadata("SuspendExtension.kt") public void testSuspendExtension() throws Exception { diff --git a/compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt b/compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt new file mode 100644 index 00000000000..88f8e7f9106 --- /dev/null +++ b/compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt @@ -0,0 +1,22 @@ +// MODULE: lib +// FILE: lib.kt +package lib + +interface Key { + val s get() = "OK" +} + +internal class Internal { + companion object : Key +} + +// MODULE: box(lib) +// FILE: box.kt +package app + +import lib.* + +fun foo(key: Key) = key.s + +@Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") +fun box() = foo(Internal) \ No newline at end of file diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java index 8a340ec50a2..b338af0020e 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java @@ -17917,6 +17917,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/fir/SamWithReceiverMavenProjectImportHandler.kt"); } + @Test + @TestMetadata("suppressedInvisibleReferenceQualifier.kt") + public void testSuppressedInvisibleReferenceQualifier() throws Exception { + runTest("compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt"); + } + @Test @TestMetadata("SuspendExtension.kt") public void testSuspendExtension() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java index 388a80dc683..4a8bdd66a4d 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java @@ -18865,6 +18865,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/fir/staticImportViaInheritance.kt"); } + @Test + @TestMetadata("suppressedInvisibleReferenceQualifier.kt") + public void testSuppressedInvisibleReferenceQualifier() throws Exception { + runTest("compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt"); + } + @Test @TestMetadata("SuspendExtension.kt") public void testSuspendExtension() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java index 37709bff6f1..5ee6e1b1415 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java @@ -18865,6 +18865,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack runTest("compiler/testData/codegen/box/fir/staticImportViaInheritance.kt"); } + @Test + @TestMetadata("suppressedInvisibleReferenceQualifier.kt") + public void testSuppressedInvisibleReferenceQualifier() throws Exception { + runTest("compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt"); + } + @Test @TestMetadata("SuspendExtension.kt") public void testSuspendExtension() throws Exception { diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index be340cec0a8..2a24cbf5716 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -15695,6 +15695,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/fir/staticImportViaInheritance.kt"); } + @TestMetadata("suppressedInvisibleReferenceQualifier.kt") + public void testSuppressedInvisibleReferenceQualifier() throws Exception { + runTest("compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt"); + } + @TestMetadata("SuspendExtension.kt") public void testSuspendExtension() throws Exception { runTest("compiler/testData/codegen/box/fir/SuspendExtension.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java index f21e5421c1a..1aecbd18f3d 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java @@ -13867,6 +13867,12 @@ public class FirJsCodegenBoxTestGenerated extends AbstractFirJsCodegenBoxTest { runTest("compiler/testData/codegen/box/fir/SamWithReceiverMavenProjectImportHandler.kt"); } + @Test + @TestMetadata("suppressedInvisibleReferenceQualifier.kt") + public void testSuppressedInvisibleReferenceQualifier() throws Exception { + runTest("compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt"); + } + @Test @TestMetadata("toLong.kt") public void testToLong() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java index 7c77104c954..a40d62e9f9e 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java @@ -13867,6 +13867,12 @@ public class FirJsES6CodegenBoxTestGenerated extends AbstractFirJsES6CodegenBoxT runTest("compiler/testData/codegen/box/fir/SamWithReceiverMavenProjectImportHandler.kt"); } + @Test + @TestMetadata("suppressedInvisibleReferenceQualifier.kt") + public void testSuppressedInvisibleReferenceQualifier() throws Exception { + runTest("compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt"); + } + @Test @TestMetadata("toLong.kt") public void testToLong() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java index 66f8b174c7e..b60f862edf0 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java @@ -13867,6 +13867,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/fir/SamWithReceiverMavenProjectImportHandler.kt"); } + @Test + @TestMetadata("suppressedInvisibleReferenceQualifier.kt") + public void testSuppressedInvisibleReferenceQualifier() throws Exception { + runTest("compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt"); + } + @Test @TestMetadata("toLong.kt") public void testToLong() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java index c760806f775..ed330e2f4bb 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java @@ -13867,6 +13867,12 @@ public class IrJsES6CodegenBoxTestGenerated extends AbstractIrJsES6CodegenBoxTes runTest("compiler/testData/codegen/box/fir/SamWithReceiverMavenProjectImportHandler.kt"); } + @Test + @TestMetadata("suppressedInvisibleReferenceQualifier.kt") + public void testSuppressedInvisibleReferenceQualifier() throws Exception { + runTest("compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt"); + } + @Test @TestMetadata("toLong.kt") public void testToLong() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestGenerated.java index 2b0225e69f6..a4316ba8b23 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestGenerated.java @@ -14988,6 +14988,12 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe runTest("compiler/testData/codegen/box/fir/SamWithReceiverMavenProjectImportHandler.kt"); } + @Test + @TestMetadata("suppressedInvisibleReferenceQualifier.kt") + public void testSuppressedInvisibleReferenceQualifier() throws Exception { + runTest("compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt"); + } + @Test @TestMetadata("toLong.kt") public void testToLong() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestNoPLGenerated.java index fa4bde2d1e0..edd551a0b65 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestNoPLGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestNoPLGenerated.java @@ -15346,6 +15346,12 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB runTest("compiler/testData/codegen/box/fir/SamWithReceiverMavenProjectImportHandler.kt"); } + @Test + @TestMetadata("suppressedInvisibleReferenceQualifier.kt") + public void testSuppressedInvisibleReferenceQualifier() throws Exception { + runTest("compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt"); + } + @Test @TestMetadata("toLong.kt") public void testToLong() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java index 12bf012e647..4dc673f5602 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java @@ -14810,6 +14810,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/fir/SamWithReceiverMavenProjectImportHandler.kt"); } + @Test + @TestMetadata("suppressedInvisibleReferenceQualifier.kt") + public void testSuppressedInvisibleReferenceQualifier() throws Exception { + runTest("compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt"); + } + @Test @TestMetadata("toLong.kt") public void testToLong() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestNoPLGenerated.java index bcc794afa25..de1444f63cb 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestNoPLGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestNoPLGenerated.java @@ -14989,6 +14989,12 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT runTest("compiler/testData/codegen/box/fir/SamWithReceiverMavenProjectImportHandler.kt"); } + @Test + @TestMetadata("suppressedInvisibleReferenceQualifier.kt") + public void testSuppressedInvisibleReferenceQualifier() throws Exception { + runTest("compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt"); + } + @Test @TestMetadata("toLong.kt") public void testToLong() throws Exception { diff --git a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java index ef6ec429e50..bd5649b78d6 100644 --- a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java +++ b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java @@ -13843,6 +13843,12 @@ public class FirWasmCodegenBoxTestGenerated extends AbstractFirWasmCodegenBoxTes runTest("compiler/testData/codegen/box/fir/SamWithReceiverMavenProjectImportHandler.kt"); } + @Test + @TestMetadata("suppressedInvisibleReferenceQualifier.kt") + public void testSuppressedInvisibleReferenceQualifier() throws Exception { + runTest("compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt"); + } + @Test @TestMetadata("toLong.kt") public void testToLong() throws Exception { diff --git a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java index a1b45008c40..55bba00829e 100644 --- a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java +++ b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java @@ -13843,6 +13843,12 @@ public class K1WasmCodegenBoxTestGenerated extends AbstractK1WasmCodegenBoxTest runTest("compiler/testData/codegen/box/fir/SamWithReceiverMavenProjectImportHandler.kt"); } + @Test + @TestMetadata("suppressedInvisibleReferenceQualifier.kt") + public void testSuppressedInvisibleReferenceQualifier() throws Exception { + runTest("compiler/testData/codegen/box/fir/suppressedInvisibleReferenceQualifier.kt"); + } + @Test @TestMetadata("toLong.kt") public void testToLong() throws Exception {