summaryrefslogtreecommitdiff
path: root/analysis
diff options
context:
space:
mode:
authorPavel Kirpichenkov <pavel.kirpichenkov@jetbrains.com>2020-08-10 12:14:01 +0300
committerkotlin-ide-monorepo-bot <kotlin-ide-monorepo-bot-no-reply@jetbrains.com>2020-11-27 22:03:27 +0000
commitd52a550010700e555b94a57309a7e326ab1d1906 (patch)
treeb46447962efab31db770b3478d3876ebbd1112c6 /analysis
parentaca4ee5cb635646d743290f4bac572d105a5fc3e (diff)
downloadintellij-kotlin-d52a550010700e555b94a57309a7e326ab1d1906.tar.gz
Reapply "Introduce @FrontendInternals annotation""
This reverts commit 9ca4717d112f1a935c989bfe93acf0532e500fa5. ^KT-39643 Fixed Original commit: f431da2a665369f95b987e0a59ee29bc4318f796 GitOrigin-RevId: e707a0d38e65664db994bdedf3a6b00b98366564
Diffstat (limited to 'analysis')
-rw-r--r--analysis/src/org/jetbrains/kotlin/idea/caches/lightClasses/IDELightClassContexts.kt3
-rw-r--r--analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt6
-rw-r--r--analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ModuleResolutionFacadeImpl.kt6
-rw-r--r--analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ResolutionFacadeWithDebugInfo.kt5
-rw-r--r--analysis/src/org/jetbrains/kotlin/idea/caches/resolve/util/JavaResolveExtension.kt2
5 files changed, 21 insertions, 1 deletions
diff --git a/analysis/src/org/jetbrains/kotlin/idea/caches/lightClasses/IDELightClassContexts.kt b/analysis/src/org/jetbrains/kotlin/idea/caches/lightClasses/IDELightClassContexts.kt
index 1dce10cc6899..0189152cb630 100644
--- a/analysis/src/org/jetbrains/kotlin/idea/caches/lightClasses/IDELightClassContexts.kt
+++ b/analysis/src/org/jetbrains/kotlin/idea/caches/lightClasses/IDELightClassContexts.kt
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.descriptors.impl.CompositePackageFragmentProvider
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
import org.jetbrains.kotlin.frontend.di.configureModule
+import org.jetbrains.kotlin.idea.FrontendInternals
import org.jetbrains.kotlin.idea.caches.lightClasses.IDELightClassConstructionContext.Mode.EXACT
import org.jetbrains.kotlin.idea.caches.lightClasses.IDELightClassConstructionContext.Mode.LIGHT
import org.jetbrains.kotlin.idea.caches.lightClasses.annotations.KOTLINX_SERIALIZABLE_FQ_NAME
@@ -91,6 +92,7 @@ internal object IDELightClassContexts {
val bindingContext = if (classOrObject is KtClass && classOrObject.isAnnotation()) {
// need to make sure default values for parameters are resolved
// because java resolve depends on whether there is a default value for an annotation attribute
+ @OptIn(FrontendInternals::class)
resolutionFacade.getFrontendService(ResolveElementCache::class.java)
.resolvePrimaryConstructorParametersDefaultValues(classOrObject)
} else {
@@ -136,6 +138,7 @@ internal object IDELightClassContexts {
fun contextForFacade(files: List<KtFile>): LightClassConstructionContext {
+ @OptIn(FrontendInternals::class)
val resolveSession = files.first().getResolutionFacade().getFrontendService(ResolveSession::class.java)
forceResolvePackageDeclarations(files, resolveSession)
diff --git a/analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt b/analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt
index 7c4d151367f3..79764bdb10ec 100644
--- a/analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt
+++ b/analysis/src/org/jetbrains/kotlin/idea/caches/resolve/IDELightClassGenerationSupport.kt
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.config.JvmTarget
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
+import org.jetbrains.kotlin.idea.FrontendInternals
import org.jetbrains.kotlin.idea.caches.lightClasses.IDELightClassContexts
import org.jetbrains.kotlin.idea.caches.lightClasses.LazyLightClassDataHolder
import org.jetbrains.kotlin.idea.project.languageVersionSettings
@@ -90,7 +91,9 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG
return null
}
- override val deprecationResolver: DeprecationResolver get() = resolutionFacade.getFrontendService(DeprecationResolver::class.java)
+ @OptIn(FrontendInternals::class)
+ override val deprecationResolver: DeprecationResolver
+ get() = resolutionFacade.getFrontendService(DeprecationResolver::class.java)
override val typeMapper: KotlinTypeMapper by lazyPub {
@@ -205,6 +208,7 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG
)
}
+ @OptIn(FrontendInternals::class)
private fun KtElement.getDiagnosticsHolder() =
getResolutionFacade().frontendService<LazyLightClassDataHolder.DiagnosticsHolder>()
diff --git a/analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ModuleResolutionFacadeImpl.kt b/analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ModuleResolutionFacadeImpl.kt
index 75a7f7cc1244..b177751f2636 100644
--- a/analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ModuleResolutionFacadeImpl.kt
+++ b/analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ModuleResolutionFacadeImpl.kt
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.container.getService
import org.jetbrains.kotlin.container.tryGetService
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
+import org.jetbrains.kotlin.idea.FrontendInternals
import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo
import org.jetbrains.kotlin.idea.project.ResolveElementCache
import org.jetbrains.kotlin.idea.resolve.ResolutionFacade
@@ -67,6 +68,7 @@ internal class ModuleResolutionFacadeImpl(
}
}
+ @OptIn(FrontendInternals::class)
val resolveElementCache = getFrontendService(elements.first(), ResolveElementCache::class.java)
return runWithCancellationCheck {
resolveElementCache.resolveToElements(elements, bodyResolveMode)
@@ -95,16 +97,19 @@ internal class ModuleResolutionFacadeImpl(
}
}
+ @FrontendInternals
override fun <T : Any> getFrontendService(serviceClass: Class<T>): T = getFrontendService(moduleInfo, serviceClass)
override fun <T : Any> getIdeService(serviceClass: Class<T>): T {
return projectFacade.resolverForModuleInfo(moduleInfo).componentProvider.create(serviceClass)
}
+ @FrontendInternals
override fun <T : Any> getFrontendService(element: PsiElement, serviceClass: Class<T>): T {
return projectFacade.resolverForElement(element).componentProvider.getService(serviceClass)
}
+ @FrontendInternals
override fun <T : Any> tryGetFrontendService(element: PsiElement, serviceClass: Class<T>): T? {
return projectFacade.resolverForElement(element).componentProvider.tryGetService(serviceClass)
}
@@ -113,6 +118,7 @@ internal class ModuleResolutionFacadeImpl(
return projectFacade.resolverForModuleInfo(ideaModuleInfo).componentProvider.getService(serviceClass)
}
+ @FrontendInternals
override fun <T : Any> getFrontendService(moduleDescriptor: ModuleDescriptor, serviceClass: Class<T>): T {
return projectFacade.resolverForDescriptor(moduleDescriptor).componentProvider.getService(serviceClass)
}
diff --git a/analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ResolutionFacadeWithDebugInfo.kt b/analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ResolutionFacadeWithDebugInfo.kt
index 5f2e58e7e8b8..bbcff6c48b89 100644
--- a/analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ResolutionFacadeWithDebugInfo.kt
+++ b/analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ResolutionFacadeWithDebugInfo.kt
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.analyzer.ModuleInfo
import org.jetbrains.kotlin.analyzer.ResolverForProject
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
+import org.jetbrains.kotlin.idea.FrontendInternals
import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo
import org.jetbrains.kotlin.idea.caches.project.getNullableModuleInfo
import org.jetbrains.kotlin.idea.resolve.ResolutionFacade
@@ -66,6 +67,7 @@ private class ResolutionFacadeWithDebugInfo(
override val moduleDescriptor: ModuleDescriptor
get() = delegate.moduleDescriptor
+ @FrontendInternals
override fun <T : Any> getFrontendService(serviceClass: Class<T>): T {
return wrapExceptions({ ResolvingWhat(serviceClass = serviceClass) }) {
delegate.getFrontendService(serviceClass)
@@ -78,12 +80,14 @@ private class ResolutionFacadeWithDebugInfo(
}
}
+ @FrontendInternals
override fun <T : Any> getFrontendService(element: PsiElement, serviceClass: Class<T>): T {
return wrapExceptions({ ResolvingWhat(listOf(element), serviceClass = serviceClass) }) {
delegate.getFrontendService(element, serviceClass)
}
}
+ @FrontendInternals
override fun <T : Any> tryGetFrontendService(element: PsiElement, serviceClass: Class<T>): T? {
return wrapExceptions({ ResolvingWhat(listOf(element), serviceClass = serviceClass) }) {
delegate.tryGetFrontendService(element, serviceClass)
@@ -94,6 +98,7 @@ private class ResolutionFacadeWithDebugInfo(
return delegate.getResolverForProject()
}
+ @FrontendInternals
override fun <T : Any> getFrontendService(moduleDescriptor: ModuleDescriptor, serviceClass: Class<T>): T {
return wrapExceptions({ ResolvingWhat(serviceClass = serviceClass, moduleDescriptor = moduleDescriptor) }) {
delegate.getFrontendService(moduleDescriptor, serviceClass)
diff --git a/analysis/src/org/jetbrains/kotlin/idea/caches/resolve/util/JavaResolveExtension.kt b/analysis/src/org/jetbrains/kotlin/idea/caches/resolve/util/JavaResolveExtension.kt
index 15dbd24f8d68..3f42f5ddaa97 100644
--- a/analysis/src/org/jetbrains/kotlin/idea/caches/resolve/util/JavaResolveExtension.kt
+++ b/analysis/src/org/jetbrains/kotlin/idea/caches/resolve/util/JavaResolveExtension.kt
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.unwrapped
import org.jetbrains.kotlin.caches.resolve.KotlinCacheService
import org.jetbrains.kotlin.descriptors.*
+import org.jetbrains.kotlin.idea.FrontendInternals
import org.jetbrains.kotlin.idea.caches.lightClasses.KtLightClassForDecompiledDeclaration
import org.jetbrains.kotlin.idea.resolve.ResolutionFacade
import org.jetbrains.kotlin.idea.util.application.runReadAction
@@ -111,6 +112,7 @@ fun PsiClass.resolveToDescriptor(
} as? ClassDescriptor
}
+@OptIn(FrontendInternals::class)
private fun PsiElement.getJavaDescriptorResolver(resolutionFacade: ResolutionFacade): JavaDescriptorResolver? {
return resolutionFacade.tryGetFrontendService(this, JavaDescriptorResolver::class.java)
}