FIR IDE: Fix ImportOptimizer for types used as generics' parameters

This commit is contained in:
Roman Golyshev
2021-12-24 16:19:36 +03:00
committed by Space
parent 4e402e1b72
commit 3f8fff55cf
6 changed files with 42 additions and 0 deletions
@@ -119,11 +119,15 @@ internal class KtFirImportOptimizer(
override fun visitResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef) {
processTypeRef(resolvedTypeRef)
resolvedTypeRef.delegatedTypeRef?.accept(this)
super.visitTypeRef(resolvedTypeRef)
}
override fun visitErrorTypeRef(errorTypeRef: FirErrorTypeRef) {
processTypeRef(errorTypeRef)
errorTypeRef.delegatedTypeRef?.accept(this)
super.visitErrorTypeRef(errorTypeRef)
}
@@ -78,6 +78,12 @@ public class HLImportOptimizerTestGenerated extends AbstractHLImportOptimizerTes
runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/usedInvokeOperatorImport.kt");
}
@Test
@TestMetadata("usedTypeAsTypeParameter.kt")
public void testUsedTypeAsTypeParameter() throws Exception {
runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/usedTypeAsTypeParameter.kt");
}
@Nested
@TestMetadata("analysis/analysis-api/testData/components/importOptimizer/analyseImports/referencesWithErrors")
@TestDataPath("$PROJECT_ROOT")
@@ -117,6 +123,12 @@ public class HLImportOptimizerTestGenerated extends AbstractHLImportOptimizerTes
runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/referencesWithErrors/usedInvokeOperator_invalidArguments.kt");
}
@Test
@TestMetadata("usedTypeAsTypeParameter_missingOuterType.kt")
public void testUsedTypeAsTypeParameter_missingOuterType() throws Exception {
runTest("analysis/analysis-api/testData/components/importOptimizer/analyseImports/referencesWithErrors/usedTypeAsTypeParameter_missingOuterType.kt");
}
@Test
@TestMetadata("usedTypeImport_missingGeneric.kt")
public void testUsedTypeImport_missingGeneric() throws Exception {
@@ -0,0 +1,13 @@
// FILE: main.kt
package test
import dependency.Bar
//class WithGeneric<T>
fun usage(p: WithGeneric<Bar>) {}
// FILE: dependency.kt
package dependency
class Bar
@@ -0,0 +1,13 @@
// FILE: main.kt
package test
import dependency.Bar
class WithGeneric<T>
fun usage(p: WithGeneric<Bar>) {}
// FILE: dependency.kt
package dependency
class Bar