diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/TypesEligibleForSimpleVisit.kt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/TypesEligibleForSimpleVisit.kt new file mode 100644 index 00000000000..a8cd7c29635 --- /dev/null +++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/TypesEligibleForSimpleVisit.kt @@ -0,0 +1,12 @@ +// Extracted from ReflectKotlinClass.kt + +private val TYPES_ELIGIBLE_FOR_SIMPLE_VISIT = setOf>( + // Primitives + java.lang.Integer::class.java, java.lang.Character::class.java, java.lang.Byte::class.java, java.lang.Long::class.java, + java.lang.Short::class.java, java.lang.Boolean::class.java, java.lang.Double::class.java, java.lang.Float::class.java, + // Arrays of primitives + IntArray::class.java, CharArray::class.java, ByteArray::class.java, LongArray::class.java, + ShortArray::class.java, BooleanArray::class.java, DoubleArray::class.java, FloatArray::class.java, + // Others + Class::class.java, String::class.java +) diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/TypesEligibleForSimpleVisit.txt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/TypesEligibleForSimpleVisit.txt new file mode 100644 index 00000000000..b17fc03afe3 --- /dev/null +++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/TypesEligibleForSimpleVisit.txt @@ -0,0 +1,3 @@ +FILE: TypesEligibleForSimpleVisit.kt + private final val TYPES_ELIGIBLE_FOR_SIMPLE_VISIT: R|kotlin/collections/Set>| = R|kotlin/collections/setOf||>(vararg((Q|java/lang/Integer|).R|kotlin/jvm/java|, (Q|java/lang/Character|).R|kotlin/jvm/java|, (Q|java/lang/Byte|).R|kotlin/jvm/java|, (Q|java/lang/Long|).R|kotlin/jvm/java|, (Q|java/lang/Short|).R|kotlin/jvm/java|, (Q|java/lang/Boolean|).R|kotlin/jvm/java|, (Q|java/lang/Double|).R|kotlin/jvm/java|, (Q|java/lang/Float|).R|kotlin/jvm/java|, (Q|kotlin/IntArray|).R|kotlin/jvm/java|, (Q|kotlin/CharArray|).R|kotlin/jvm/java|, (Q|kotlin/ByteArray|).R|kotlin/jvm/java|, (Q|kotlin/LongArray|).R|kotlin/jvm/java|, (Q|kotlin/ShortArray|).R|kotlin/jvm/java|, (Q|kotlin/BooleanArray|).R|kotlin/jvm/java|, (Q|kotlin/DoubleArray|).R|kotlin/jvm/java|, (Q|kotlin/FloatArray|).R|kotlin/jvm/java|, (Q|java/lang/Class|).R|kotlin/jvm/java||>, (Q|kotlin/String|).R|kotlin/jvm/java|)) + private get(): R|kotlin/collections/Set>| diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/fir/FirDiagnosticsWithStdlibTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/fir/FirDiagnosticsWithStdlibTestGenerated.java index 75a1c08b174..87f0f776e9e 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/fir/FirDiagnosticsWithStdlibTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/fir/FirDiagnosticsWithStdlibTestGenerated.java @@ -1239,6 +1239,11 @@ public class FirDiagnosticsWithStdlibTestGenerated extends AbstractFirDiagnostic runTest("compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/receiverResolutionInLambda.kt"); } + @TestMetadata("TypesEligibleForSimpleVisit.kt") + public void testTypesEligibleForSimpleVisit() throws Exception { + runTest("compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/TypesEligibleForSimpleVisit.kt"); + } + @TestMetadata("weakHashMap.kt") public void testWeakHashMap() throws Exception { runTest("compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/weakHashMap.kt"); diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirQualifiedNameResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirQualifiedNameResolver.kt index 6ca46209b58..b4777c7ccbc 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirQualifiedNameResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirQualifiedNameResolver.kt @@ -48,7 +48,7 @@ class FirQualifiedNameResolver(private val components: BodyResolveComponents) { if (callee.name.isSpecial) { qualifierStack.clear() } else { - qualifierStack.add(NameWithTypeArguments(callee.name, typeArguments)) + qualifierStack.add(NameWithTypeArguments(callee.name, typeArguments.toList())) } }