KT-50728 Enforce receiver type resolve

When stdlib is represented as a source dependency (which seems to be the
case in the `kotlin` project), it will be resolved lazily for the IDE.
Same thing can happen if someone decides to "extend" the stdlib
by declaring their declaration in the `kotlin` package

In both of those cases, we need to make sure that receiver type is fully
resolved before trying to get a `coneType` from it

N.B. To make resolve tests work, I've added a separate folder
`withAllowedKotlinPackage` to the `testData`, because in the default
test setup it is not allowed to extend the `kotlin` package by user's
definitions

^KT-50728 Fixed
This commit is contained in:
Roman Golyshev
2022-01-11 17:08:41 +03:00
committed by Space
parent 3ac472ceb3
commit 54cca88279
8 changed files with 113 additions and 1 deletions
@@ -4073,6 +4073,22 @@ public class DiagnosisCompilerFirTestdataTestGenerated extends AbstractDiagnosis
runTest("compiler/fir/analysis-tests/testData/resolve/visibility/visibilityWithOverrides.kt");
}
}
@Nested
@TestMetadata("compiler/fir/analysis-tests/testData/resolve/withAllowedKotlinPackage")
@TestDataPath("$PROJECT_ROOT")
public class WithAllowedKotlinPackage {
@Test
public void testAllFilesPresentInWithAllowedKotlinPackage() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/analysis-tests/testData/resolve/withAllowedKotlinPackage"), Pattern.compile("^([^.]+)\\.kt$"), null, true);
}
@Test
@TestMetadata("extensionFunctionAddedToStdlib.kt")
public void testExtensionFunctionAddedToStdlib() throws Exception {
runTest("compiler/fir/analysis-tests/testData/resolve/withAllowedKotlinPackage/extensionFunctionAddedToStdlib.kt");
}
}
}
@Nested