Avoid exception from autoimport fix with misconfigured analyzer
This commit is contained in:
@@ -45,6 +45,7 @@ interface ResolutionFacade {
|
||||
|
||||
// get service for the module defined by PsiElement/ModuleDescriptor passed as parameter
|
||||
fun <T : Any> getFrontendService(element: PsiElement, serviceClass: Class<T>): T
|
||||
fun <T : Any> tryGetFrontendService(element: PsiElement, serviceClass: Class<T>): T?
|
||||
|
||||
fun <T : Any> getFrontendService(moduleDescriptor: ModuleDescriptor, serviceClass: Class<T>): T
|
||||
|
||||
|
||||
+1
-1
@@ -106,7 +106,7 @@ fun PsiClass.resolveToDescriptor(
|
||||
|
||||
private fun PsiElement.getJavaDescriptorResolver(resolutionFacade: ResolutionFacade?): JavaDescriptorResolver? {
|
||||
if (resolutionFacade != null) {
|
||||
return resolutionFacade.getFrontendService(this, JavaDescriptorResolver::class.java)
|
||||
return resolutionFacade.tryGetFrontendService(this, JavaDescriptorResolver::class.java)
|
||||
}
|
||||
else {
|
||||
//TODO_R: should this work in scripts?
|
||||
|
||||
+5
@@ -21,6 +21,7 @@ import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.analyzer.AnalysisResult
|
||||
import org.jetbrains.kotlin.container.get
|
||||
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.project.ResolveElementCache
|
||||
@@ -82,6 +83,10 @@ internal class ResolutionFacadeImpl(
|
||||
return getFrontendService(element.getModuleInfo(), serviceClass)
|
||||
}
|
||||
|
||||
override fun <T : Any> tryGetFrontendService(element: PsiElement, serviceClass: Class<T>): T? {
|
||||
return projectFacade.resolverForModuleInfo(element.getModuleInfo()).componentProvider.tryGetService(serviceClass)
|
||||
}
|
||||
|
||||
fun <T : Any> getFrontendService(ideaModuleInfo: IdeaModuleInfo, serviceClass: Class<T>): T {
|
||||
return projectFacade.resolverForModuleInfo(ideaModuleInfo).componentProvider.getService(serviceClass)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user