FIR IDE: use common spelling for analyse functions family
This commit is contained in:
+2
-2
@@ -19,7 +19,7 @@ import com.intellij.psi.PsiElement
|
|||||||
import org.jetbrains.kotlin.idea.core.withRootPrefixIfNeeded
|
import org.jetbrains.kotlin.idea.core.withRootPrefixIfNeeded
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.HackToForceAllowRunningAnalyzeOnEDT
|
import org.jetbrains.kotlin.idea.frontend.api.HackToForceAllowRunningAnalyzeOnEDT
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
import org.jetbrains.kotlin.idea.frontend.api.analyse
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.addImportToFile
|
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.addImportToFile
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.hackyAllowRunningOnEdt
|
import org.jetbrains.kotlin.idea.frontend.api.hackyAllowRunningOnEdt
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
||||||
@@ -376,7 +376,7 @@ private fun alreadyHasImport(file: KtFile, nameToImport: FqName): Boolean {
|
|||||||
if (file.importDirectives.any { it.importPath?.fqName == nameToImport }) return true
|
if (file.importDirectives.any { it.importPath?.fqName == nameToImport }) return true
|
||||||
|
|
||||||
withAllowedResolve {
|
withAllowedResolve {
|
||||||
analyze(file) {
|
analyse(file) {
|
||||||
val scopes = file.getScopeContextForFile().scopes
|
val scopes = file.getScopeContextForFile().scopes
|
||||||
if (!scopes.containsName(nameToImport.shortName())) return false
|
if (!scopes.containsName(nameToImport.shortName())) return false
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.idea.references.mainReference
|
|||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.getParentOfTypeAndBranch
|
import org.jetbrains.kotlin.psi.psiUtil.getParentOfTypeAndBranch
|
||||||
import org.jetbrains.kotlin.idea.findUsages.UsageTypeEnum.*
|
import org.jetbrains.kotlin.idea.findUsages.UsageTypeEnum.*
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyzeWithReadAction
|
import org.jetbrains.kotlin.idea.frontend.api.analyseWithReadAction
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
||||||
import org.jetbrains.kotlin.idea.references.KtSimpleReference
|
import org.jetbrains.kotlin.idea.references.KtSimpleReference
|
||||||
|
|
||||||
@@ -52,7 +52,7 @@ class KotlinUsageTypeProviderFirImpl : KotlinUsageTypeProvider() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return analyzeWithReadAction(refExpr) {
|
return analyseWithReadAction(refExpr) {
|
||||||
when (val targetElement = reference.resolveToSymbol()) {
|
when (val targetElement = reference.resolveToSymbol()) {
|
||||||
is KtClassOrObjectSymbol ->
|
is KtClassOrObjectSymbol ->
|
||||||
when {
|
when {
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import com.intellij.openapi.util.TextRange
|
|||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.idea.fir.api.applicator.*
|
import org.jetbrains.kotlin.idea.fir.api.applicator.*
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.HackToForceAllowRunningAnalyzeOnEDT
|
import org.jetbrains.kotlin.idea.frontend.api.HackToForceAllowRunningAnalyzeOnEDT
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyzeWithReadAction
|
import org.jetbrains.kotlin.idea.frontend.api.analyseWithReadAction
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.hackyAllowRunningOnEdt
|
import org.jetbrains.kotlin.idea.frontend.api.hackyAllowRunningOnEdt
|
||||||
import org.jetbrains.kotlin.idea.inspections.AbstractKotlinInspection
|
import org.jetbrains.kotlin.idea.inspections.AbstractKotlinInspection
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
@@ -79,7 +79,7 @@ abstract class AbstractHLInspection<PSI : KtElement, INPUT : HLApplicatorInput>(
|
|||||||
|
|
||||||
@OptIn(HackToForceAllowRunningAnalyzeOnEDT::class)
|
@OptIn(HackToForceAllowRunningAnalyzeOnEDT::class)
|
||||||
private fun getInput(element: PSI): INPUT? = hackyAllowRunningOnEdt {
|
private fun getInput(element: PSI): INPUT? = hackyAllowRunningOnEdt {
|
||||||
analyzeWithReadAction(element) {
|
analyseWithReadAction(element) {
|
||||||
with(inputProvider) { provideInput(element) }
|
with(inputProvider) { provideInput(element) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.idea.fir.api.applicator.HLApplicator
|
|||||||
import org.jetbrains.kotlin.idea.fir.api.applicator.HLApplicatorInput
|
import org.jetbrains.kotlin.idea.fir.api.applicator.HLApplicatorInput
|
||||||
import org.jetbrains.kotlin.idea.fir.api.applicator.HLApplicatorInputProvider
|
import org.jetbrains.kotlin.idea.fir.api.applicator.HLApplicatorInputProvider
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.HackToForceAllowRunningAnalyzeOnEDT
|
import org.jetbrains.kotlin.idea.frontend.api.HackToForceAllowRunningAnalyzeOnEDT
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyzeWithReadAction
|
import org.jetbrains.kotlin.idea.frontend.api.analyseWithReadAction
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.hackyAllowRunningOnEdt
|
import org.jetbrains.kotlin.idea.frontend.api.hackyAllowRunningOnEdt
|
||||||
import org.jetbrains.kotlin.idea.intentions.SelfTargetingIntention
|
import org.jetbrains.kotlin.idea.intentions.SelfTargetingIntention
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
@@ -49,7 +49,7 @@ abstract class AbstractHLIntention<PSI : KtElement, INPUT : HLApplicatorInput>(
|
|||||||
|
|
||||||
@OptIn(HackToForceAllowRunningAnalyzeOnEDT::class)
|
@OptIn(HackToForceAllowRunningAnalyzeOnEDT::class)
|
||||||
private fun getInput(element: PSI): INPUT? = hackyAllowRunningOnEdt {
|
private fun getInput(element: PSI): INPUT? = hackyAllowRunningOnEdt {
|
||||||
analyzeWithReadAction(element) {
|
analyseWithReadAction(element) {
|
||||||
with(inputProvider) { provideInput(element) }
|
with(inputProvider) { provideInput(element) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,13 +9,9 @@ import com.intellij.lang.annotation.AnnotationHolder
|
|||||||
import com.intellij.openapi.application.ApplicationManager
|
import com.intellij.openapi.application.ApplicationManager
|
||||||
import com.intellij.openapi.progress.ProcessCanceledException
|
import com.intellij.openapi.progress.ProcessCanceledException
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
|
||||||
import org.jetbrains.kotlin.idea.fir.highlighter.visitors.FirAfterResolveHighlightingVisitor
|
import org.jetbrains.kotlin.idea.fir.highlighter.visitors.FirAfterResolveHighlightingVisitor
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
import org.jetbrains.kotlin.idea.frontend.api.analyse
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
|
||||||
import org.jetbrains.kotlin.idea.highlighter.AbstractKotlinPsiChecker
|
import org.jetbrains.kotlin.idea.highlighter.AbstractKotlinPsiChecker
|
||||||
import org.jetbrains.kotlin.idea.highlighter.Diagnostic2Annotation
|
|
||||||
import org.jetbrains.kotlin.idea.highlighter.IdeErrorMessages
|
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
|
|
||||||
@@ -29,7 +25,7 @@ class KotlinFirPsiChecker : AbstractKotlinPsiChecker() {
|
|||||||
if (ApplicationManager.getApplication().isDispatchThread) {
|
if (ApplicationManager.getApplication().isDispatchThread) {
|
||||||
throw ProcessCanceledException()
|
throw ProcessCanceledException()
|
||||||
}
|
}
|
||||||
analyze(element) {
|
analyse(element) {
|
||||||
FirAfterResolveHighlightingVisitor
|
FirAfterResolveHighlightingVisitor
|
||||||
.createListOfVisitors(this, holder)
|
.createListOfVisitors(this, holder)
|
||||||
.forEach(element::accept)
|
.forEach(element::accept)
|
||||||
|
|||||||
+2
-2
@@ -25,7 +25,7 @@ import com.intellij.openapi.project.Project
|
|||||||
import com.intellij.psi.PsiFile
|
import com.intellij.psi.PsiFile
|
||||||
import org.jetbrains.kotlin.diagnostics.Severity
|
import org.jetbrains.kotlin.diagnostics.Severity
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
import org.jetbrains.kotlin.idea.frontend.api.analyse
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.diagnostics.KtDiagnostic
|
import org.jetbrains.kotlin.idea.frontend.api.diagnostics.KtDiagnostic
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.diagnostics.KtDiagnosticWithPsi
|
import org.jetbrains.kotlin.idea.frontend.api.diagnostics.KtDiagnosticWithPsi
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.diagnostics.getDefaultMessageWithFactoryName
|
import org.jetbrains.kotlin.idea.frontend.api.diagnostics.getDefaultMessageWithFactoryName
|
||||||
@@ -43,7 +43,7 @@ class KotlinHighLevelDiagnosticHighlightingPass(
|
|||||||
val annotationHolder = AnnotationHolderImpl(AnnotationSession(ktFile))
|
val annotationHolder = AnnotationHolderImpl(AnnotationSession(ktFile))
|
||||||
|
|
||||||
override fun doCollectInformation(progress: ProgressIndicator) {
|
override fun doCollectInformation(progress: ProgressIndicator) {
|
||||||
analyze(ktFile) {
|
analyse(ktFile) {
|
||||||
ktFile.collectDiagnosticsForFile(KtDiagnosticCheckerFilter.ONLY_COMMON_CHECKERS).forEach { diagnostic ->
|
ktFile.collectDiagnosticsForFile(KtDiagnosticCheckerFilter.ONLY_COMMON_CHECKERS).forEach { diagnostic ->
|
||||||
addDiagnostic(diagnostic)
|
addDiagnostic(diagnostic)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,13 +12,10 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.element.builder.DuplicatedFir
|
|||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.trackers.KotlinFirOutOfBlockModificationTrackerFactory
|
import org.jetbrains.kotlin.idea.fir.low.level.api.trackers.KotlinFirOutOfBlockModificationTrackerFactory
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.InvalidWayOfUsingAnalysisSession
|
import org.jetbrains.kotlin.idea.frontend.api.InvalidWayOfUsingAnalysisSession
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSessionProvider
|
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSessionProvider
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
import org.jetbrains.kotlin.idea.frontend.api.analyse
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSessionProvider
|
import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSessionProvider
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
|
||||||
import org.jetbrains.kotlin.trackers.KotlinOutOfBlockModificationTrackerFactory
|
import org.jetbrains.kotlin.trackers.KotlinOutOfBlockModificationTrackerFactory
|
||||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
|
||||||
import java.io.File
|
|
||||||
|
|
||||||
fun Throwable.shouldBeRethrown(): Boolean = when (this) {
|
fun Throwable.shouldBeRethrown(): Boolean = when (this) {
|
||||||
is DuplicatedFirSourceElementsException -> true
|
is DuplicatedFirSourceElementsException -> true
|
||||||
@@ -31,6 +28,6 @@ internal fun Project.invalidateCaches(context: KtElement?) {
|
|||||||
(service<KotlinOutOfBlockModificationTrackerFactory>() as KotlinFirOutOfBlockModificationTrackerFactory).incrementModificationsCount()
|
(service<KotlinOutOfBlockModificationTrackerFactory>() as KotlinFirOutOfBlockModificationTrackerFactory).incrementModificationsCount()
|
||||||
(service<KtAnalysisSessionProvider>() as KtFirAnalysisSessionProvider).clearCaches()
|
(service<KtAnalysisSessionProvider>() as KtFirAnalysisSessionProvider).clearCaches()
|
||||||
if (context != null) {
|
if (context != null) {
|
||||||
executeOnPooledThreadInReadAction { analyze(context) {} }
|
executeOnPooledThreadInReadAction { analyse(context) {} }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.shortenRefs
|
|||||||
import com.intellij.openapi.application.ApplicationManager
|
import com.intellij.openapi.application.ApplicationManager
|
||||||
import com.intellij.openapi.util.TextRange
|
import com.intellij.openapi.util.TextRange
|
||||||
import org.jetbrains.kotlin.AbstractImportsTest
|
import org.jetbrains.kotlin.AbstractImportsTest
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
import org.jetbrains.kotlin.idea.frontend.api.analyse
|
||||||
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
|
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
|
||||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
@@ -24,7 +24,7 @@ abstract class AbstractFirShortenRefsTest : AbstractImportsTest() {
|
|||||||
|
|
||||||
val shortenings = executeOnPooledThread {
|
val shortenings = executeOnPooledThread {
|
||||||
runReadAction {
|
runReadAction {
|
||||||
analyze(file) {
|
analyse(file) {
|
||||||
collectPossibleReferenceShortenings(file, selection)
|
collectPossibleReferenceShortenings(file, selection)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -15,12 +15,12 @@ import org.jetbrains.kotlin.psi.*
|
|||||||
* - Should not be accessed from event dispatch thread
|
* - Should not be accessed from event dispatch thread
|
||||||
* - Should not be accessed outside read action
|
* - Should not be accessed outside read action
|
||||||
* - Should not be leaked outside read action it was created in
|
* - Should not be leaked outside read action it was created in
|
||||||
* - To be sure that session is not leaked it is forbidden to store it in a variable, consider working with it only in [analyze] context
|
* - To be sure that session is not leaked it is forbidden to store it in a variable, consider working with it only in [analyse] context
|
||||||
* - All entities retrieved from analysis session should not be leaked outside the read action KtAnalysisSession was created in
|
* - All entities retrieved from analysis session should not be leaked outside the read action KtAnalysisSession was created in
|
||||||
*
|
*
|
||||||
* To pass a symbol from one read action to another use [KtSymbolPointer] which can be created from a symbol by [KtSymbol.createPointer]
|
* To pass a symbol from one read action to another use [KtSymbolPointer] which can be created from a symbol by [KtSymbol.createPointer]
|
||||||
*
|
*
|
||||||
* To create analysis session consider using [analyze]
|
* To create analysis session consider using [analyse]
|
||||||
*/
|
*/
|
||||||
abstract class KtAnalysisSession(final override val token: ValidityToken) : ValidityTokenOwner,
|
abstract class KtAnalysisSession(final override val token: ValidityToken) : ValidityTokenOwner,
|
||||||
KtSmartCastProviderMixIn,
|
KtSmartCastProviderMixIn,
|
||||||
|
|||||||
+10
-12
@@ -7,19 +7,17 @@ package org.jetbrains.kotlin.idea.frontend.api
|
|||||||
|
|
||||||
import com.intellij.openapi.application.ApplicationManager
|
import com.intellij.openapi.application.ApplicationManager
|
||||||
import com.intellij.openapi.components.service
|
import com.intellij.openapi.components.service
|
||||||
import com.intellij.openapi.diagnostic.Logger
|
|
||||||
import com.intellij.openapi.progress.ProgressIndicator
|
import com.intellij.openapi.progress.ProgressIndicator
|
||||||
import com.intellij.openapi.progress.Task
|
import com.intellij.openapi.progress.Task
|
||||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
import org.jetbrains.kotlin.utils.PrintingLogger
|
|
||||||
|
|
||||||
@RequiresOptIn("To use analysis session, consider using analyze/analyzeWithReadAction/analyseInModalWindow methods")
|
@RequiresOptIn("To use analysis session, consider using analyze/analyzeWithReadAction/analyseInModalWindow methods")
|
||||||
annotation class InvalidWayOfUsingAnalysisSession
|
annotation class InvalidWayOfUsingAnalysisSession
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides [KtAnalysisSession] by [contextElement]
|
* Provides [KtAnalysisSession] by [contextElement]
|
||||||
* Should not be used directly, consider using [analyze]/[analyzeWithReadAction]/[analyseInModalWindow] instead
|
* Should not be used directly, consider using [analyse]/[analyseWithReadAction]/[analyseInModalWindow] instead
|
||||||
*/
|
*/
|
||||||
@InvalidWayOfUsingAnalysisSession
|
@InvalidWayOfUsingAnalysisSession
|
||||||
abstract class KtAnalysisSessionProvider {
|
abstract class KtAnalysisSessionProvider {
|
||||||
@@ -41,30 +39,30 @@ fun getAnalysisSessionFor(contextElement: KtElement): KtAnalysisSession =
|
|||||||
* To analyse something from EDT thread, consider using [analyseInModalWindow]
|
* To analyse something from EDT thread, consider using [analyseInModalWindow]
|
||||||
*
|
*
|
||||||
* @see KtAnalysisSession
|
* @see KtAnalysisSession
|
||||||
* @see analyzeWithReadAction
|
* @see analyseWithReadAction
|
||||||
*/
|
*/
|
||||||
@OptIn(InvalidWayOfUsingAnalysisSession::class)
|
@OptIn(InvalidWayOfUsingAnalysisSession::class)
|
||||||
inline fun <R> analyze(contextElement: KtElement, action: KtAnalysisSession.() -> R): R =
|
inline fun <R> analyse(contextElement: KtElement, action: KtAnalysisSession.() -> R): R =
|
||||||
getAnalysisSessionFor(contextElement).action()
|
getAnalysisSessionFor(contextElement).action()
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute given [action] in [KtAnalysisSession] context like [analyze] does but execute it in read action
|
* Execute given [action] in [KtAnalysisSession] context like [analyse] does but execute it in read action
|
||||||
* Uses [contextElement] to get a module from which you would like to see the other modules
|
* Uses [contextElement] to get a module from which you would like to see the other modules
|
||||||
* Usually [contextElement] is some element form the module you currently analysing now
|
* Usually [contextElement] is some element form the module you currently analysing now
|
||||||
*
|
*
|
||||||
* Should be called from read action
|
* Should be called from read action
|
||||||
* To analyse something from EDT thread, consider using [analyseInModalWindow]
|
* To analyse something from EDT thread, consider using [analyseInModalWindow]
|
||||||
* If you are already in read action, consider using [analyze]
|
* If you are already in read action, consider using [analyse]
|
||||||
*
|
*
|
||||||
* @see KtAnalysisSession
|
* @see KtAnalysisSession
|
||||||
* @see analyze
|
* @see analyse
|
||||||
*/
|
*/
|
||||||
inline fun <R> analyzeWithReadAction(
|
inline fun <R> analyseWithReadAction(
|
||||||
contextElement: KtElement,
|
contextElement: KtElement,
|
||||||
crossinline action: KtAnalysisSession.() -> R
|
crossinline action: KtAnalysisSession.() -> R
|
||||||
): R = runReadAction {
|
): R = runReadAction {
|
||||||
analyze(contextElement, action)
|
analyse(contextElement, action)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -72,7 +70,7 @@ inline fun <R> analyzeWithReadAction(
|
|||||||
* and execute given [action] task with [KtAnalysisSession] context
|
* and execute given [action] task with [KtAnalysisSession] context
|
||||||
* If [action] throws some exception, then [analyseInModalWindow] will rethrow it
|
* If [action] throws some exception, then [analyseInModalWindow] will rethrow it
|
||||||
* Should be executed from EDT only
|
* Should be executed from EDT only
|
||||||
* If you want to analyse something from non-EDT thread, consider using [analyze]/[analyzeWithReadAction]
|
* If you want to analyse something from non-EDT thread, consider using [analyse]/[analyseWithReadAction]
|
||||||
*/
|
*/
|
||||||
inline fun <R> analyseInModalWindow(
|
inline fun <R> analyseInModalWindow(
|
||||||
contextElement: KtElement,
|
contextElement: KtElement,
|
||||||
@@ -81,7 +79,7 @@ inline fun <R> analyseInModalWindow(
|
|||||||
): R {
|
): R {
|
||||||
ApplicationManager.getApplication().assertIsDispatchThread()
|
ApplicationManager.getApplication().assertIsDispatchThread()
|
||||||
val task = object : Task.WithResult<R, Exception>(contextElement.project, windowTitle, /*canBeCancelled*/ true) {
|
val task = object : Task.WithResult<R, Exception>(contextElement.project, windowTitle, /*canBeCancelled*/ true) {
|
||||||
override fun compute(indicator: ProgressIndicator): R = analyzeWithReadAction(contextElement) { action() }
|
override fun compute(indicator: ProgressIndicator): R = analyseWithReadAction(contextElement) { action() }
|
||||||
}
|
}
|
||||||
task.queue()
|
task.queue()
|
||||||
return task.result
|
return task.result
|
||||||
|
|||||||
+2
-6
@@ -11,24 +11,20 @@ import com.intellij.psi.*
|
|||||||
import com.intellij.psi.impl.light.LightEmptyImplementsList
|
import com.intellij.psi.impl.light.LightEmptyImplementsList
|
||||||
import com.intellij.psi.impl.light.LightModifierList
|
import com.intellij.psi.impl.light.LightModifierList
|
||||||
import org.jetbrains.annotations.NonNls
|
import org.jetbrains.annotations.NonNls
|
||||||
import org.jetbrains.kotlin.asJava.classes.*
|
|
||||||
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
|
import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.asJava.elements.*
|
import org.jetbrains.kotlin.asJava.elements.*
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||||
import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName
|
import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
|
||||||
import org.jetbrains.kotlin.idea.KotlinLanguage
|
import org.jetbrains.kotlin.idea.KotlinLanguage
|
||||||
import org.jetbrains.kotlin.idea.asJava.classes.createField
|
import org.jetbrains.kotlin.idea.asJava.classes.createField
|
||||||
import org.jetbrains.kotlin.idea.asJava.classes.createMethods
|
import org.jetbrains.kotlin.idea.asJava.classes.createMethods
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
import org.jetbrains.kotlin.idea.frontend.api.analyse
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.scopes.KtDeclarationScope
|
import org.jetbrains.kotlin.idea.frontend.api.scopes.KtDeclarationScope
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtCallableSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtCallableSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtKotlinPropertySymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtKotlinPropertySymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFileSymbol
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySymbol
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithDeclarations
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithDeclarations
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithVisibility
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithVisibility
|
||||||
import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind
|
import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind
|
||||||
@@ -52,7 +48,7 @@ class FirLightClassForFacade(
|
|||||||
|
|
||||||
private val fileSymbols by lazyPub {
|
private val fileSymbols by lazyPub {
|
||||||
files.map { ktFile ->
|
files.map { ktFile ->
|
||||||
analyze(ktFile) {
|
analyse(ktFile) {
|
||||||
ktFile.getFileSymbol()
|
ktFile.getFileSymbol()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-5
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
|||||||
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
||||||
import org.jetbrains.kotlin.idea.asJava.*
|
import org.jetbrains.kotlin.idea.asJava.*
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.HackToForceAllowRunningAnalyzeOnEDT
|
import org.jetbrains.kotlin.idea.frontend.api.HackToForceAllowRunningAnalyzeOnEDT
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
import org.jetbrains.kotlin.idea.frontend.api.analyse
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.hackyAllowRunningOnEdt
|
import org.jetbrains.kotlin.idea.frontend.api.hackyAllowRunningOnEdt
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
||||||
@@ -57,7 +57,7 @@ fun createFirLightClassNoCache(classOrObject: KtClassOrObject): KtLightClass? =
|
|||||||
|
|
||||||
val anonymousObject = classOrObject.parent as? KtObjectLiteralExpression
|
val anonymousObject = classOrObject.parent as? KtObjectLiteralExpression
|
||||||
if (anonymousObject != null) {
|
if (anonymousObject != null) {
|
||||||
return analyze(anonymousObject) {
|
return analyse(anonymousObject) {
|
||||||
FirLightAnonymousClassForSymbol(anonymousObject.getAnonymousObjectSymbol(), anonymousObject.manager)
|
FirLightAnonymousClassForSymbol(anonymousObject.getAnonymousObjectSymbol(), anonymousObject.manager)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -67,7 +67,7 @@ fun createFirLightClassNoCache(classOrObject: KtClassOrObject): KtLightClass? =
|
|||||||
classOrObject.hasModifier(KtTokens.INLINE_KEYWORD) -> return null //TODO
|
classOrObject.hasModifier(KtTokens.INLINE_KEYWORD) -> return null //TODO
|
||||||
|
|
||||||
else -> {
|
else -> {
|
||||||
analyze(classOrObject) {
|
analyse(classOrObject) {
|
||||||
when (val symbol = classOrObject.getClassOrObjectSymbol()) {
|
when (val symbol = classOrObject.getClassOrObjectSymbol()) {
|
||||||
is KtAnonymousObjectSymbol -> FirLightAnonymousClassForSymbol(symbol, classOrObject.manager)
|
is KtAnonymousObjectSymbol -> FirLightAnonymousClassForSymbol(symbol, classOrObject.manager)
|
||||||
is KtNamedClassOrObjectSymbol -> when (symbol.classKind) {
|
is KtNamedClassOrObjectSymbol -> when (symbol.classKind) {
|
||||||
@@ -333,11 +333,11 @@ internal fun KtSymbolWithMembers.createInnerClasses(manager: PsiManager): List<F
|
|||||||
|
|
||||||
@OptIn(HackToForceAllowRunningAnalyzeOnEDT::class)
|
@OptIn(HackToForceAllowRunningAnalyzeOnEDT::class)
|
||||||
internal fun KtClassOrObject.checkIsInheritor(baseClassOrigin: KtClassOrObject, checkDeep: Boolean): Boolean {
|
internal fun KtClassOrObject.checkIsInheritor(baseClassOrigin: KtClassOrObject, checkDeep: Boolean): Boolean {
|
||||||
return analyze(this) {
|
return analyse(this) {
|
||||||
val thisSymbol = this@checkIsInheritor.getNamedClassOrObjectSymbol()
|
val thisSymbol = this@checkIsInheritor.getNamedClassOrObjectSymbol()
|
||||||
val baseSymbol = baseClassOrigin.getNamedClassOrObjectSymbol()
|
val baseSymbol = baseClassOrigin.getNamedClassOrObjectSymbol()
|
||||||
|
|
||||||
if (thisSymbol == baseSymbol) return@analyze false
|
if (thisSymbol == baseSymbol) return@analyse false
|
||||||
|
|
||||||
val baseType = baseSymbol.buildSelfClassType()
|
val baseType = baseSymbol.buildSelfClassType()
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -11,7 +11,7 @@ import com.intellij.psi.PsiElementResolveResult
|
|||||||
import com.intellij.psi.ResolveResult
|
import com.intellij.psi.ResolveResult
|
||||||
import com.intellij.psi.impl.source.resolve.ResolveCache
|
import com.intellij.psi.impl.source.resolve.ResolveCache
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.HackToForceAllowRunningAnalyzeOnEDT
|
import org.jetbrains.kotlin.idea.frontend.api.HackToForceAllowRunningAnalyzeOnEDT
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
import org.jetbrains.kotlin.idea.frontend.api.analyse
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.runInPossiblyEdtThread
|
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.runInPossiblyEdtThread
|
||||||
import org.jetbrains.kotlin.idea.util.getElementTextInContext
|
import org.jetbrains.kotlin.idea.util.getElementTextInContext
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@ object KtFirReferenceResolver : ResolveCache.PolyVariantResolver<KtReference> {
|
|||||||
check(ref is AbstractKtReference<*>) { "reference should be AbstractKtReference, but was ${ref::class}" }
|
check(ref is AbstractKtReference<*>) { "reference should be AbstractKtReference, but was ${ref::class}" }
|
||||||
return runInPossiblyEdtThread {
|
return runInPossiblyEdtThread {
|
||||||
val resolveToPsiElements = try {
|
val resolveToPsiElements = try {
|
||||||
analyze(ref.expression) { ref.getResolvedToPsi(this) }
|
analyse(ref.expression) { ref.getResolvedToPsi(this) }
|
||||||
} catch (e: Throwable) {
|
} catch (e: Throwable) {
|
||||||
if (e is ControlFlowException) throw e
|
if (e is ControlFlowException) throw e
|
||||||
throw KtReferenceResolveException(ref, e)
|
throw KtReferenceResolveException(ref, e)
|
||||||
|
|||||||
+1
-1
@@ -23,7 +23,7 @@ abstract class AbstractSymbolByFqNameTest : KotlinLightCodeInsightFixtureTestCas
|
|||||||
val symbolData = SymbolByFqName.getSymbolDataFromFile(Paths.get(path))
|
val symbolData = SymbolByFqName.getSymbolDataFromFile(Paths.get(path))
|
||||||
|
|
||||||
val renderedSymbols = executeOnPooledThreadInReadAction {
|
val renderedSymbols = executeOnPooledThreadInReadAction {
|
||||||
analyze(fakeKtFile) {
|
analyse(fakeKtFile) {
|
||||||
val symbols = createSymbols(symbolData)
|
val symbols = createSymbols(symbolData)
|
||||||
symbols.map { DebugSymbolRenderer.render(it) }
|
symbols.map { DebugSymbolRenderer.render(it) }
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-8
@@ -6,18 +6,12 @@
|
|||||||
package org.jetbrains.kotlin.idea.frontend.api.components
|
package org.jetbrains.kotlin.idea.frontend.api.components
|
||||||
|
|
||||||
import com.intellij.openapi.util.io.FileUtil
|
import com.intellij.openapi.util.io.FileUtil
|
||||||
import com.intellij.psi.PsiComment
|
|
||||||
import com.intellij.psi.util.parentOfType
|
import com.intellij.psi.util.parentOfType
|
||||||
import junit.framework.Assert
|
|
||||||
import org.jetbrains.kotlin.idea.executeOnPooledThreadInReadAction
|
import org.jetbrains.kotlin.idea.executeOnPooledThreadInReadAction
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
import org.jetbrains.kotlin.idea.frontend.api.analyse
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
|
||||||
import org.jetbrains.kotlin.psi.KtExpression
|
import org.jetbrains.kotlin.psi.KtExpression
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.psi.KtReturnExpression
|
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.forEachDescendantOfType
|
|
||||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import org.jetbrains.kotlin.test.uitls.IgnoreTests
|
import org.jetbrains.kotlin.test.uitls.IgnoreTests
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -33,7 +27,7 @@ abstract class AbstractExpectedExpressionTypeTest : KotlinLightCodeInsightFixtur
|
|||||||
?: error("No element was found at caret or no <caret> is present in the test file")
|
?: error("No element was found at caret or no <caret> is present in the test file")
|
||||||
|
|
||||||
val actualExpectedTypeText: String? = executeOnPooledThreadInReadAction {
|
val actualExpectedTypeText: String? = executeOnPooledThreadInReadAction {
|
||||||
analyze(ktFile) {
|
analyse(ktFile) {
|
||||||
expressionAtCaret.getExpectedType()?.asStringForDebugging()
|
expressionAtCaret.getExpectedType()?.asStringForDebugging()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -6,7 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.idea.frontend.api.components
|
package org.jetbrains.kotlin.idea.frontend.api.components
|
||||||
|
|
||||||
import org.jetbrains.kotlin.idea.executeOnPooledThreadInReadAction
|
import org.jetbrains.kotlin.idea.executeOnPooledThreadInReadAction
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
import org.jetbrains.kotlin.idea.frontend.api.analyse
|
||||||
import org.jetbrains.kotlin.idea.test.framework.AbstractKtIdeaTest
|
import org.jetbrains.kotlin.idea.test.framework.AbstractKtIdeaTest
|
||||||
import org.jetbrains.kotlin.idea.test.framework.TestFileStructure
|
import org.jetbrains.kotlin.idea.test.framework.TestFileStructure
|
||||||
import org.jetbrains.kotlin.idea.test.framework.TestStructureExpectedDataBlock
|
import org.jetbrains.kotlin.idea.test.framework.TestStructureExpectedDataBlock
|
||||||
@@ -20,7 +20,7 @@ abstract class AbstractHLExpressionTypeTest : AbstractKtIdeaTest() {
|
|||||||
val expression = fileStructure.mainFile.selectedExpression as KtExpression?
|
val expression = fileStructure.mainFile.selectedExpression as KtExpression?
|
||||||
?: error("Selected expression was not provided")
|
?: error("Selected expression was not provided")
|
||||||
val type = executeOnPooledThreadInReadAction {
|
val type = executeOnPooledThreadInReadAction {
|
||||||
analyze(expression) { expression.getKtType().render() }
|
analyse(expression) { expression.getKtType().render() }
|
||||||
}
|
}
|
||||||
val actual = TestStructureRenderer.render(
|
val actual = TestStructureRenderer.render(
|
||||||
fileStructure,
|
fileStructure,
|
||||||
|
|||||||
+2
-2
@@ -9,7 +9,7 @@ import com.intellij.psi.util.parentOfType
|
|||||||
import com.intellij.psi.util.parentsOfType
|
import com.intellij.psi.util.parentsOfType
|
||||||
import org.jetbrains.kotlin.idea.executeOnPooledThreadInReadAction
|
import org.jetbrains.kotlin.idea.executeOnPooledThreadInReadAction
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
import org.jetbrains.kotlin.idea.frontend.api.analyse
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtCallableSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtCallableSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSyntheticJavaPropertySymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSyntheticJavaPropertySymbol
|
||||||
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.test.KotlinTestUtils
|
|||||||
abstract class AbstractOverriddenDeclarationProviderTest : AbstractKtIdeaTest() {
|
abstract class AbstractOverriddenDeclarationProviderTest : AbstractKtIdeaTest() {
|
||||||
override fun doTestByFileStructure(fileStructure: TestFileStructure) {
|
override fun doTestByFileStructure(fileStructure: TestFileStructure) {
|
||||||
val signatures = executeOnPooledThreadInReadAction {
|
val signatures = executeOnPooledThreadInReadAction {
|
||||||
analyze(fileStructure.mainKtFile) {
|
analyse(fileStructure.mainKtFile) {
|
||||||
val symbol = getElementOfTypeAtCaret<KtDeclaration>().getSymbol() as KtCallableSymbol
|
val symbol = getElementOfTypeAtCaret<KtDeclaration>().getSymbol() as KtCallableSymbol
|
||||||
val allOverriddenSymbols = symbol.getAllOverriddenSymbols().map { renderSignature(it) }
|
val allOverriddenSymbols = symbol.getAllOverriddenSymbols().map { renderSignature(it) }
|
||||||
val directlyOverriddenSymbols = symbol.getDirectlyOverriddenSymbols().map { renderSignature(it) }
|
val directlyOverriddenSymbols = symbol.getDirectlyOverriddenSymbols().map { renderSignature(it) }
|
||||||
|
|||||||
+3
-5
@@ -10,10 +10,8 @@ import com.intellij.psi.PsiComment
|
|||||||
import com.intellij.psi.util.parentOfType
|
import com.intellij.psi.util.parentOfType
|
||||||
import junit.framework.Assert
|
import junit.framework.Assert
|
||||||
import org.jetbrains.kotlin.idea.executeOnPooledThreadInReadAction
|
import org.jetbrains.kotlin.idea.executeOnPooledThreadInReadAction
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
import org.jetbrains.kotlin.idea.frontend.api.analyse
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||||
import org.jetbrains.kotlin.idea.util.application.executeOnPooledThread
|
|
||||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.psi.KtReturnExpression
|
import org.jetbrains.kotlin.psi.KtReturnExpression
|
||||||
@@ -34,8 +32,8 @@ abstract class AbstractReturnExpressionTargetTest : KotlinLightCodeInsightFixtur
|
|||||||
val expectedReturnTarget = ktFile.getExpectedReturnTarget()
|
val expectedReturnTarget = ktFile.getExpectedReturnTarget()
|
||||||
|
|
||||||
val actualReturnTargetPsi: KtDeclaration? = executeOnPooledThreadInReadAction {
|
val actualReturnTargetPsi: KtDeclaration? = executeOnPooledThreadInReadAction {
|
||||||
analyze(ktFile) {
|
analyse(ktFile) {
|
||||||
val actualReturnTargetSymbol = ktReturnExpressionAtCaret.getReturnTargetSymbol() ?: return@analyze null
|
val actualReturnTargetSymbol = ktReturnExpressionAtCaret.getReturnTargetSymbol() ?: return@analyse null
|
||||||
actualReturnTargetSymbol.psi as KtDeclaration
|
actualReturnTargetSymbol.psi as KtDeclaration
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -12,7 +12,7 @@ import com.intellij.testFramework.LightCodeInsightTestCase
|
|||||||
import org.jetbrains.kotlin.idea.addExternalTestFiles
|
import org.jetbrains.kotlin.idea.addExternalTestFiles
|
||||||
import org.jetbrains.kotlin.idea.executeOnPooledThreadInReadAction
|
import org.jetbrains.kotlin.idea.executeOnPooledThreadInReadAction
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
import org.jetbrains.kotlin.idea.frontend.api.analyse
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.calls.KtCall
|
import org.jetbrains.kotlin.idea.frontend.api.calls.KtCall
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.calls.KtErrorCallTarget
|
import org.jetbrains.kotlin.idea.frontend.api.calls.KtErrorCallTarget
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.calls.KtSuccessCallTarget
|
import org.jetbrains.kotlin.idea.frontend.api.calls.KtSuccessCallTarget
|
||||||
@@ -45,7 +45,7 @@ abstract class AbstractResolveCallTest : @Suppress("DEPRECATION") LightCodeInsig
|
|||||||
}
|
}
|
||||||
|
|
||||||
val actualText = executeOnPooledThreadInReadAction {
|
val actualText = executeOnPooledThreadInReadAction {
|
||||||
val callInfos = analyze(file as KtFile) {
|
val callInfos = analyse(file as KtFile) {
|
||||||
elements.map { resolveCall(it) }
|
elements.map { resolveCall(it) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.idea.frontend.api.scopes
|
|||||||
|
|
||||||
import com.intellij.openapi.util.io.FileUtil
|
import com.intellij.openapi.util.io.FileUtil
|
||||||
import org.jetbrains.kotlin.idea.executeOnPooledThreadInReadAction
|
import org.jetbrains.kotlin.idea.executeOnPooledThreadInReadAction
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
import org.jetbrains.kotlin.idea.frontend.api.analyse
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.DebugSymbolRenderer
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.DebugSymbolRenderer
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
@@ -20,7 +20,7 @@ abstract class AbstractFileScopeTest : KotlinLightCodeInsightFixtureTestCase() {
|
|||||||
val ktFile = myFixture.configureByText("file.kt", FileUtil.loadFile(File(path))) as KtFile
|
val ktFile = myFixture.configureByText("file.kt", FileUtil.loadFile(File(path))) as KtFile
|
||||||
|
|
||||||
val actual = executeOnPooledThreadInReadAction {
|
val actual = executeOnPooledThreadInReadAction {
|
||||||
analyze(ktFile) {
|
analyse(ktFile) {
|
||||||
val symbol = ktFile.getFileSymbol()
|
val symbol = ktFile.getFileSymbol()
|
||||||
val scope = symbol.getFileScope()
|
val scope = symbol.getFileScope()
|
||||||
|
|
||||||
|
|||||||
+3
-6
@@ -14,23 +14,20 @@ import org.jetbrains.kotlin.idea.executeOnPooledThreadInReadAction
|
|||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.trackers.KotlinFirOutOfBlockModificationTrackerFactory
|
import org.jetbrains.kotlin.idea.fir.low.level.api.trackers.KotlinFirOutOfBlockModificationTrackerFactory
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.InvalidWayOfUsingAnalysisSession
|
import org.jetbrains.kotlin.idea.frontend.api.InvalidWayOfUsingAnalysisSession
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSessionProvider
|
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSessionProvider
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
import org.jetbrains.kotlin.idea.frontend.api.analyse
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSessionProvider
|
import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSessionProvider
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.KtFirSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.KtFirSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.EntityWasGarbageCollectedException
|
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType
|
import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType
|
||||||
import org.jetbrains.kotlin.trackers.KotlinOutOfBlockModificationTrackerFactory
|
import org.jetbrains.kotlin.trackers.KotlinOutOfBlockModificationTrackerFactory
|
||||||
import sun.management.HotSpotDiagnostic
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.lang.management.ManagementFactory
|
import java.lang.management.ManagementFactory
|
||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
import java.nio.file.Paths
|
import java.nio.file.Paths
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import kotlin.io.path.absolute
|
|
||||||
|
|
||||||
abstract class AbstractMemoryLeakInSymbolsTest : KotlinLightCodeInsightFixtureTestCase() {
|
abstract class AbstractMemoryLeakInSymbolsTest : KotlinLightCodeInsightFixtureTestCase() {
|
||||||
override fun isFirPlugin() = true
|
override fun isFirPlugin() = true
|
||||||
@@ -39,7 +36,7 @@ abstract class AbstractMemoryLeakInSymbolsTest : KotlinLightCodeInsightFixtureTe
|
|||||||
val testDataFile = File(path)
|
val testDataFile = File(path)
|
||||||
val ktFile = myFixture.configureByText(testDataFile.name, FileUtil.loadFile(testDataFile)) as KtFile
|
val ktFile = myFixture.configureByText(testDataFile.name, FileUtil.loadFile(testDataFile)) as KtFile
|
||||||
val symbols = executeOnPooledThreadInReadAction {
|
val symbols = executeOnPooledThreadInReadAction {
|
||||||
analyze(ktFile) {
|
analyse(ktFile) {
|
||||||
ktFile.collectDescendantsOfType<KtDeclaration>().map { it.getSymbol() }
|
ktFile.collectDescendantsOfType<KtDeclaration>().map { it.getSymbol() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -67,7 +64,7 @@ abstract class AbstractMemoryLeakInSymbolsTest : KotlinLightCodeInsightFixtureTe
|
|||||||
(project.service<KotlinOutOfBlockModificationTrackerFactory>() as KotlinFirOutOfBlockModificationTrackerFactory).incrementModificationsCount()
|
(project.service<KotlinOutOfBlockModificationTrackerFactory>() as KotlinFirOutOfBlockModificationTrackerFactory).incrementModificationsCount()
|
||||||
project.service<LibraryModificationTracker>().incModificationCount()
|
project.service<LibraryModificationTracker>().incModificationCount()
|
||||||
(project.service<KtAnalysisSessionProvider>() as KtFirAnalysisSessionProvider).clearCaches()
|
(project.service<KtAnalysisSessionProvider>() as KtFirAnalysisSessionProvider).clearCaches()
|
||||||
executeOnPooledThreadInReadAction { analyze(ktFile) {} }
|
executeOnPooledThreadInReadAction { analyse(ktFile) {} }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun KtSymbol.hasNoFirElementLeak(): LeakCheckResult {
|
private fun KtSymbol.hasNoFirElementLeak(): LeakCheckResult {
|
||||||
|
|||||||
+3
-5
@@ -7,11 +7,9 @@ package org.jetbrains.kotlin.idea.frontend.api.types
|
|||||||
|
|
||||||
import com.intellij.testFramework.LightProjectDescriptor
|
import com.intellij.testFramework.LightProjectDescriptor
|
||||||
import org.jetbrains.kotlin.idea.executeOnPooledThreadInReadAction
|
import org.jetbrains.kotlin.idea.executeOnPooledThreadInReadAction
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
import org.jetbrains.kotlin.idea.frontend.api.analyse
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.components.KtTypeRendererOptions
|
import org.jetbrains.kotlin.idea.frontend.api.components.KtTypeRendererOptions
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinLightProjectDescriptor
|
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.psi.KtFunction
|
import org.jetbrains.kotlin.psi.KtFunction
|
||||||
@@ -31,7 +29,7 @@ class KtTypeRendererTest : KotlinLightCodeInsightFixtureTestCase() {
|
|||||||
val fakeKtFile = myFixture.configureByText("file.kt", "fun ${typeArgumentsRendered}foo(): $type = 1") as KtFile
|
val fakeKtFile = myFixture.configureByText("file.kt", "fun ${typeArgumentsRendered}foo(): $type = 1") as KtFile
|
||||||
val property = fakeKtFile.declarations.single() as KtFunction
|
val property = fakeKtFile.declarations.single() as KtFunction
|
||||||
val renderedType = executeOnPooledThreadInReadAction {
|
val renderedType = executeOnPooledThreadInReadAction {
|
||||||
analyze(fakeKtFile) {
|
analyse(fakeKtFile) {
|
||||||
val ktType = property.getReturnKtType()
|
val ktType = property.getReturnKtType()
|
||||||
ktType.render(rendererOptions)
|
ktType.render(rendererOptions)
|
||||||
}
|
}
|
||||||
@@ -47,7 +45,7 @@ class KtTypeRendererTest : KotlinLightCodeInsightFixtureTestCase() {
|
|||||||
val fakeKtFile = myFixture.configureByText("file.kt", "val a = $expression") as KtFile
|
val fakeKtFile = myFixture.configureByText("file.kt", "val a = $expression") as KtFile
|
||||||
val property = fakeKtFile.declarations.single() as KtProperty
|
val property = fakeKtFile.declarations.single() as KtProperty
|
||||||
val renderedType = executeOnPooledThreadInReadAction {
|
val renderedType = executeOnPooledThreadInReadAction {
|
||||||
analyze(fakeKtFile) {
|
analyse(fakeKtFile) {
|
||||||
val ktType = property.initializer?.getKtType()
|
val ktType = property.initializer?.getKtType()
|
||||||
?: error("fake property should have initializer")
|
?: error("fake property should have initializer")
|
||||||
ktType.render(rendererOptions)
|
ktType.render(rendererOptions)
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
|||||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.element.builder.DuplicatedFirSourceElementsException
|
import org.jetbrains.kotlin.idea.fir.low.level.api.element.builder.DuplicatedFirSourceElementsException
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyze
|
import org.jetbrains.kotlin.idea.frontend.api.analyse
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ fun <R> executeOnPooledThreadInReadAction(action: () -> R): R =
|
|||||||
|
|
||||||
inline fun <R> analyseOnPooledThreadInReadAction(context: KtElement, crossinline action: KtAnalysisSession.() -> R): R =
|
inline fun <R> analyseOnPooledThreadInReadAction(context: KtElement, crossinline action: KtAnalysisSession.() -> R): R =
|
||||||
executeOnPooledThreadInReadAction {
|
executeOnPooledThreadInReadAction {
|
||||||
analyze(context) { action() }
|
analyse(context) { action() }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user