diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java index 553edfc73fc..03af46eb488 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java @@ -32926,6 +32926,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag runTest("compiler/testData/diagnostics/testsWithStdLib/overrideWithFunctionalType.kt"); } + @Test + @TestMetadata("pairReference.kt") + public void testPairReference() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/pairReference.kt"); + } + @Test @TestMetadata("PropertyDelegateWithPrivateSet.kt") public void testPropertyDelegateWithPrivateSet() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java index 44a01e3b365..11497c892dd 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java @@ -32926,6 +32926,12 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti runTest("compiler/testData/diagnostics/testsWithStdLib/overrideWithFunctionalType.kt"); } + @Test + @TestMetadata("pairReference.kt") + public void testPairReference() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/pairReference.kt"); + } + @Test @TestMetadata("PropertyDelegateWithPrivateSet.kt") public void testPropertyDelegateWithPrivateSet() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java index 91f2b36ba0b..1b26fcbef03 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java @@ -32926,6 +32926,12 @@ public class FirOldFrontendDiagnosticsWithLightTreeTestGenerated extends Abstrac runTest("compiler/testData/diagnostics/testsWithStdLib/overrideWithFunctionalType.kt"); } + @Test + @TestMetadata("pairReference.kt") + public void testPairReference() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/pairReference.kt"); + } + @Test @TestMetadata("PropertyDelegateWithPrivateSet.kt") public void testPropertyDelegateWithPrivateSet() throws Exception { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirDoubleColonExpressionResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirDoubleColonExpressionResolver.kt index b5816677996..6ef5ed58dfb 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirDoubleColonExpressionResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirDoubleColonExpressionResolver.kt @@ -144,12 +144,12 @@ class FirDoubleColonExpressionResolver(private val session: FirSession) { val resolvedExpression = expression as? FirResolvedQualifier ?: return null - val firClass = resolvedExpression.expandedRegularClassIfAny() + val firClassLikeDeclaration = resolvedExpression.symbol?.fir ?: return null val type = ConeClassLikeTypeImpl( - firClass.symbol.toLookupTag(), - Array(firClass.typeParameters.size) { index -> + firClassLikeDeclaration.symbol.toLookupTag(), + Array(firClassLikeDeclaration.typeParameters.size) { index -> val typeArgument = expression.typeArguments.getOrNull(index) if (typeArgument == null) ConeStarProjection else when (typeArgument) { diff --git a/compiler/testData/diagnostics/testsWithStdLib/pairReference.kt b/compiler/testData/diagnostics/testsWithStdLib/pairReference.kt new file mode 100644 index 00000000000..f812371079d --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/pairReference.kt @@ -0,0 +1,16 @@ +// FIR_IDENTICAL +// SKIP_TXT + +typealias MPair = Pair +typealias TextWithOffset = MPair + +fun foo(c: Collection) { + val a1 = c.map(TextWithOffset::first) + a1[0].length + + val a2 = c.map(MPair::first) + a2[0].length + + val a3 = c.map(Pair::first) + a3[0].length +} 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 cc9851ce4b5..de9b104675f 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 @@ -33022,6 +33022,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/testsWithStdLib/overrideWithFunctionalType.kt"); } + @Test + @TestMetadata("pairReference.kt") + public void testPairReference() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/pairReference.kt"); + } + @Test @TestMetadata("PropertyDelegateWithPrivateSet.kt") public void testPropertyDelegateWithPrivateSet() throws Exception {