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.resolve.symbolProvider
|
||||
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.api.DiagnosticCheckerFilter
|
||||
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.toFirRegularClass
|
||||
import org.jetbrains.kotlin.idea.fir.low.level.api.util.getContainingFile
|
||||
import org.jetbrains.kotlin.idea.util.ifFalse
|
||||
|
||||
class FirDeclarationDesignationWithFile(
|
||||
path: List<FirDeclaration>,
|
||||
@@ -77,7 +76,7 @@ private fun collectDesignationPath(declaration: FirDeclaration): List<FirDeclara
|
||||
require(containingClass is FirRegularClass) {
|
||||
"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 =
|
||||
|
||||
+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.util.getElementTextInContext
|
||||
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.parentsOfType
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
@@ -252,7 +250,7 @@ object LowLevelFirApiFacadeForResolveOnAir {
|
||||
val isInBodyReplacement = isInBodyReplacement(nonLocalDeclaration, replacement)
|
||||
|
||||
return state.rootModuleSession.cache.firFileLockProvider.runCustomResolveUnderLock(originalFirFile, true) {
|
||||
val copiedFirDeclaration = isInBodyReplacement.ifTrue {
|
||||
val copiedFirDeclaration = if (isInBodyReplacement) {
|
||||
when (originalDeclaration) {
|
||||
is FirSimpleFunction ->
|
||||
originalDeclaration.withBodyFrom(newDeclarationWithReplacement as FirSimpleFunction)
|
||||
@@ -263,7 +261,7 @@ object LowLevelFirApiFacadeForResolveOnAir {
|
||||
is FirTypeAlias -> newDeclarationWithReplacement
|
||||
else -> error("Not supported type ${originalDeclaration::class.simpleName}")
|
||||
}
|
||||
} ?: newDeclarationWithReplacement
|
||||
} else newDeclarationWithReplacement
|
||||
|
||||
val onAirDesignation = FirDeclarationDesignationWithFile(
|
||||
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.ensurePhase
|
||||
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.util.*
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
@@ -160,7 +159,7 @@ internal class FirLazyDeclarationResolver(private val firFileBuilder: FirFileBui
|
||||
|
||||
val transformersToApply = designations.mapNotNull {
|
||||
val needToResolve = it.resolvePhaseForAllDeclarations(includeDeclarationPhase = false) < currentPhase
|
||||
needToResolve.ifTrue {
|
||||
if (needToResolve) {
|
||||
LazyTransformerFactory.createLazyTransformer(
|
||||
phase = currentPhase,
|
||||
designation = it,
|
||||
@@ -172,7 +171,7 @@ internal class FirLazyDeclarationResolver(private val firFileBuilder: FirFileBui
|
||||
firProviderInterceptor = null,
|
||||
checkPCE = checkPCE,
|
||||
)
|
||||
}
|
||||
} else null
|
||||
}
|
||||
if (transformersToApply.isEmpty()) continue
|
||||
|
||||
|
||||
+1
-1
@@ -5,7 +5,6 @@
|
||||
|
||||
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.FirFakeSourceElementKind
|
||||
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.ModuleFileCache
|
||||
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.psiUtil.containingClassOrObject
|
||||
import org.jetbrains.kotlin.psi.psiUtil.getParentOfType
|
||||
|
||||
-1
@@ -6,7 +6,6 @@
|
||||
package org.jetbrains.kotlin.idea.fir.low.level.api.transformers
|
||||
|
||||
import org.jetbrains.annotations.TestOnly
|
||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||
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.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.visitors.FirVisitorVoid
|
||||
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.compiler.based.FrontendApiSingleTestDataFileTest
|
||||
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.KtPackageProviderTestImpl
|
||||
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.name.Name
|
||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||
@@ -129,7 +130,13 @@ abstract class FrontendApiTestWithTestdata : AbstractKotlinCompilerTest() {
|
||||
if (ignoreTest(filePath, configuration)) {
|
||||
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 {
|
||||
|
||||
+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.frontend.api.components.KtTypeRendererOptions
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.idea.util.ifTrue
|
||||
import org.jetbrains.kotlin.name.StandardClassIds
|
||||
import org.jetbrains.kotlin.renderer.render
|
||||
|
||||
@@ -201,7 +200,7 @@ internal class ConeTypeIdeRenderer(
|
||||
else -> error("Invalid declaration ${declaration.renderWithType()}")
|
||||
} ?: 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) {
|
||||
|
||||
+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.KtTypeAndAnnotations
|
||||
import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
||||
import org.jetbrains.kotlin.idea.util.ifTrue
|
||||
|
||||
internal class KtFirTypeAndAnnotations<T : FirDeclaration>(
|
||||
private val containingDeclaration: FirRefWithValidityCheck<T>,
|
||||
@@ -65,9 +64,9 @@ internal fun FirRefWithValidityCheck<FirClass<*>>.superTypesAndAnnotationsList(b
|
||||
|
||||
internal fun FirRefWithValidityCheck<FirRegularClass>.superTypesAndAnnotationsListForRegularClass(builder: KtSymbolByFirBuilder): List<KtTypeAndAnnotations> {
|
||||
return withFir { fir ->
|
||||
(fir.resolvePhase >= FirResolvePhase.SUPER_TYPES).ifTrue {
|
||||
if(fir.resolvePhase >= FirResolvePhase.SUPER_TYPES) {
|
||||
fir.superTypeRefs.mapToTypeAndAnnotations(this, builder)
|
||||
}
|
||||
} else null
|
||||
} ?: withFirWithPossibleResolveInside(ResolveType.NoResolve) { fir ->
|
||||
fir.resolveSupertypesInTheAir(builder.rootSession).mapToTypeAndAnnotations(this, builder)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user