FIR IDE: fixes after rebase
This commit is contained in:
-3
@@ -15,9 +15,6 @@ import org.jetbrains.kotlin.fir.declarations.*
|
|||||||
import org.jetbrains.kotlin.fir.realPsi
|
import org.jetbrains.kotlin.fir.realPsi
|
||||||
import org.jetbrains.kotlin.fir.resolve.symbolProvider
|
import org.jetbrains.kotlin.fir.resolve.symbolProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo
|
|
||||||
import org.jetbrains.kotlin.idea.caches.project.ModuleSourceInfo
|
|
||||||
import org.jetbrains.kotlin.idea.caches.project.getModuleInfo
|
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.annotations.InternalForInline
|
import org.jetbrains.kotlin.idea.fir.low.level.api.annotations.InternalForInline
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.DiagnosticCheckerFilter
|
import org.jetbrains.kotlin.idea.fir.low.level.api.api.DiagnosticCheckerFilter
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
|
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
|
||||||
|
|||||||
+1
-2
@@ -13,7 +13,6 @@ import org.jetbrains.kotlin.fir.renderWithType
|
|||||||
import org.jetbrains.kotlin.fir.resolve.firProvider
|
import org.jetbrains.kotlin.fir.resolve.firProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.toFirRegularClass
|
import org.jetbrains.kotlin.fir.resolve.toFirRegularClass
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.util.getContainingFile
|
import org.jetbrains.kotlin.idea.fir.low.level.api.util.getContainingFile
|
||||||
import org.jetbrains.kotlin.idea.util.ifFalse
|
|
||||||
|
|
||||||
class FirDeclarationDesignationWithFile(
|
class FirDeclarationDesignationWithFile(
|
||||||
path: List<FirDeclaration>,
|
path: List<FirDeclaration>,
|
||||||
@@ -77,7 +76,7 @@ private fun collectDesignationPath(declaration: FirDeclaration): List<FirDeclara
|
|||||||
require(containingClass is FirRegularClass) {
|
require(containingClass is FirRegularClass) {
|
||||||
"FirRegularClass as containing declaration expected but found ${containingClass.renderWithType()}"
|
"FirRegularClass as containing declaration expected but found ${containingClass.renderWithType()}"
|
||||||
}
|
}
|
||||||
return containingClass.isLocal.ifFalse { containingClass.collectForNonLocal().asReversed() }
|
return if (!containingClass.isLocal) containingClass.collectForNonLocal().asReversed() else null
|
||||||
}
|
}
|
||||||
|
|
||||||
fun FirDeclaration.collectDesignation(firFile: FirFile): FirDeclarationDesignationWithFile =
|
fun FirDeclaration.collectDesignation(firFile: FirFile): FirDeclarationDesignationWithFile =
|
||||||
|
|||||||
+2
-4
@@ -36,8 +36,6 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.providers.firIdeProvider
|
|||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.sessions.FirIdeSourcesSession
|
import org.jetbrains.kotlin.idea.fir.low.level.api.sessions.FirIdeSourcesSession
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.util.getElementTextInContext
|
import org.jetbrains.kotlin.idea.fir.low.level.api.util.getElementTextInContext
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.util.originalDeclaration
|
import org.jetbrains.kotlin.idea.fir.low.level.api.util.originalDeclaration
|
||||||
import org.jetbrains.kotlin.idea.util.getElementTextInContext
|
|
||||||
import org.jetbrains.kotlin.idea.util.ifTrue
|
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.util.parentOfType
|
import org.jetbrains.kotlin.idea.fir.low.level.api.util.parentOfType
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.util.parentsOfType
|
import org.jetbrains.kotlin.idea.fir.low.level.api.util.parentsOfType
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
@@ -252,7 +250,7 @@ object LowLevelFirApiFacadeForResolveOnAir {
|
|||||||
val isInBodyReplacement = isInBodyReplacement(nonLocalDeclaration, replacement)
|
val isInBodyReplacement = isInBodyReplacement(nonLocalDeclaration, replacement)
|
||||||
|
|
||||||
return state.rootModuleSession.cache.firFileLockProvider.runCustomResolveUnderLock(originalFirFile, true) {
|
return state.rootModuleSession.cache.firFileLockProvider.runCustomResolveUnderLock(originalFirFile, true) {
|
||||||
val copiedFirDeclaration = isInBodyReplacement.ifTrue {
|
val copiedFirDeclaration = if (isInBodyReplacement) {
|
||||||
when (originalDeclaration) {
|
when (originalDeclaration) {
|
||||||
is FirSimpleFunction ->
|
is FirSimpleFunction ->
|
||||||
originalDeclaration.withBodyFrom(newDeclarationWithReplacement as FirSimpleFunction)
|
originalDeclaration.withBodyFrom(newDeclarationWithReplacement as FirSimpleFunction)
|
||||||
@@ -263,7 +261,7 @@ object LowLevelFirApiFacadeForResolveOnAir {
|
|||||||
is FirTypeAlias -> newDeclarationWithReplacement
|
is FirTypeAlias -> newDeclarationWithReplacement
|
||||||
else -> error("Not supported type ${originalDeclaration::class.simpleName}")
|
else -> error("Not supported type ${originalDeclaration::class.simpleName}")
|
||||||
}
|
}
|
||||||
} ?: newDeclarationWithReplacement
|
} else newDeclarationWithReplacement
|
||||||
|
|
||||||
val onAirDesignation = FirDeclarationDesignationWithFile(
|
val onAirDesignation = FirDeclarationDesignationWithFile(
|
||||||
path = originalDesignation.path,
|
path = originalDesignation.path,
|
||||||
|
|||||||
+2
-3
@@ -26,7 +26,6 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.transformers.LazyTransformerF
|
|||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.util.checkCanceled
|
import org.jetbrains.kotlin.idea.fir.low.level.api.util.checkCanceled
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.util.ensurePhase
|
import org.jetbrains.kotlin.idea.fir.low.level.api.util.ensurePhase
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.util.findSourceNonLocalFirDeclaration
|
import org.jetbrains.kotlin.idea.fir.low.level.api.util.findSourceNonLocalFirDeclaration
|
||||||
import org.jetbrains.kotlin.idea.util.ifTrue
|
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.transformers.*
|
import org.jetbrains.kotlin.idea.fir.low.level.api.transformers.*
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.util.*
|
import org.jetbrains.kotlin.idea.fir.low.level.api.util.*
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
@@ -160,7 +159,7 @@ internal class FirLazyDeclarationResolver(private val firFileBuilder: FirFileBui
|
|||||||
|
|
||||||
val transformersToApply = designations.mapNotNull {
|
val transformersToApply = designations.mapNotNull {
|
||||||
val needToResolve = it.resolvePhaseForAllDeclarations(includeDeclarationPhase = false) < currentPhase
|
val needToResolve = it.resolvePhaseForAllDeclarations(includeDeclarationPhase = false) < currentPhase
|
||||||
needToResolve.ifTrue {
|
if (needToResolve) {
|
||||||
LazyTransformerFactory.createLazyTransformer(
|
LazyTransformerFactory.createLazyTransformer(
|
||||||
phase = currentPhase,
|
phase = currentPhase,
|
||||||
designation = it,
|
designation = it,
|
||||||
@@ -172,7 +171,7 @@ internal class FirLazyDeclarationResolver(private val firFileBuilder: FirFileBui
|
|||||||
firProviderInterceptor = null,
|
firProviderInterceptor = null,
|
||||||
checkPCE = checkPCE,
|
checkPCE = checkPCE,
|
||||||
)
|
)
|
||||||
}
|
} else null
|
||||||
}
|
}
|
||||||
if (transformersToApply.isEmpty()) continue
|
if (transformersToApply.isEmpty()) continue
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve
|
package org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve
|
||||||
|
|
||||||
import com.intellij.psi.util.parentOfType
|
|
||||||
import org.jetbrains.kotlin.fir.FirFakeSourceElement
|
import org.jetbrains.kotlin.fir.FirFakeSourceElement
|
||||||
import org.jetbrains.kotlin.fir.FirFakeSourceElementKind
|
import org.jetbrains.kotlin.fir.FirFakeSourceElementKind
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
@@ -17,6 +16,7 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.element.builder.getNonLocalCo
|
|||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.FirFileBuilder
|
import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.FirFileBuilder
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.ModuleFileCache
|
import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.ModuleFileCache
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.util.findSourceNonLocalFirDeclaration
|
import org.jetbrains.kotlin.idea.fir.low.level.api.util.findSourceNonLocalFirDeclaration
|
||||||
|
import org.jetbrains.kotlin.idea.fir.low.level.api.util.parentOfType
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
|
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
|
||||||
|
|||||||
-1
@@ -6,7 +6,6 @@
|
|||||||
package org.jetbrains.kotlin.idea.fir.low.level.api.transformers
|
package org.jetbrains.kotlin.idea.fir.low.level.api.transformers
|
||||||
|
|
||||||
import org.jetbrains.annotations.TestOnly
|
import org.jetbrains.annotations.TestOnly
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.FirPhaseRunner
|
import org.jetbrains.kotlin.idea.fir.low.level.api.FirPhaseRunner
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirDeclarationDesignation
|
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirDeclarationDesignation
|
||||||
|
|||||||
-1
@@ -16,7 +16,6 @@ import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
|||||||
import org.jetbrains.kotlin.fir.session.FirSessionFactory
|
import org.jetbrains.kotlin.fir.session.FirSessionFactory
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
|
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirDeclarationDesignation
|
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirDeclarationDesignation
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirDeclarationUntypedDesignation
|
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
|
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.compiler.based.FrontendApiSingleTestDataFileTest
|
import org.jetbrains.kotlin.idea.fir.low.level.api.compiler.based.FrontendApiSingleTestDataFileTest
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.RawFirNonLocalDeclarationBuilder
|
import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.RawFirNonLocalDeclarationBuilder
|
||||||
|
|||||||
+8
-1
@@ -34,6 +34,7 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.DeclarationProvider
|
|||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.KotlinOutOfBlockModificationTrackerFactoryTestImpl
|
import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.KotlinOutOfBlockModificationTrackerFactoryTestImpl
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.KtPackageProviderTestImpl
|
import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.KtPackageProviderTestImpl
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.SealedClassInheritorsProviderTestImpl
|
import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.SealedClassInheritorsProviderTestImpl
|
||||||
|
import org.jetbrains.kotlin.idea.fir.low.level.api.transformers.FirLazyTransformerForIDE
|
||||||
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||||
@@ -129,7 +130,13 @@ abstract class FrontendApiTestWithTestdata : AbstractKotlinCompilerTest() {
|
|||||||
if (ignoreTest(filePath, configuration)) {
|
if (ignoreTest(filePath, configuration)) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
super.runTest(filePath)
|
val oldEnableDeepEnsure = FirLazyTransformerForIDE.enableDeepEnsure
|
||||||
|
try {
|
||||||
|
FirLazyTransformerForIDE.enableDeepEnsure = true
|
||||||
|
super.runTest(filePath)
|
||||||
|
} finally {
|
||||||
|
FirLazyTransformerForIDE.enableDeepEnsure = oldEnableDeepEnsure
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun ignoreTest(filePath: String, configuration: TestConfiguration): Boolean {
|
private fun ignoreTest(filePath: String, configuration: TestConfiguration): Boolean {
|
||||||
|
|||||||
+1
-2
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.idea.asJava.applyIf
|
|||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.tryCollectDesignation
|
import org.jetbrains.kotlin.idea.fir.low.level.api.api.tryCollectDesignation
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.components.KtTypeRendererOptions
|
import org.jetbrains.kotlin.idea.frontend.api.components.KtTypeRendererOptions
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.idea.util.ifTrue
|
|
||||||
import org.jetbrains.kotlin.name.StandardClassIds
|
import org.jetbrains.kotlin.name.StandardClassIds
|
||||||
import org.jetbrains.kotlin.renderer.render
|
import org.jetbrains.kotlin.renderer.render
|
||||||
|
|
||||||
@@ -201,7 +200,7 @@ internal class ConeTypeIdeRenderer(
|
|||||||
else -> error("Invalid declaration ${declaration.renderWithType()}")
|
else -> error("Invalid declaration ${declaration.renderWithType()}")
|
||||||
} ?: return listOf(declaration)
|
} ?: return listOf(declaration)
|
||||||
|
|
||||||
return containingClass.isLocal.ifTrue { containingClass.collectForLocal().reversed() }
|
return if(containingClass.isLocal) { containingClass.collectForLocal().reversed() } else null
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun StringBuilder.renderTypeConstructorAndArguments(type: ConeClassLikeType) {
|
private fun StringBuilder.renderTypeConstructorAndArguments(type: ConeClassLikeType) {
|
||||||
|
|||||||
+2
-3
@@ -18,7 +18,6 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
|||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypeAndAnnotations
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypeAndAnnotations
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
||||||
import org.jetbrains.kotlin.idea.util.ifTrue
|
|
||||||
|
|
||||||
internal class KtFirTypeAndAnnotations<T : FirDeclaration>(
|
internal class KtFirTypeAndAnnotations<T : FirDeclaration>(
|
||||||
private val containingDeclaration: FirRefWithValidityCheck<T>,
|
private val containingDeclaration: FirRefWithValidityCheck<T>,
|
||||||
@@ -65,9 +64,9 @@ internal fun FirRefWithValidityCheck<FirClass<*>>.superTypesAndAnnotationsList(b
|
|||||||
|
|
||||||
internal fun FirRefWithValidityCheck<FirRegularClass>.superTypesAndAnnotationsListForRegularClass(builder: KtSymbolByFirBuilder): List<KtTypeAndAnnotations> {
|
internal fun FirRefWithValidityCheck<FirRegularClass>.superTypesAndAnnotationsListForRegularClass(builder: KtSymbolByFirBuilder): List<KtTypeAndAnnotations> {
|
||||||
return withFir { fir ->
|
return withFir { fir ->
|
||||||
(fir.resolvePhase >= FirResolvePhase.SUPER_TYPES).ifTrue {
|
if(fir.resolvePhase >= FirResolvePhase.SUPER_TYPES) {
|
||||||
fir.superTypeRefs.mapToTypeAndAnnotations(this, builder)
|
fir.superTypeRefs.mapToTypeAndAnnotations(this, builder)
|
||||||
}
|
} else null
|
||||||
} ?: withFirWithPossibleResolveInside(ResolveType.NoResolve) { fir ->
|
} ?: withFirWithPossibleResolveInside(ResolveType.NoResolve) { fir ->
|
||||||
fir.resolveSupertypesInTheAir(builder.rootSession).mapToTypeAndAnnotations(this, builder)
|
fir.resolveSupertypesInTheAir(builder.rootSession).mapToTypeAndAnnotations(this, builder)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user