From 498f2e534a68ce843ff066f8ece92edfba8622de Mon Sep 17 00:00:00 2001 From: Ivan Kochurkin Date: Tue, 10 Oct 2023 20:05:39 +0200 Subject: [PATCH] [FIR] Don't enhance `Int` and `String` Java final static fields It's effectively a breaking change (^KT-62558) K2 assigns flexible type to all static fields (from Java) and, for example, `String? becomes String unlike K1. It affects IR signature generating. That's why signature dump is disabled for some tests. ^KT-57811 Fixed ^KT-61786 Fixed --- ...cCompilerTestFirTestdataTestGenerated.java | 6 ++++ ...osticCompilerFirTestDataTestGenerated.java | 6 ++++ ...nhancementOnFinalStaticConstFields.fir.txt | 6 ++++ .../noEnhancementOnFinalStaticConstFields.kt | 15 ++++++++ .../j+k/StaticFromBaseClass.fir.txt | 2 +- .../FirLightTreeDiagnosticsTestGenerated.java | 6 ++++ .../FirPsiDiagnosticTestGenerated.java | 6 ++++ .../fir/analysis/checkers/FirConstChecks.kt | 2 +- .../java/enhancement/SignatureEnhancement.kt | 9 +---- ...ccessInterfaceMemberViaReceiver.fir.ir.txt | 3 +- .../EnumEntryVsStaticAmbiguity.fir.diag.txt | 2 +- .../EnumEntryVsStaticAmbiguity3.fir.diag.txt | 2 +- .../tests/modifiers/const/kotlinJavaCycle.kt | 2 -- .../tests/modifiers/const/kt12248.kt | 2 -- ...StaticInterfaceFieldViaKotlinClass.fir.txt | 4 +-- .../ir/irText/declarations/kt29833.fir.ir.txt | 18 +++++----- .../ir/irText/declarations/kt29833.fir.kt.txt | 4 +-- .../ir/irText/declarations/kt29833.kt | 1 + .../ir/irText/declarations/kt29833.sig.kt.txt | 36 ------------------- .../SameJavaFieldReferences.fir.ir.txt | 7 ++++ .../SameJavaFieldReferences.fir.kt.txt | 4 +++ .../firProblems/SameJavaFieldReferences.kt | 1 - .../SameJavaFieldReferences.kt.txt | 1 + .../annotations/StringConstantInParam.fir.txt | 2 +- .../compiledJava/static/StaticFinal.fir.txt | 6 ++-- 25 files changed, 82 insertions(+), 71 deletions(-) create mode 100644 compiler/fir/analysis-tests/testData/resolve/inference/noEnhancementOnFinalStaticConstFields.fir.txt create mode 100644 compiler/fir/analysis-tests/testData/resolve/inference/noEnhancementOnFinalStaticConstFields.kt delete mode 100644 compiler/testData/ir/irText/declarations/kt29833.sig.kt.txt create mode 100644 compiler/testData/ir/irText/firProblems/SameJavaFieldReferences.fir.ir.txt create mode 100644 compiler/testData/ir/irText/firProblems/SameJavaFieldReferences.fir.kt.txt diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFirTestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFirTestdataTestGenerated.java index a663572ddc3..59afdaf4306 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFirTestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFirTestdataTestGenerated.java @@ -3435,6 +3435,12 @@ public class DiagnosticCompilerTestFirTestdataTestGenerated extends AbstractDiag runTest("compiler/fir/analysis-tests/testData/resolve/inference/nestedLambdas.kt"); } + @Test + @TestMetadata("noEnhancementOnFinalStaticConstFields.kt") + public void testNoEnhancementOnFinalStaticConstFields() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolve/inference/noEnhancementOnFinalStaticConstFields.kt"); + } + @Test @TestMetadata("nullableIntegerLiteralType.kt") public void testNullableIntegerLiteralType() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated.java index fac495e3564..df80514aec2 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated.java @@ -3435,6 +3435,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated runTest("compiler/fir/analysis-tests/testData/resolve/inference/nestedLambdas.kt"); } + @Test + @TestMetadata("noEnhancementOnFinalStaticConstFields.kt") + public void testNoEnhancementOnFinalStaticConstFields() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolve/inference/noEnhancementOnFinalStaticConstFields.kt"); + } + @Test @TestMetadata("nullableIntegerLiteralType.kt") public void testNullableIntegerLiteralType() throws Exception { diff --git a/compiler/fir/analysis-tests/testData/resolve/inference/noEnhancementOnFinalStaticConstFields.fir.txt b/compiler/fir/analysis-tests/testData/resolve/inference/noEnhancementOnFinalStaticConstFields.fir.txt new file mode 100644 index 00000000000..386004b64b7 --- /dev/null +++ b/compiler/fir/analysis-tests/testData/resolve/inference/noEnhancementOnFinalStaticConstFields.fir.txt @@ -0,0 +1,6 @@ +FILE: main.kt + public final fun test(x1: R|kotlin/String?|): R|kotlin/String| { + lval x: R|kotlin/String?| + R|/x| = R|/x1| ?: Q|JavaClass|.R|/JavaClass.X*s| + ^test R|/x| + } diff --git a/compiler/fir/analysis-tests/testData/resolve/inference/noEnhancementOnFinalStaticConstFields.kt b/compiler/fir/analysis-tests/testData/resolve/inference/noEnhancementOnFinalStaticConstFields.kt new file mode 100644 index 00000000000..fd8f7c403e3 --- /dev/null +++ b/compiler/fir/analysis-tests/testData/resolve/inference/noEnhancementOnFinalStaticConstFields.kt @@ -0,0 +1,15 @@ +// ISSUE: KT-57811, KT-61786 + +// FILE: JavaClass.java + +public class JavaClass { + public static final String X = null; +} + +// FILE: main.kt + +fun test(x1: String?): String { + val x: String? + x = x1 ?: JavaClass.X + return x +} \ No newline at end of file diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/j+k/StaticFromBaseClass.fir.txt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/j+k/StaticFromBaseClass.fir.txt index e3626c1dea9..10f284331d9 100644 --- a/compiler/fir/analysis-tests/testData/resolveWithStdlib/j+k/StaticFromBaseClass.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/j+k/StaticFromBaseClass.fir.txt @@ -1,5 +1,5 @@ FILE: main.kt public final fun test(): R|kotlin/Unit| { - lval project: R|kotlin/String| = Q|PlatformDataKeys|.R|/CommonDataKeys.PROJECT*s| + lval project: R|kotlin/String!| = Q|PlatformDataKeys|.R|/CommonDataKeys.PROJECT*s| lval member: R|kotlin/String!| = R|/PlatformDataKeys.PlatformDataKeys|().R|/CommonDataKeys.MEMBER| } diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeDiagnosticsTestGenerated.java index 6ffec6428ad..a2bc2e4cd9f 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeDiagnosticsTestGenerated.java @@ -3435,6 +3435,12 @@ public class FirLightTreeDiagnosticsTestGenerated extends AbstractFirLightTreeDi runTest("compiler/fir/analysis-tests/testData/resolve/inference/nestedLambdas.kt"); } + @Test + @TestMetadata("noEnhancementOnFinalStaticConstFields.kt") + public void testNoEnhancementOnFinalStaticConstFields() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolve/inference/noEnhancementOnFinalStaticConstFields.kt"); + } + @Test @TestMetadata("nullableIntegerLiteralType.kt") public void testNullableIntegerLiteralType() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiDiagnosticTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiDiagnosticTestGenerated.java index 9937c805e6f..85df81acfb7 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiDiagnosticTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiDiagnosticTestGenerated.java @@ -3435,6 +3435,12 @@ public class FirPsiDiagnosticTestGenerated extends AbstractFirPsiDiagnosticTest runTest("compiler/fir/analysis-tests/testData/resolve/inference/nestedLambdas.kt"); } + @Test + @TestMetadata("noEnhancementOnFinalStaticConstFields.kt") + public void testNoEnhancementOnFinalStaticConstFields() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolve/inference/noEnhancementOnFinalStaticConstFields.kt"); + } + @Test @TestMetadata("nullableIntegerLiteralType.kt") public void testNullableIntegerLiteralType() throws Exception { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirConstChecks.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirConstChecks.kt index 7b005f87144..274e2bd53b5 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirConstChecks.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirConstChecks.kt @@ -150,7 +150,7 @@ internal fun checkConstantArguments( for (exp in expression.arguments.plus(expression.dispatchReceiver).plus(expression.extensionReceiver)) { if (exp == null) continue - val expClassId = exp.resolvedType.fullyExpandedClassId(session) + val expClassId = exp.resolvedType.lowerBoundIfFlexible().fullyExpandedClassId(session) // TODO, KT-59823: add annotation for allowed constant types if (expClassId !in StandardClassIds.constantAllowedTypes) { return ConstantArgumentKind.NOT_CONST diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt index 875217835a7..8cc91cdb425 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt @@ -117,14 +117,7 @@ class FirSignatureEnhancement( val newReturnTypeRef = enhanceReturnType( firElement, emptyList(), firElement.computeDefaultQualifiers(), predefinedEnhancementInfo = null - ).let { - val lowerBound = it.type.lowerBoundIfFlexible() - if ((lowerBound.isString || lowerBound.isInt) && firElement.isStatic && firElement.initializer != null) { - it.withReplacedConeType(it.type.withNullability(ConeNullability.NOT_NULL, session.typeContext)) - } else { - it - } - } + ) val symbol = FirFieldSymbol(original.callableId) buildJavaField { diff --git a/compiler/testData/codegen/box/javaVisibility/package/cannotAccessInterfaceMemberViaReceiver.fir.ir.txt b/compiler/testData/codegen/box/javaVisibility/package/cannotAccessInterfaceMemberViaReceiver.fir.ir.txt index cab04570505..f4c42dcde7b 100644 --- a/compiler/testData/codegen/box/javaVisibility/package/cannotAccessInterfaceMemberViaReceiver.fir.ir.txt +++ b/compiler/testData/codegen/box/javaVisibility/package/cannotAccessInterfaceMemberViaReceiver.fir.ir.txt @@ -9,7 +9,8 @@ FILE fqName: fileName:/Child.kt $this: VALUE_PARAMETER name: type:.Child BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun foo (): kotlin.String declared in .Child' - GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:publicStaticField type:kotlin.String visibility:public [final,static]' type=kotlin.String origin=GET_PROPERTY + TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String + GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:publicStaticField type:@[FlexibleNullability] kotlin.String? visibility:public [final,static]' type=@[FlexibleNullability] kotlin.String? origin=GET_PROPERTY FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in javapackage.PublicParentClass diff --git a/compiler/testData/diagnostics/tests/imports/EnumEntryVsStaticAmbiguity.fir.diag.txt b/compiler/testData/diagnostics/tests/imports/EnumEntryVsStaticAmbiguity.fir.diag.txt index 4c7707671f7..0290182e902 100644 --- a/compiler/testData/diagnostics/tests/imports/EnumEntryVsStaticAmbiguity.fir.diag.txt +++ b/compiler/testData/diagnostics/tests/imports/EnumEntryVsStaticAmbiguity.fir.diag.txt @@ -1 +1 @@ -/test.kt:(154,158): error: Overload resolution ambiguity between candidates: [static field SOME: String, static enum entry SOME: SomeEnum] +/test.kt:(154,158): error: Overload resolution ambiguity between candidates: [static field SOME: String!, static enum entry SOME: SomeEnum] diff --git a/compiler/testData/diagnostics/tests/imports/EnumEntryVsStaticAmbiguity3.fir.diag.txt b/compiler/testData/diagnostics/tests/imports/EnumEntryVsStaticAmbiguity3.fir.diag.txt index eaf3c3708a1..95bc8521b41 100644 --- a/compiler/testData/diagnostics/tests/imports/EnumEntryVsStaticAmbiguity3.fir.diag.txt +++ b/compiler/testData/diagnostics/tests/imports/EnumEntryVsStaticAmbiguity3.fir.diag.txt @@ -1 +1 @@ -/test.kt:(160,164): error: Overload resolution ambiguity between candidates: [static field SOME: String, static enum entry SOME: SomeEnum] +/test.kt:(160,164): error: Overload resolution ambiguity between candidates: [static field SOME: String!, static enum entry SOME: SomeEnum] diff --git a/compiler/testData/diagnostics/tests/modifiers/const/kotlinJavaCycle.kt b/compiler/testData/diagnostics/tests/modifiers/const/kotlinJavaCycle.kt index a4883802b04..e3cebe52216 100644 --- a/compiler/testData/diagnostics/tests/modifiers/const/kotlinJavaCycle.kt +++ b/compiler/testData/diagnostics/tests/modifiers/const/kotlinJavaCycle.kt @@ -1,5 +1,3 @@ -// IGNORE_REVERSED_RESOLVE -// IGNORE_CONTRACT_VIOLATIONS // FIR_IDENTICAL // FILE: Bar.java diff --git a/compiler/testData/diagnostics/tests/modifiers/const/kt12248.kt b/compiler/testData/diagnostics/tests/modifiers/const/kt12248.kt index a93496a207b..51711f7fef2 100644 --- a/compiler/testData/diagnostics/tests/modifiers/const/kt12248.kt +++ b/compiler/testData/diagnostics/tests/modifiers/const/kt12248.kt @@ -1,5 +1,3 @@ -// IGNORE_REVERSED_RESOLVE -// IGNORE_CONTRACT_VIOLATIONS // FIR_IDENTICAL // FILE: Bar.java diff --git a/compiler/testData/diagnostics/tests/visibility/packagePrivateStaticInterfaceFieldViaKotlinClass.fir.txt b/compiler/testData/diagnostics/tests/visibility/packagePrivateStaticInterfaceFieldViaKotlinClass.fir.txt index 1f6b65a3da3..a7dac33ae8d 100644 --- a/compiler/testData/diagnostics/tests/visibility/packagePrivateStaticInterfaceFieldViaKotlinClass.fir.txt +++ b/compiler/testData/diagnostics/tests/visibility/packagePrivateStaticInterfaceFieldViaKotlinClass.fir.txt @@ -14,8 +14,8 @@ FILE: Child.kt } public final fun foo(): R|kotlin/Unit| { - lval x: R|kotlin/String| = Q|javapackage/PublicParentClass|.R|javapackage/PackagePrivateGrandparentInterface.publicStaticField*s| - lval y: R|kotlin/String| = Q|javapackage/PublicParentClass|.R|javapackage/PackagePrivateGrandparentInterface.publicStaticField*s| + lval x: R|kotlin/String!| = Q|javapackage/PublicParentClass|.R|javapackage/PackagePrivateGrandparentInterface.publicStaticField*s| + lval y: R|kotlin/String!| = Q|javapackage/PublicParentClass|.R|javapackage/PackagePrivateGrandparentInterface.publicStaticField*s| lval z: = Q|javapackage/KotlinParentClass|.# } diff --git a/compiler/testData/ir/irText/declarations/kt29833.fir.ir.txt b/compiler/testData/ir/irText/declarations/kt29833.fir.ir.txt index 587ea1f3dfb..02ce45b3893 100644 --- a/compiler/testData/ir/irText/declarations/kt29833.fir.ir.txt +++ b/compiler/testData/ir/irText/declarations/kt29833.fir.ir.txt @@ -6,26 +6,26 @@ FILE fqName:interop fileName:/Definitions.kt DELEGATING_CONSTRUCTOR_CALL 'public constructor () declared in kotlin.Any' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:Definitions modality:FINAL visibility:public superTypes:[kotlin.Any]' PROPERTY name:KT_CONSTANT visibility:public modality:FINAL [const,val] - FIELD PROPERTY_BACKING_FIELD name:KT_CONSTANT type:kotlin.String visibility:public [final] + FIELD PROPERTY_BACKING_FIELD name:KT_CONSTANT type:@[FlexibleNullability] kotlin.String? visibility:public [final] EXPRESSION_BODY CONST String type=kotlin.String value="constant" - FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:interop.Definitions) returnType:kotlin.String + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:interop.Definitions) returnType:@[FlexibleNullability] kotlin.String? correspondingProperty: PROPERTY name:KT_CONSTANT visibility:public modality:FINAL [const,val] $this: VALUE_PARAMETER name: type:interop.Definitions BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun (): kotlin.String declared in interop.Definitions' - GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:KT_CONSTANT type:kotlin.String visibility:public [final]' type=kotlin.String origin=null + RETURN type=kotlin.Nothing from='public final fun (): @[FlexibleNullability] kotlin.String? declared in interop.Definitions' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:KT_CONSTANT type:@[FlexibleNullability] kotlin.String? visibility:public [final]' type=@[FlexibleNullability] kotlin.String? origin=null receiver: GET_VAR ': interop.Definitions declared in interop.Definitions.' type=interop.Definitions origin=null PROPERTY name:ktValue visibility:public modality:FINAL [val] - FIELD PROPERTY_BACKING_FIELD name:ktValue type:kotlin.String visibility:private [final] + FIELD PROPERTY_BACKING_FIELD name:ktValue type:@[FlexibleNullability] kotlin.String? visibility:private [final] EXPRESSION_BODY - GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:CONSTANT type:kotlin.String visibility:public [final,static]' type=kotlin.String origin=GET_PROPERTY - FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:interop.Definitions) returnType:kotlin.String + GET_FIELD 'FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:CONSTANT type:@[FlexibleNullability] kotlin.String? visibility:public [final,static]' type=@[FlexibleNullability] kotlin.String? origin=GET_PROPERTY + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:interop.Definitions) returnType:@[FlexibleNullability] kotlin.String? correspondingProperty: PROPERTY name:ktValue visibility:public modality:FINAL [val] $this: VALUE_PARAMETER name: type:interop.Definitions BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun (): kotlin.String declared in interop.Definitions' - GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:ktValue type:kotlin.String visibility:private [final]' type=kotlin.String origin=null + RETURN type=kotlin.Nothing from='public final fun (): @[FlexibleNullability] kotlin.String? declared in interop.Definitions' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:ktValue type:@[FlexibleNullability] kotlin.String? visibility:private [final]' type=@[FlexibleNullability] kotlin.String? origin=null receiver: GET_VAR ': interop.Definitions declared in interop.Definitions.' type=interop.Definitions origin=null FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: diff --git a/compiler/testData/ir/irText/declarations/kt29833.fir.kt.txt b/compiler/testData/ir/irText/declarations/kt29833.fir.kt.txt index fff97c14f7e..77c33be0584 100644 --- a/compiler/testData/ir/irText/declarations/kt29833.fir.kt.txt +++ b/compiler/testData/ir/irText/declarations/kt29833.fir.kt.txt @@ -7,11 +7,11 @@ object Definitions { } - const val KT_CONSTANT: String + const val KT_CONSTANT: @FlexibleNullability String? field = "constant" get - val ktValue: String + val ktValue: @FlexibleNullability String? field = #CONSTANT get diff --git a/compiler/testData/ir/irText/declarations/kt29833.kt b/compiler/testData/ir/irText/declarations/kt29833.kt index 3e159ea1619..1022d51ef0b 100644 --- a/compiler/testData/ir/irText/declarations/kt29833.kt +++ b/compiler/testData/ir/irText/declarations/kt29833.kt @@ -1,3 +1,4 @@ +// SKIP_SIGNATURE_DUMP // TARGET_BACKEND: JVM // FILE: Definitions.kt // IR_FILE: kt29833.txt diff --git a/compiler/testData/ir/irText/declarations/kt29833.sig.kt.txt b/compiler/testData/ir/irText/declarations/kt29833.sig.kt.txt deleted file mode 100644 index 2d0b63f6da9..00000000000 --- a/compiler/testData/ir/irText/declarations/kt29833.sig.kt.txt +++ /dev/null @@ -1,36 +0,0 @@ -package interop - -// CHECK: -// Mangled name: interop.Definitions -// Public signature: interop/Definitions|null[0] -object Definitions { - // CHECK: - // Mangled name: interop.Definitions{}ktValue - // Public signature: interop/Definitions.ktValue|-7932704459611172354[0] - // Public signature debug description: {}ktValue - val ktValue: String - // CHECK JVM_IR: - // Mangled name: interop.Definitions#(){}kotlin.String - // Public signature: interop/Definitions.ktValue.|233367925131846588[0] - // Public signature debug description: (){}kotlin.String - get - - // CHECK: - // Mangled name: interop.Definitions#(){} - // Public signature: interop/Definitions.|-5645683436151566731[0] - // Public signature debug description: (){} - private constructor() /* primary */ - - // CHECK: - // Mangled name: interop.Definitions{}KT_CONSTANT - // Public signature: interop/Definitions.KT_CONSTANT|-8714407162660026641[0] - // Public signature debug description: {}KT_CONSTANT - const val KT_CONSTANT: String - // CHECK JVM_IR: - // Mangled name: interop.Definitions#(){}kotlin.String - // Public signature: interop/Definitions.KT_CONSTANT.|4728854297559730352[0] - // Public signature debug description: (){}kotlin.String - get - -} - diff --git a/compiler/testData/ir/irText/firProblems/SameJavaFieldReferences.fir.ir.txt b/compiler/testData/ir/irText/firProblems/SameJavaFieldReferences.fir.ir.txt new file mode 100644 index 00000000000..59958e9a854 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/SameJavaFieldReferences.fir.ir.txt @@ -0,0 +1,7 @@ +FILE fqName: fileName:/SameJavaFieldReferences.kt + FUN name:foo visibility:public modality:FINAL <> () returnType:kotlin.Unit + BLOCK_BODY + VAR name:ref1 type:kotlin.reflect.KProperty0<@[FlexibleNullability] kotlin.String?> [val] + PROPERTY_REFERENCE 'public final someJavaField: @[FlexibleNullability] kotlin.String?' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:someJavaField type:@[FlexibleNullability] kotlin.String? visibility:public [final,static]' getter=null setter=null type=kotlin.reflect.KProperty0<@[FlexibleNullability] kotlin.String?> origin=null + VAR name:ref2 type:kotlin.reflect.KProperty0<@[FlexibleNullability] kotlin.String?> [val] + PROPERTY_REFERENCE 'public final someJavaField: @[FlexibleNullability] kotlin.String?' field='FIELD IR_EXTERNAL_JAVA_DECLARATION_STUB name:someJavaField type:@[FlexibleNullability] kotlin.String? visibility:public [final,static]' getter=null setter=null type=kotlin.reflect.KProperty0<@[FlexibleNullability] kotlin.String?> origin=null diff --git a/compiler/testData/ir/irText/firProblems/SameJavaFieldReferences.fir.kt.txt b/compiler/testData/ir/irText/firProblems/SameJavaFieldReferences.fir.kt.txt new file mode 100644 index 00000000000..a03676734c3 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/SameJavaFieldReferences.fir.kt.txt @@ -0,0 +1,4 @@ +fun foo() { + val ref1: KProperty0<@FlexibleNullability String?> = SomeJavaClass::someJavaField + val ref2: KProperty0<@FlexibleNullability String?> = SomeJavaClass::someJavaField +} diff --git a/compiler/testData/ir/irText/firProblems/SameJavaFieldReferences.kt b/compiler/testData/ir/irText/firProblems/SameJavaFieldReferences.kt index f952311e002..e95d005edf5 100644 --- a/compiler/testData/ir/irText/firProblems/SameJavaFieldReferences.kt +++ b/compiler/testData/ir/irText/firProblems/SameJavaFieldReferences.kt @@ -1,5 +1,4 @@ // TARGET_BACKEND: JVM -// FIR_IDENTICAL // FILE: SomeJavaClass.java public class SomeJavaClass { diff --git a/compiler/testData/ir/irText/firProblems/SameJavaFieldReferences.kt.txt b/compiler/testData/ir/irText/firProblems/SameJavaFieldReferences.kt.txt index b8a48658888..d3c8ba95f60 100644 --- a/compiler/testData/ir/irText/firProblems/SameJavaFieldReferences.kt.txt +++ b/compiler/testData/ir/irText/firProblems/SameJavaFieldReferences.kt.txt @@ -2,3 +2,4 @@ fun foo() { val ref1: KProperty0 = SomeJavaClass::someJavaField val ref2: KProperty0 = SomeJavaClass::someJavaField } + diff --git a/compiler/testData/loadJava/compiledJava/annotations/StringConstantInParam.fir.txt b/compiler/testData/loadJava/compiledJava/annotations/StringConstantInParam.fir.txt index 6cd6e359b7f..3a9c60b01b7 100644 --- a/compiler/testData/loadJava/compiledJava/annotations/StringConstantInParam.fir.txt +++ b/compiler/testData/loadJava/compiledJava/annotations/StringConstantInParam.fir.txt @@ -1,5 +1,5 @@ public abstract interface StringConstantInParam : R|kotlin/Any| { - public final static field HEL: R|kotlin/String| = String(hel) + public final static field HEL: R|kotlin/String!| = String(hel) public final annotation class Anno : R|kotlin/Annotation| { public constructor(value: R|kotlin/String|): R|test/StringConstantInParam.Anno| diff --git a/compiler/testData/loadJava/compiledJava/static/StaticFinal.fir.txt b/compiler/testData/loadJava/compiledJava/static/StaticFinal.fir.txt index 36414160668..e572a751443 100644 --- a/compiler/testData/loadJava/compiledJava/static/StaticFinal.fir.txt +++ b/compiler/testData/loadJava/compiledJava/static/StaticFinal.fir.txt @@ -1,13 +1,13 @@ public open class StaticFinal : R|kotlin/Any| { - public final static field publicNonNull: R|kotlin/String| = String(aaa) + public final static field publicNonNull: R|kotlin/String!| = String(aaa) public final static field publicNull: R|kotlin/String!| - public/*package*/ final static field packageNonNull: R|kotlin/String| = String(bbb) + public/*package*/ final static field packageNonNull: R|kotlin/String!| = String(bbb) public/*package*/ final static field packageNull: R|kotlin/String!| - private final static field privateNonNull: R|kotlin/String| = String(bbb) + private final static field privateNonNull: R|kotlin/String!| = String(bbb) private final static field privateNull: R|kotlin/String!|