diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerFirTestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerFirTestdataTestGenerated.java index 3f1dda1a938..dfb965008f7 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerFirTestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerFirTestdataTestGenerated.java @@ -5967,6 +5967,12 @@ public class DiagnosisCompilerFirTestdataTestGenerated extends AbstractDiagnosis runTest("compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/SpecialCallsWithLambdas.kt"); } + @Test + @TestMetadata("stringConstructors.kt") + public void testStringConstructors() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/stringConstructors.kt"); + } + @Test @TestMetadata("TypesEligibleForSimpleVisit.kt") public void testTypesEligibleForSimpleVisit() throws Exception { diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/stringConstructors.fir.txt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/stringConstructors.fir.txt new file mode 100644 index 00000000000..81c30b6e33d --- /dev/null +++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/stringConstructors.fir.txt @@ -0,0 +1,9 @@ +FILE: stringConstructors.kt + public final val sRef: R|kotlin/reflect/KFunction0| = ::R|kotlin/String.String| + public get(): R|kotlin/reflect/KFunction0| + public final val s: R|java/lang/String| = R|java/lang/String.String|(R|kotlin/byteArrayOf|(vararg(Byte(1), Byte(2), Byte(3))), Int(4), Int(5), Int(6)) + public get(): R|java/lang/String| + public final val s2: R|java/lang/String| = Q|java/lang|.R|java/lang/String.String|(R|kotlin/byteArrayOf|(vararg(Byte(1), Byte(2), Byte(3))), Int(4), Int(5), Int(6)) + public get(): R|java/lang/String| + public final val s3: R|kotlin/String| = R|kotlin/text/String|(R|kotlin/byteArrayOf|(vararg(Byte(1), Byte(2), Byte(3))), Int(4), Int(5)) + public get(): R|kotlin/String| diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/stringConstructors.kt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/stringConstructors.kt new file mode 100644 index 00000000000..f533ad769c3 --- /dev/null +++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/stringConstructors.kt @@ -0,0 +1,11 @@ +// FULL_JDK + +val sRef = ::String + +// Note: FE 1.0 resolves this to kotlin.text.String() synthetic call with type mismatch on the last argument +// May be we (FIR) should migrate to the same behavior +// Other properties in this file are resolved similarly in FE 1.0 & FIR +val s = String(byteArrayOf(1, 2, 3), 4, 5, 6) + +val s2 = java.lang.String(byteArrayOf(1, 2, 3), 4, 5, 6) +val s3 = String(byteArrayOf(1, 2, 3), 4, 5) diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticTestGenerated.java index 1cc8bad0f93..7e1bbf9e1c6 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticTestGenerated.java @@ -5967,6 +5967,12 @@ public class FirDiagnosticTestGenerated extends AbstractFirDiagnosticTest { runTest("compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/SpecialCallsWithLambdas.kt"); } + @Test + @TestMetadata("stringConstructors.kt") + public void testStringConstructors() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/stringConstructors.kt"); + } + @Test @TestMetadata("TypesEligibleForSimpleVisit.kt") public void testTypesEligibleForSimpleVisit() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticsWithLightTreeTestGenerated.java index a63871e351b..6e6799f1a0a 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirDiagnosticsWithLightTreeTestGenerated.java @@ -5967,6 +5967,12 @@ public class FirDiagnosticsWithLightTreeTestGenerated extends AbstractFirDiagnos runTest("compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/SpecialCallsWithLambdas.kt"); } + @Test + @TestMetadata("stringConstructors.kt") + public void testStringConstructors() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/stringConstructors.kt"); + } + @Test @TestMetadata("TypesEligibleForSimpleVisit.kt") public void testTypesEligibleForSimpleVisit() throws Exception { diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/scopes/jvm/JvmMappedScope.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/scopes/jvm/JvmMappedScope.kt index 065958a0e1a..1b6f1ce53da 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/scopes/jvm/JvmMappedScope.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/scopes/jvm/JvmMappedScope.kt @@ -169,9 +169,15 @@ class JvmMappedScope( "", "Lkotlin/ByteArray;IILjava/nio/charset/Charset;", "Lkotlin/ByteArray;Ljava/nio/charset/Charset;", + "Lkotlin/ByteArray;III", "Lkotlin/ByteArray;II", + "Lkotlin/ByteArray;IILjava/lang/String;", + "Lkotlin/ByteArray;I", "Lkotlin/ByteArray;", + "Lkotlin/ByteArray;Ljava/lang/String;", + "IILkotlin/CharArray;", "Lkotlin/CharArray;", + "Lkotlin/CharArray;Z", "Lkotlin/CharArray;II", "Lkotlin/IntArray;II", "Ljava/lang/StringBuffer;",