[LL API] Migrate 'getKtModule()' usages to 'ProjectStructureProvider'
Ensure the contextual module is passed wherever possible. ^KT-57559 Fixed
This commit is contained in:
+24
-13
@@ -35,6 +35,8 @@ import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtScript
|
||||
|
||||
class SymbolKotlinAsJavaSupport(project: Project) : KotlinAsJavaSupportBase<KtModule>(project) {
|
||||
private val projectStructureProvider by lazy { ProjectStructureProvider.getInstance(project) }
|
||||
|
||||
override fun findClassOrObjectDeclarationsInPackage(
|
||||
packageFqName: FqName,
|
||||
searchScope: GlobalSearchScope
|
||||
@@ -92,16 +94,21 @@ class SymbolKotlinAsJavaSupport(project: Project) : KotlinAsJavaSupportBase<KtMo
|
||||
.map { fqn.child(it) }
|
||||
|
||||
override fun createInstanceOfLightScript(script: KtScript): KtLightClass {
|
||||
return SymbolLightClassForScript(script, script.getKtModule(project))
|
||||
val module = ProjectStructureProvider.getModule(script, contextualModule = null)
|
||||
return SymbolLightClassForScript(script, module)
|
||||
}
|
||||
|
||||
override fun KtFile.findModule(): KtModule = getKtModule(project)
|
||||
override fun KtFile.findModule(): KtModule {
|
||||
return projectStructureProvider.getModule(this, contextualModule = null)
|
||||
}
|
||||
|
||||
override fun declarationLocation(file: KtFile): DeclarationLocation? = when (file.getKtModule(project)) {
|
||||
is KtSourceModule -> DeclarationLocation.ProjectSources
|
||||
is KtLibraryModule -> DeclarationLocation.LibraryClasses
|
||||
is KtLibrarySourceModule -> DeclarationLocation.LibrarySources
|
||||
else -> null
|
||||
override fun declarationLocation(file: KtFile): DeclarationLocation? {
|
||||
return when (projectStructureProvider.getModule(file, contextualModule = null)) {
|
||||
is KtSourceModule -> DeclarationLocation.ProjectSources
|
||||
is KtLibraryModule -> DeclarationLocation.LibraryClasses
|
||||
is KtLibrarySourceModule -> DeclarationLocation.LibrarySources
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
override fun createInstanceOfDecompiledLightClass(classOrObject: KtClassOrObject): KtLightClass? {
|
||||
@@ -109,7 +116,8 @@ class SymbolKotlinAsJavaSupport(project: Project) : KotlinAsJavaSupportBase<KtMo
|
||||
}
|
||||
|
||||
override fun createInstanceOfLightClass(classOrObject: KtClassOrObject): KtLightClass? {
|
||||
return createSymbolLightClassNoCache(classOrObject, classOrObject.getKtModule(project))
|
||||
val module = projectStructureProvider.getModule(classOrObject, contextualModule = null)
|
||||
return createSymbolLightClassNoCache(classOrObject, module)
|
||||
}
|
||||
|
||||
override fun createInstanceOfDecompiledLightFacade(facadeFqName: FqName, files: List<KtFile>): KtLightClassForFacade? {
|
||||
@@ -128,10 +136,10 @@ class SymbolKotlinAsJavaSupport(project: Project) : KotlinAsJavaSupportBase<KtMo
|
||||
return project.createAllLibrariesModificationTracker()
|
||||
}
|
||||
|
||||
override fun createInstanceOfLightFacade(
|
||||
facadeFqName: FqName,
|
||||
files: List<KtFile>,
|
||||
): KtLightClassForFacade = SymbolLightClassForFacade(facadeFqName, files, files.first().getKtModule(project))
|
||||
override fun createInstanceOfLightFacade(facadeFqName: FqName, files: List<KtFile>): KtLightClassForFacade {
|
||||
val module = projectStructureProvider.getModule(files.first(), contextualModule = null)
|
||||
return SymbolLightClassForFacade(facadeFqName, files, module)
|
||||
}
|
||||
|
||||
override val KtModule.contentSearchScope: GlobalSearchScope get() = this.contentScope
|
||||
|
||||
@@ -168,7 +176,10 @@ class SymbolKotlinAsJavaSupport(project: Project) : KotlinAsJavaSupportBase<KtMo
|
||||
|
||||
override fun getFakeLightClass(classOrObject: KtClassOrObject): KtFakeLightClass = SymbolBasedFakeLightClass(classOrObject)
|
||||
|
||||
private fun KtElement.isFromSourceOrLibraryBinary(project: Project): Boolean = getKtModule(project).isFromSourceOrLibraryBinary()
|
||||
private fun KtElement.isFromSourceOrLibraryBinary(): Boolean {
|
||||
val module = projectStructureProvider.getModule(this, contextualModule = null)
|
||||
return module.isFromSourceOrLibraryBinary()
|
||||
}
|
||||
|
||||
private fun KtModule.isFromSourceOrLibraryBinary() = when (this) {
|
||||
is KtSourceModule -> true
|
||||
|
||||
+2
-2
@@ -11,6 +11,7 @@ import com.intellij.psi.PsiModifier
|
||||
import com.intellij.psi.PsiReferenceList
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||
import org.jetbrains.kotlin.analysis.api.annotations.hasAnnotation
|
||||
import org.jetbrains.kotlin.analysis.api.getModule
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.*
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolWithMembers
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolWithTypeParameters
|
||||
@@ -21,7 +22,6 @@ import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtTypeMappingMode
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule
|
||||
import org.jetbrains.kotlin.analysis.project.structure.getKtModuleOfTypeSafe
|
||||
import org.jetbrains.kotlin.analysis.utils.errors.requireIsInstance
|
||||
import org.jetbrains.kotlin.analysis.utils.printer.parentOfType
|
||||
import org.jetbrains.kotlin.asJava.builder.LightMemberOriginForDeclaration
|
||||
@@ -537,7 +537,7 @@ internal fun KtSymbolWithMembers.createInnerClasses(
|
||||
}
|
||||
|
||||
val jvmDefaultMode = classOrObject
|
||||
?.getKtModuleOfTypeSafe<KtSourceModule>()
|
||||
?.let { getModule(it) as? KtSourceModule }
|
||||
?.languageVersionSettings
|
||||
?.getFlag(JvmAnalysisFlags.jvmDefaultMode)
|
||||
?: JvmDefaultMode.DEFAULT
|
||||
|
||||
Reference in New Issue
Block a user