FIR IDE: move light classes to separate module
This commit is contained in:
+17
@@ -0,0 +1,17 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.analysis.providers
|
||||||
|
|
||||||
|
import com.intellij.openapi.components.ServiceManager
|
||||||
|
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||||
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
|
|
||||||
|
public abstract class KotlinModuleInfoProvider {
|
||||||
|
public abstract fun getModuleInfo(element: KtElement): ModuleInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun KtElement.getModuleInfo(): ModuleInfo =
|
||||||
|
ServiceManager.getService(project, KotlinModuleInfoProvider::class.java).getModuleInfo(this)
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
plugins {
|
||||||
|
kotlin("jvm")
|
||||||
|
id("jps-compatible")
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation(project(":compiler:psi"))
|
||||||
|
implementation(project(":compiler:frontend.java"))
|
||||||
|
implementation(project(":core:compiler.common"))
|
||||||
|
implementation(project(":compiler:light-classes"))
|
||||||
|
implementation(project(":analysis:analysis-api-providers"))
|
||||||
|
implementation(project(":idea-frontend-api"))
|
||||||
|
implementation(intellijCoreDep()) { includeJars("intellij-core", rootProject = rootProject) }
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
"main" { projectDefault() }
|
||||||
|
"test" { none() }
|
||||||
|
}
|
||||||
+3
-3
@@ -1,9 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.JavaPsiFacade
|
import com.intellij.psi.JavaPsiFacade
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
@@ -12,7 +12,7 @@ import com.intellij.psi.scope.PsiScopeProcessor
|
|||||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||||
import org.jetbrains.kotlin.asJava.classes.getOutermostClassOrObject
|
import org.jetbrains.kotlin.asJava.classes.getOutermostClassOrObject
|
||||||
import org.jetbrains.kotlin.asJava.elements.FakeFileForLightClass
|
import org.jetbrains.kotlin.asJava.elements.FakeFileForLightClass
|
||||||
import org.jetbrains.kotlin.idea.asJava.classes.getOrCreateFirLightClass
|
import org.jetbrains.kotlin.light.classes.symbol.classes.getOrCreateFirLightClass
|
||||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||||
|
|
||||||
class FirFakeFileImpl(private val classOrObject: KtClassOrObject, ktClass: KtLightClass) : FakeFileForLightClass(
|
class FirFakeFileImpl(private val classOrObject: KtClassOrObject, ktClass: KtLightClass) : FakeFileForLightClass(
|
||||||
+8
-17
@@ -1,31 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2016 JetBrains s.r.o.
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
*
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.asJava.elements
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.openapi.util.TextRange
|
import com.intellij.openapi.util.TextRange
|
||||||
import com.intellij.psi.PsiCompiledElement
|
import com.intellij.psi.PsiCompiledElement
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.psi.PsiFile
|
import com.intellij.psi.PsiFile
|
||||||
import com.intellij.psi.PsiNameIdentifierOwner
|
|
||||||
import com.intellij.psi.impl.light.LightIdentifier
|
import com.intellij.psi.impl.light.LightIdentifier
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassOrObjectSymbol
|
import org.jetbrains.kotlin.asJava.elements.PsiElementWithOrigin
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtNamedSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtNamedSymbol
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.KtNamedDeclaration
|
||||||
|
import org.jetbrains.kotlin.psi.KtPrimaryConstructor
|
||||||
|
import org.jetbrains.kotlin.psi.KtPropertyAccessor
|
||||||
|
import org.jetbrains.kotlin.psi.KtSecondaryConstructor
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
||||||
|
|
||||||
open class FirLightIdentifier(
|
open class FirLightIdentifier(
|
||||||
+2
-5
@@ -1,9 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.psi.PsiIdentifier
|
import com.intellij.psi.PsiIdentifier
|
||||||
@@ -12,12 +12,9 @@ import com.intellij.psi.PsiMethod
|
|||||||
import com.intellij.psi.javadoc.PsiDocComment
|
import com.intellij.psi.javadoc.PsiDocComment
|
||||||
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
||||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightElementBase
|
import org.jetbrains.kotlin.asJava.elements.KtLightElementBase
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightIdentifier
|
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightMember
|
import org.jetbrains.kotlin.asJava.elements.KtLightMember
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||||
import org.jetbrains.kotlin.psi.KtNamedDeclaration
|
|
||||||
|
|
||||||
internal abstract class FirLightMemberImpl<T : PsiMember>(
|
internal abstract class FirLightMemberImpl<T : PsiMember>(
|
||||||
override val lightMemberOrigin: LightMemberOrigin?,
|
override val lightMemberOrigin: LightMemberOrigin?,
|
||||||
+3
-3
@@ -1,17 +1,17 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava.elements
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import com.intellij.psi.impl.light.LightElement
|
import com.intellij.psi.impl.light.LightElement
|
||||||
import com.intellij.psi.scope.PsiScopeProcessor
|
import com.intellij.psi.scope.PsiScopeProcessor
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.idea.KotlinLanguage
|
import org.jetbrains.kotlin.idea.KotlinLanguage
|
||||||
import org.jetbrains.kotlin.idea.asJava.basicIsEquivalentTo
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithTypeParameters
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithTypeParameters
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.elements.FirLightTypeParameter
|
||||||
|
|
||||||
|
|
||||||
internal class FirLightTypeParameterListForSymbol(
|
internal class FirLightTypeParameterListForSymbol(
|
||||||
+7
-11
@@ -1,25 +1,24 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2000-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.openapi.util.Key
|
|
||||||
import com.intellij.psi.PsiClass
|
import com.intellij.psi.PsiClass
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import com.intellij.util.SmartList
|
import org.jetbrains.kotlin.analysis.providers.createDeclarationProvider
|
||||||
import org.jetbrains.kotlin.analyzer.LibraryModuleInfo
|
import org.jetbrains.kotlin.analysis.providers.createPackageProvider
|
||||||
|
import org.jetbrains.kotlin.analysis.providers.getModuleInfo
|
||||||
import org.jetbrains.kotlin.analyzer.LibraryModuleSourceInfoBase
|
import org.jetbrains.kotlin.analyzer.LibraryModuleSourceInfoBase
|
||||||
import org.jetbrains.kotlin.analyzer.NonSourceModuleInfoBase
|
import org.jetbrains.kotlin.analyzer.NonSourceModuleInfoBase
|
||||||
import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport
|
import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport
|
||||||
import org.jetbrains.kotlin.asJava.classes.KtFakeLightClass
|
import org.jetbrains.kotlin.asJava.classes.KtFakeLightClass
|
||||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||||
import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName
|
import org.jetbrains.kotlin.fileClasses.javaFileFacadeFqName
|
||||||
import org.jetbrains.kotlin.idea.asJava.classes.getOrCreateFirLightClass
|
import org.jetbrains.kotlin.light.classes.symbol.classes.getOrCreateFirLightClass
|
||||||
import org.jetbrains.kotlin.idea.asJava.classes.getOrCreateFirLightFacade
|
import org.jetbrains.kotlin.light.classes.symbol.classes.getOrCreateFirLightFacade
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.getModuleInfo
|
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.parentOrNull
|
import org.jetbrains.kotlin.name.parentOrNull
|
||||||
@@ -27,11 +26,8 @@ import org.jetbrains.kotlin.psi.KtClassOrObject
|
|||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.psi.KtScript
|
import org.jetbrains.kotlin.psi.KtScript
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
|
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
|
||||||
import org.jetbrains.kotlin.analysis.providers.createDeclarationProvider
|
|
||||||
import org.jetbrains.kotlin.analysis.providers.createPackageProvider
|
|
||||||
|
|
||||||
class IDEKotlinAsJavaFirSupport(private val project: Project) : KotlinAsJavaSupport() {
|
class IDEKotlinAsJavaFirSupport(private val project: Project) : KotlinAsJavaSupport() {
|
||||||
|
|
||||||
override fun findClassOrObjectDeclarationsInPackage(
|
override fun findClassOrObjectDeclarationsInPackage(
|
||||||
packageFqName: FqName,
|
packageFqName: FqName,
|
||||||
searchScope: GlobalSearchScope
|
searchScope: GlobalSearchScope
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import com.intellij.psi.impl.light.LightIdentifier
|
import com.intellij.psi.impl.light.LightIdentifier
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import org.jetbrains.kotlin.asJava.classes.cannotModify
|
import org.jetbrains.kotlin.asJava.classes.cannotModify
|
||||||
+6
-3
@@ -3,11 +3,14 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.PsiAnnotation
|
||||||
|
import com.intellij.psi.PsiAnnotationMemberValue
|
||||||
|
import com.intellij.psi.PsiAnnotationParameterList
|
||||||
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.psi.impl.PsiImplUtil
|
import com.intellij.psi.impl.PsiImplUtil
|
||||||
import org.jetbrains.kotlin.asJava.classes.*
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall
|
||||||
import org.jetbrains.kotlin.psi.KtCallElement
|
import org.jetbrains.kotlin.psi.KtCallElement
|
||||||
|
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.PsiAnnotationMemberValue
|
import com.intellij.psi.PsiAnnotationMemberValue
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
+10
-6
@@ -3,15 +3,15 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.psi.PsiAnnotation
|
import com.intellij.psi.PsiAnnotation
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.annotations.NotNull
|
import org.jetbrains.annotations.NotNull
|
||||||
import org.jetbrains.annotations.Nullable
|
import org.jetbrains.annotations.Nullable
|
||||||
import org.jetbrains.kotlin.descriptors.DeprecationLevelValue
|
import org.jetbrains.kotlin.descriptors.DeprecationLevelValue
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFileSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFileSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotatedSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotatedSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSimpleConstantValue
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSimpleConstantValue
|
||||||
@@ -35,14 +35,18 @@ internal fun KtAnnotatedSymbol.getJvmNameFromAnnotation(annotationUseSiteTarget:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun isHiddenByDeprecation(symbol: KtAnnotatedSymbol, annotationUseSiteTarget: AnnotationUseSiteTarget? = null): Boolean {
|
internal fun isHiddenByDeprecation(
|
||||||
return analyzeWithSymbolAsContext(symbol) {
|
project: Project,
|
||||||
|
symbol: KtAnnotatedSymbol,
|
||||||
|
annotationUseSiteTarget: AnnotationUseSiteTarget? = null
|
||||||
|
): Boolean {
|
||||||
|
return project.analyzeWithSymbolAsContext(symbol) {
|
||||||
symbol.deprecationStatus?.level == DeprecationLevelValue.HIDDEN
|
symbol.deprecationStatus?.level == DeprecationLevelValue.HIDDEN
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun KtAnnotatedSymbol.isHiddenOrSynthetic(annotationUseSiteTarget: AnnotationUseSiteTarget? = null) =
|
internal fun KtAnnotatedSymbol.isHiddenOrSynthetic(project: Project, annotationUseSiteTarget: AnnotationUseSiteTarget? = null) =
|
||||||
isHiddenByDeprecation(this, annotationUseSiteTarget) || hasJvmSyntheticAnnotation(annotationUseSiteTarget)
|
isHiddenByDeprecation(project, this, annotationUseSiteTarget) || hasJvmSyntheticAnnotation(annotationUseSiteTarget)
|
||||||
|
|
||||||
internal fun KtAnnotatedSymbol.hasJvmFieldAnnotation(): Boolean =
|
internal fun KtAnnotatedSymbol.hasJvmFieldAnnotation(): Boolean =
|
||||||
hasAnnotation("kotlin/jvm/JvmField", null)
|
hasAnnotation("kotlin/jvm/JvmField", null)
|
||||||
+3
-3
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava.classes
|
package org.jetbrains.kotlin.light.classes.symbol.classes
|
||||||
|
|
||||||
import com.intellij.psi.PsiManager
|
import com.intellij.psi.PsiManager
|
||||||
import com.intellij.psi.PsiMethod
|
import com.intellij.psi.PsiMethod
|
||||||
@@ -11,11 +11,11 @@ import com.intellij.psi.PsiReferenceList
|
|||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||||
import org.jetbrains.kotlin.idea.asJava.FirLightClassForClassOrObjectSymbol
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.isPrivateOrPrivateToThis
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.isPrivateOrPrivateToThis
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.FirLightClassForClassOrObjectSymbol
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.analyzeWithSymbolAsContext
|
||||||
|
|
||||||
internal class FirLightAnnotationClassSymbol(
|
internal class FirLightAnnotationClassSymbol(
|
||||||
private val classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
private val classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
||||||
+2
-6
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava.classes
|
package org.jetbrains.kotlin.light.classes.symbol.classes
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import com.intellij.psi.impl.InheritanceImplUtil
|
import com.intellij.psi.impl.InheritanceImplUtil
|
||||||
@@ -15,14 +15,10 @@ import org.jetbrains.kotlin.asJava.classes.lazyPub
|
|||||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightIdentifier
|
import org.jetbrains.kotlin.asJava.elements.KtLightIdentifier
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||||
import org.jetbrains.kotlin.idea.asJava.*
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.FirLightClassForSymbol
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.FirLightField
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.hasJvmFieldAnnotation
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtAnonymousObjectSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtAnonymousObjectSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySymbol
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.*
|
||||||
import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind
|
import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind
|
||||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||||
import org.jetbrains.kotlin.psi.debugText.getDebugText
|
import org.jetbrains.kotlin.psi.debugText.getDebugText
|
||||||
+1
-1
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.navigation.ItemPresentation
|
import com.intellij.navigation.ItemPresentation
|
||||||
import com.intellij.navigation.ItemPresentationProviders
|
import com.intellij.navigation.ItemPresentationProviders
|
||||||
+5
-5
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import com.intellij.psi.impl.InheritanceImplUtil
|
import com.intellij.psi.impl.InheritanceImplUtil
|
||||||
@@ -16,18 +16,18 @@ import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
|||||||
import org.jetbrains.kotlin.asJava.classes.LightClassInheritanceHelper
|
import org.jetbrains.kotlin.asJava.classes.LightClassInheritanceHelper
|
||||||
import org.jetbrains.kotlin.asJava.classes.getOutermostClassOrObject
|
import org.jetbrains.kotlin.asJava.classes.getOutermostClassOrObject
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.asJava.elements.FirLightIdentifier
|
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||||
import org.jetbrains.kotlin.idea.asJava.classes.checkIsInheritor
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.classes.getOrCreateFirLightClass
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.elements.FirLightTypeParameterListForSymbol
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtNamedClassOrObjectSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtNamedClassOrObjectSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.classes.checkIsInheritor
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.classes.getOrCreateFirLightClass
|
||||||
import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind
|
import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind
|
||||||
import org.jetbrains.kotlin.psi.KtClassBody
|
import org.jetbrains.kotlin.psi.KtClassBody
|
||||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||||
import org.jetbrains.kotlin.psi.debugText.getDebugText
|
import org.jetbrains.kotlin.psi.debugText.getDebugText
|
||||||
import org.jetbrains.kotlin.psi.stubs.KotlinClassOrObjectStub
|
import org.jetbrains.kotlin.psi.stubs.KotlinClassOrObjectStub
|
||||||
|
import org.jetbrains.kotlin.utils.addToStdlib.ifFalse
|
||||||
|
import org.jetbrains.kotlin.utils.addToStdlib.ifTrue
|
||||||
|
|
||||||
internal abstract class FirLightClassForClassOrObjectSymbol(
|
internal abstract class FirLightClassForClassOrObjectSymbol(
|
||||||
private val classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
private val classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
||||||
+3
-6
@@ -8,14 +8,11 @@ package org.jetbrains.kotlin.asJava.classes
|
|||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import com.intellij.psi.impl.PsiClassImplUtil
|
import com.intellij.psi.impl.PsiClassImplUtil
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||||
import org.jetbrains.kotlin.idea.asJava.*
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.FirLightClassModifierList
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.FirLightPsiJavaCodeReferenceElementWithNoReference
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.classes.createConstructors
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.classes.createMethods
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtEnumEntrySymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtEnumEntrySymbol
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.*
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.classes.createConstructors
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.classes.createMethods
|
||||||
import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind
|
import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind
|
||||||
import org.jetbrains.kotlin.load.kotlin.TypeMappingMode
|
import org.jetbrains.kotlin.load.kotlin.TypeMappingMode
|
||||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||||
+4
-5
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.openapi.util.TextRange
|
import com.intellij.openapi.util.TextRange
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
@@ -18,16 +18,15 @@ import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
|||||||
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.idea.KotlinLanguage
|
import org.jetbrains.kotlin.idea.KotlinLanguage
|
||||||
import org.jetbrains.kotlin.idea.asJava.classes.analyseForLightClasses
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.classes.createField
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.classes.createMethods
|
|
||||||
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.KtFunctionSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionSymbol
|
||||||
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.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.light.classes.symbol.classes.analyseForLightClasses
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.classes.createField
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.classes.createMethods
|
||||||
import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind
|
import org.jetbrains.kotlin.load.java.structure.LightClassOriginKind
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||||
+3
-3
@@ -3,20 +3,20 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.Visibility
|
||||||
import org.jetbrains.kotlin.idea.asJava.classes.*
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithVisibility
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithVisibility
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.classes.*
|
||||||
import org.jetbrains.kotlin.load.java.JvmAbi
|
import org.jetbrains.kotlin.load.java.JvmAbi
|
||||||
|
import org.jetbrains.kotlin.utils.addToStdlib.applyIf
|
||||||
|
|
||||||
internal class FirLightClassForSymbol(
|
internal class FirLightClassForSymbol(
|
||||||
private val classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
private val classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
||||||
+3
-4
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava.classes
|
package org.jetbrains.kotlin.light.classes.symbol.classes
|
||||||
|
|
||||||
import com.intellij.psi.PsiManager
|
import com.intellij.psi.PsiManager
|
||||||
import com.intellij.psi.PsiMethod
|
import com.intellij.psi.PsiMethod
|
||||||
@@ -11,14 +11,13 @@ import com.intellij.psi.PsiReferenceList
|
|||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||||
import org.jetbrains.kotlin.idea.asJava.FirLightClassForClassOrObjectSymbol
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassKind
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassKind
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassOrObjectSymbol
|
|
||||||
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.KtNamedClassOrObjectSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtNamedClassOrObjectSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.isPrivateOrPrivateToThis
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.isPrivateOrPrivateToThis
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.FirLightClassForClassOrObjectSymbol
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.analyzeWithSymbolAsContext
|
||||||
|
|
||||||
internal class FirLightInterfaceClassSymbol(
|
internal class FirLightInterfaceClassSymbol(
|
||||||
private val classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
private val classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
||||||
+2
-3
@@ -3,16 +3,15 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava.classes
|
package org.jetbrains.kotlin.light.classes.symbol.classes
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.idea.asJava.*
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassKind
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassKind
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassOrObjectSymbol
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtNamedClassOrObjectSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtNamedClassOrObjectSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.*
|
||||||
|
|
||||||
internal abstract class FirLightInterfaceOrAnnotationClassSymbol(
|
internal abstract class FirLightInterfaceOrAnnotationClassSymbol(
|
||||||
private val classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
private val classOrObjectSymbol: KtNamedClassOrObjectSymbol,
|
||||||
+2
-2
@@ -3,14 +3,14 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.PsiClass
|
import com.intellij.psi.PsiClass
|
||||||
import org.jetbrains.kotlin.asJava.classes.KtFakeLightClass
|
import org.jetbrains.kotlin.asJava.classes.KtFakeLightClass
|
||||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||||
import org.jetbrains.kotlin.asJava.classes.LightClassInheritanceHelper
|
import org.jetbrains.kotlin.asJava.classes.LightClassInheritanceHelper
|
||||||
import org.jetbrains.kotlin.idea.asJava.classes.checkIsInheritor
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.HackToForceAllowRunningAnalyzeOnEDT
|
import org.jetbrains.kotlin.idea.frontend.api.tokens.HackToForceAllowRunningAnalyzeOnEDT
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.classes.checkIsInheritor
|
||||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
|
||||||
|
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava.classes
|
package org.jetbrains.kotlin.light.classes.symbol.classes
|
||||||
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.analyseWithCustomToken
|
import org.jetbrains.kotlin.idea.frontend.api.analyseWithCustomToken
|
||||||
+18
-14
@@ -3,29 +3,33 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava.classes
|
package org.jetbrains.kotlin.light.classes.symbol.classes
|
||||||
|
|
||||||
import com.intellij.psi.PsiManager
|
import com.intellij.psi.PsiManager
|
||||||
import com.intellij.psi.PsiReferenceList
|
import com.intellij.psi.PsiReferenceList
|
||||||
import com.intellij.psi.util.CachedValueProvider
|
import com.intellij.psi.util.CachedValueProvider
|
||||||
import com.intellij.psi.util.CachedValuesManager
|
import com.intellij.psi.util.CachedValuesManager
|
||||||
import org.jetbrains.kotlin.analysis.providers.createProjectWideOutOfBlockModificationTracker
|
import org.jetbrains.kotlin.analysis.providers.createProjectWideOutOfBlockModificationTracker
|
||||||
import org.jetbrains.kotlin.asJava.classes.*
|
import org.jetbrains.kotlin.asJava.classes.KotlinSuperTypeListBuilder
|
||||||
|
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||||
|
import org.jetbrains.kotlin.asJava.classes.METHOD_INDEX_BASE
|
||||||
|
import org.jetbrains.kotlin.asJava.classes.shouldNotBeVisibleAsLightClass
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||||
import org.jetbrains.kotlin.name.StandardClassIds
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.*
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.HackToForceAllowRunningAnalyzeOnEDT
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.hackyAllowRunningOnEdt
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.*
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithMembers
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypeAndAnnotations
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.isPrivateOrPrivateToThis
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.tokens.HackToForceAllowRunningAnalyzeOnEDT
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.tokens.hackyAllowRunningOnEdt
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.types.KtNonErrorClassType
|
import org.jetbrains.kotlin.idea.frontend.api.types.KtNonErrorClassType
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.*
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
import org.jetbrains.kotlin.name.StandardClassIds
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.containingClass
|
import org.jetbrains.kotlin.psi.psiUtil.containingClass
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -125,7 +129,7 @@ internal fun FirLightClassBase.createConstructors(
|
|||||||
result: MutableList<KtLightMethod>
|
result: MutableList<KtLightMethod>
|
||||||
) {
|
) {
|
||||||
for (declaration in declarations) {
|
for (declaration in declarations) {
|
||||||
if (declaration.isHiddenOrSynthetic()) continue
|
if (declaration.isHiddenOrSynthetic(project)) continue
|
||||||
result.add(
|
result.add(
|
||||||
FirLightConstructorForSymbol(
|
FirLightConstructorForSymbol(
|
||||||
constructorSymbol = declaration,
|
constructorSymbol = declaration,
|
||||||
@@ -148,7 +152,7 @@ internal fun FirLightClassBase.createMethods(
|
|||||||
fun handleDeclaration(declaration: KtCallableSymbol) {
|
fun handleDeclaration(declaration: KtCallableSymbol) {
|
||||||
when (declaration) {
|
when (declaration) {
|
||||||
is KtFunctionSymbol -> {
|
is KtFunctionSymbol -> {
|
||||||
if (declaration.isInline || declaration.isHiddenOrSynthetic()) return
|
if (declaration.isInline || declaration.isHiddenOrSynthetic(project)) return
|
||||||
|
|
||||||
var methodIndex = METHOD_INDEX_BASE
|
var methodIndex = METHOD_INDEX_BASE
|
||||||
result.add(
|
result.add(
|
||||||
@@ -198,8 +202,8 @@ internal fun FirLightClassBase.createMethods(
|
|||||||
fun KtPropertyAccessorSymbol.needToCreateAccessor(siteTarget: AnnotationUseSiteTarget): Boolean {
|
fun KtPropertyAccessorSymbol.needToCreateAccessor(siteTarget: AnnotationUseSiteTarget): Boolean {
|
||||||
if (isInline) return false
|
if (isInline) return false
|
||||||
if (!hasBody && visibility.isPrivateOrPrivateToThis()) return false
|
if (!hasBody && visibility.isPrivateOrPrivateToThis()) return false
|
||||||
if (declaration.isHiddenOrSynthetic(siteTarget)) return false
|
if (declaration.isHiddenOrSynthetic(project, siteTarget)) return false
|
||||||
if (isHiddenOrSynthetic()) return false
|
if (isHiddenOrSynthetic(project)) return false
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -262,7 +266,7 @@ internal fun FirLightClassBase.createField(
|
|||||||
is KtSyntheticJavaPropertySymbol -> true
|
is KtSyntheticJavaPropertySymbol -> true
|
||||||
is KtKotlinPropertySymbol -> when {
|
is KtKotlinPropertySymbol -> when {
|
||||||
property.modality == Modality.ABSTRACT -> false
|
property.modality == Modality.ABSTRACT -> false
|
||||||
property.isHiddenOrSynthetic() -> false
|
property.isHiddenOrSynthetic(project) -> false
|
||||||
property.isLateInit -> true
|
property.isLateInit -> true
|
||||||
//TODO Fix it when KtFirConstructorValueParameterSymbol be ready
|
//TODO Fix it when KtFirConstructorValueParameterSymbol be ready
|
||||||
property.psi.let { it == null || it is KtParameter } -> true
|
property.psi.let { it == null || it is KtParameter } -> true
|
||||||
@@ -334,7 +338,7 @@ internal fun KtSymbolWithMembers.createInnerClasses(manager: PsiManager): List<F
|
|||||||
// inner classes with null names can't be searched for and can't be used from java anyway
|
// inner classes with null names can't be searched for and can't be used from java anyway
|
||||||
// we can't prohibit creating light classes with null names either since they can contain members
|
// we can't prohibit creating light classes with null names either since they can contain members
|
||||||
|
|
||||||
analyzeWithSymbolAsContext(this) {
|
manager.project.analyzeWithSymbolAsContext(this) {
|
||||||
getDeclaredMemberScope().getClassifierSymbols().filterIsInstance<KtNamedClassOrObjectSymbol>().mapTo(result) {
|
getDeclaredMemberScope().getClassifierSymbols().filterIsInstance<KtNamedClassOrObjectSymbol>().mapTo(result) {
|
||||||
it.createLightClassNoCache(manager)
|
it.createLightClassNoCache(manager)
|
||||||
}
|
}
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import com.intellij.psi.scope.PsiScopeProcessor
|
import com.intellij.psi.scope.PsiScopeProcessor
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.openapi.util.TextRange
|
import com.intellij.openapi.util.TextRange
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
+3
-2
@@ -3,9 +3,10 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.PsiElement
|
||||||
|
import com.intellij.psi.PsiReference
|
||||||
|
|
||||||
internal class FirLightPsiJavaCodeReferenceElementWithReference(private val ktElement: PsiElement, reference: PsiReference):
|
internal class FirLightPsiJavaCodeReferenceElementWithReference(private val ktElement: PsiElement, reference: PsiReference):
|
||||||
FirLightPsiJavaCodeReferenceElementBase(ktElement),
|
FirLightPsiJavaCodeReferenceElementBase(ktElement),
|
||||||
+1
-2
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.lang.Language
|
import com.intellij.lang.Language
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
@@ -17,7 +17,6 @@ import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
|||||||
import org.jetbrains.kotlin.asJava.classes.cannotModify
|
import org.jetbrains.kotlin.asJava.classes.cannotModify
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||||
import org.jetbrains.kotlin.idea.KotlinLanguage
|
import org.jetbrains.kotlin.idea.KotlinLanguage
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
|
||||||
import org.jetbrains.kotlin.psi.KtNamedDeclaration
|
import org.jetbrains.kotlin.psi.KtNamedDeclaration
|
||||||
import javax.swing.Icon
|
import javax.swing.Icon
|
||||||
|
|
||||||
+5
-6
@@ -3,18 +3,17 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
||||||
import org.jetbrains.kotlin.asJava.classes.*
|
import org.jetbrains.kotlin.asJava.classes.FirLightClassForEnumEntry
|
||||||
import org.jetbrains.kotlin.asJava.elements.FirLightIdentifier
|
import org.jetbrains.kotlin.asJava.classes.cannotModify
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.idea.asJava.*
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtEnumEntrySymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtEnumEntrySymbol
|
||||||
import org.jetbrains.kotlin.psi.KtEnumEntry
|
import org.jetbrains.kotlin.psi.KtEnumEntry
|
||||||
|
import org.jetbrains.kotlin.utils.addToStdlib.ifTrue
|
||||||
|
|
||||||
internal class FirLightFieldForEnumEntry(
|
internal class FirLightFieldForEnumEntry(
|
||||||
private val enumEntrySymbol: KtEnumEntrySymbol,
|
private val enumEntrySymbol: KtEnumEntrySymbol,
|
||||||
+1
-4
@@ -3,17 +3,14 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
||||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.asJava.elements.FirLightIdentifier
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtNamedClassOrObjectSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtNamedClassOrObjectSymbol
|
||||||
import org.jetbrains.kotlin.load.kotlin.TypeMappingMode
|
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||||
|
|
||||||
internal class FirLightFieldForObjectSymbol(
|
internal class FirLightFieldForObjectSymbol(
|
||||||
+1
-3
@@ -3,14 +3,12 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.asJava.elements.FirLightIdentifier
|
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
||||||
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.KtPropertySymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySymbol
|
||||||
+1
-3
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import com.intellij.util.IncorrectOperationException
|
import com.intellij.util.IncorrectOperationException
|
||||||
@@ -200,7 +200,5 @@ internal fun KtSimpleConstantValue<*>.createPsiLiteral(parent: PsiElement): PsiE
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal inline fun <T> T.applyIf(`if`: Boolean, body: T.() -> T): T =
|
|
||||||
if (`if`) body() else this
|
|
||||||
|
|
||||||
internal fun BitSet.copy(): BitSet = clone() as BitSet
|
internal fun BitSet.copy(): BitSet = clone() as BitSet
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
|
import com.intellij.openapi.project.Project
|
||||||
|
import com.intellij.psi.PsiElement
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.InvalidWayOfUsingAnalysisSession
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSessionProvider
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.tokens.HackToForceAllowRunningAnalyzeOnEDT
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.tokens.hackyAllowRunningOnEdt
|
||||||
|
|
||||||
|
@OptIn(HackToForceAllowRunningAnalyzeOnEDT::class)
|
||||||
|
internal inline fun <E> allowLightClassesOnEdt(action: () -> E): E = hackyAllowRunningOnEdt(action)
|
||||||
|
|
||||||
|
@OptIn(InvalidWayOfUsingAnalysisSession::class)
|
||||||
|
internal inline fun <R> PsiElement.analyzeWithSymbolAsContext(
|
||||||
|
contextSymbol: KtSymbol,
|
||||||
|
action: KtAnalysisSession.() -> R
|
||||||
|
): R {
|
||||||
|
return project.analyzeWithSymbolAsContext(contextSymbol, action)
|
||||||
|
}
|
||||||
|
|
||||||
|
@OptIn(InvalidWayOfUsingAnalysisSession::class)
|
||||||
|
internal inline fun <R> Project.analyzeWithSymbolAsContext(
|
||||||
|
contextSymbol: KtSymbol,
|
||||||
|
action: KtAnalysisSession.() -> R
|
||||||
|
): R {
|
||||||
|
return KtAnalysisSessionProvider.getInstance(this).analyzeWithSymbolAsContext(contextSymbol, action)
|
||||||
|
}
|
||||||
+7
-5
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import com.intellij.psi.impl.light.LightParameterListBuilder
|
import com.intellij.psi.impl.light.LightParameterListBuilder
|
||||||
@@ -11,16 +11,18 @@ import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
|||||||
import org.jetbrains.kotlin.asJava.classes.METHOD_INDEX_FOR_GETTER
|
import org.jetbrains.kotlin.asJava.classes.METHOD_INDEX_FOR_GETTER
|
||||||
import org.jetbrains.kotlin.asJava.classes.METHOD_INDEX_FOR_SETTER
|
import org.jetbrains.kotlin.asJava.classes.METHOD_INDEX_FOR_SETTER
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.asJava.elements.FirLightIdentifier
|
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||||
import org.jetbrains.kotlin.idea.asJava.parameters.FirLightSetterParameterForSymbol
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertyAccessorSymbol
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertyGetterSymbol
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySetterSymbol
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySymbol
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.parameters.FirLightSetterParameterForSymbol
|
||||||
import org.jetbrains.kotlin.load.java.JvmAbi.getterName
|
import org.jetbrains.kotlin.load.java.JvmAbi.getterName
|
||||||
import org.jetbrains.kotlin.load.java.JvmAbi.setterName
|
import org.jetbrains.kotlin.load.java.JvmAbi.setterName
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||||
import org.jetbrains.kotlin.psi.KtParameter
|
import org.jetbrains.kotlin.psi.KtParameter
|
||||||
|
import org.jetbrains.kotlin.utils.addToStdlib.ifTrue
|
||||||
|
|
||||||
internal class FirLightAccessorMethodForSymbol(
|
internal class FirLightAccessorMethodForSymbol(
|
||||||
private val propertyAccessorSymbol: KtPropertyAccessorSymbol,
|
private val propertyAccessorSymbol: KtPropertyAccessorSymbol,
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
||||||
+2
-3
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import com.intellij.psi.impl.PsiImplUtil
|
import com.intellij.psi.impl.PsiImplUtil
|
||||||
@@ -15,13 +15,12 @@ import org.jetbrains.kotlin.asJava.classes.KotlinLightReferenceListBuilder
|
|||||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||||
import org.jetbrains.kotlin.asJava.classes.cannotModify
|
import org.jetbrains.kotlin.asJava.classes.cannotModify
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||||
import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper
|
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
|
||||||
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.markers.KtAnnotatedSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotatedSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithVisibility
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithVisibility
|
||||||
|
import org.jetbrains.kotlin.utils.addToStdlib.ifTrue
|
||||||
|
|
||||||
internal abstract class FirLightMethod(
|
internal abstract class FirLightMethod(
|
||||||
lightMemberOrigin: LightMemberOrigin?,
|
lightMemberOrigin: LightMemberOrigin?,
|
||||||
+5
-5
@@ -3,17 +3,17 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.PsiIdentifier
|
||||||
|
import com.intellij.psi.PsiParameterList
|
||||||
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.asJava.elements.FirLightIdentifier
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.parameters.FirLightParameterList
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionLikeSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionLikeSymbol
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.parameters.FirLightParameterList
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||||
import java.util.BitSet
|
import java.util.*
|
||||||
|
|
||||||
internal abstract class FirLightMethodForSymbol(
|
internal abstract class FirLightMethodForSymbol(
|
||||||
private val functionSymbol: KtFunctionLikeSymbol,
|
private val functionSymbol: KtFunctionLikeSymbol,
|
||||||
+2
-3
@@ -3,16 +3,15 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.idea.asJava.elements.FirLightTypeParameterListForSymbol
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionSymbol
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
|
import org.jetbrains.kotlin.utils.addToStdlib.ifTrue
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
internal class FirLightSimpleMethodForSymbol(
|
internal class FirLightSimpleMethodForSymbol(
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.PsiAnnotation
|
import com.intellij.psi.PsiAnnotation
|
||||||
import com.intellij.psi.PsiModifierListOwner
|
import com.intellij.psi.PsiModifierListOwner
|
||||||
+3
-2
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.PsiAnnotation
|
import com.intellij.psi.PsiAnnotation
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
@@ -11,7 +11,8 @@ import com.intellij.psi.PsiModifierList
|
|||||||
import com.intellij.psi.PsiModifierListOwner
|
import com.intellij.psi.PsiModifierListOwner
|
||||||
import com.intellij.util.IncorrectOperationException
|
import com.intellij.util.IncorrectOperationException
|
||||||
import org.jetbrains.kotlin.asJava.classes.cannotModify
|
import org.jetbrains.kotlin.asJava.classes.cannotModify
|
||||||
import org.jetbrains.kotlin.asJava.elements.*
|
import org.jetbrains.kotlin.asJava.elements.KtLightElement
|
||||||
|
import org.jetbrains.kotlin.asJava.elements.KtLightElementBase
|
||||||
import org.jetbrains.kotlin.psi.KtModifierList
|
import org.jetbrains.kotlin.psi.KtModifierList
|
||||||
import org.jetbrains.kotlin.psi.KtModifierListOwner
|
import org.jetbrains.kotlin.psi.KtModifierListOwner
|
||||||
|
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.navigation.NavigationItem
|
import com.intellij.navigation.NavigationItem
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
+2
-4
@@ -3,13 +3,11 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.*
|
import com.intellij.psi.*
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.asJava.elements.FirLightIdentifier
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtValueParameterSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
|
||||||
import org.jetbrains.kotlin.psi.KtParameter
|
import org.jetbrains.kotlin.psi.KtParameter
|
||||||
|
|
||||||
internal abstract class FirLightParameterBaseForSymbol(
|
internal abstract class FirLightParameterBaseForSymbol(
|
||||||
+2
-4
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.PsiAnnotation
|
import com.intellij.psi.PsiAnnotation
|
||||||
import com.intellij.psi.PsiIdentifier
|
import com.intellij.psi.PsiIdentifier
|
||||||
@@ -11,13 +11,11 @@ import com.intellij.psi.PsiModifierList
|
|||||||
import com.intellij.psi.PsiType
|
import com.intellij.psi.PsiType
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.codegen.AsmUtil
|
import org.jetbrains.kotlin.codegen.AsmUtil
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
||||||
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.KtSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypeAndAnnotations
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtNamedSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtNamedSymbol
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypeAndAnnotations
|
||||||
import org.jetbrains.kotlin.psi.KtParameter
|
import org.jetbrains.kotlin.psi.KtParameter
|
||||||
|
|
||||||
internal class FirLightParameterForReceiver private constructor(
|
internal class FirLightParameterForReceiver private constructor(
|
||||||
+2
-1
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
package org.jetbrains.kotlin.light.classes.symbol
|
||||||
|
|
||||||
import com.intellij.psi.PsiAnnotation
|
import com.intellij.psi.PsiAnnotation
|
||||||
import com.intellij.psi.PsiModifierList
|
import com.intellij.psi.PsiModifierList
|
||||||
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.asJava.classes.lazyPub
|
|||||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtValueParameterSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtValueParameterSymbol
|
||||||
|
import org.jetbrains.kotlin.utils.addToStdlib.ifTrue
|
||||||
|
|
||||||
internal class FirLightParameterForSymbol(
|
internal class FirLightParameterForSymbol(
|
||||||
private val parameterSymbol: KtValueParameterSymbol,
|
private val parameterSymbol: KtValueParameterSymbol,
|
||||||
+5
-5
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava.parameters
|
package org.jetbrains.kotlin.light.classes.symbol.parameters
|
||||||
|
|
||||||
import com.intellij.psi.PsiParameter
|
import com.intellij.psi.PsiParameter
|
||||||
import com.intellij.psi.PsiParameterList
|
import com.intellij.psi.PsiParameterList
|
||||||
@@ -11,13 +11,13 @@ import com.intellij.psi.impl.light.LightParameterListBuilder
|
|||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightElement
|
import org.jetbrains.kotlin.asJava.elements.KtLightElement
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightElementBase
|
import org.jetbrains.kotlin.asJava.elements.KtLightElementBase
|
||||||
import org.jetbrains.kotlin.idea.asJava.FirLightMethod
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.FirLightParameterForReceiver
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.FirLightParameterForSymbol
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionLikeSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionLikeSymbol
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.FirLightMethod
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.FirLightParameterForReceiver
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.FirLightParameterForSymbol
|
||||||
import org.jetbrains.kotlin.psi.KtFunction
|
import org.jetbrains.kotlin.psi.KtFunction
|
||||||
import org.jetbrains.kotlin.psi.KtParameterList
|
import org.jetbrains.kotlin.psi.KtParameterList
|
||||||
import java.util.BitSet
|
import java.util.*
|
||||||
|
|
||||||
internal class FirLightParameterList(
|
internal class FirLightParameterList(
|
||||||
private val parent: FirLightMethod,
|
private val parent: FirLightMethod,
|
||||||
+3
-3
@@ -3,16 +3,16 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava.parameters
|
package org.jetbrains.kotlin.light.classes.symbol.parameters
|
||||||
|
|
||||||
import com.intellij.psi.PsiAnnotation
|
import com.intellij.psi.PsiAnnotation
|
||||||
import com.intellij.psi.PsiModifierList
|
import com.intellij.psi.PsiModifierList
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||||
import org.jetbrains.kotlin.idea.asJava.*
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtValueParameterSymbol
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySymbol
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtValueParameterSymbol
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.*
|
||||||
|
|
||||||
internal class FirLightSetterParameterForSymbol(
|
internal class FirLightSetterParameterForSymbol(
|
||||||
private val containingPropertySymbol: KtPropertySymbol,
|
private val containingPropertySymbol: KtPropertySymbol,
|
||||||
+7
-6
@@ -3,7 +3,7 @@
|
|||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava.elements
|
package org.jetbrains.kotlin.light.classes.symbol.elements
|
||||||
|
|
||||||
import com.intellij.lang.Language
|
import com.intellij.lang.Language
|
||||||
import com.intellij.openapi.util.Pair
|
import com.intellij.openapi.util.Pair
|
||||||
@@ -19,14 +19,15 @@ import org.jetbrains.kotlin.asJava.classes.lazyPub
|
|||||||
import org.jetbrains.kotlin.asJava.elements.KtLightAbstractAnnotation
|
import org.jetbrains.kotlin.asJava.elements.KtLightAbstractAnnotation
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightDeclaration
|
import org.jetbrains.kotlin.asJava.elements.KtLightDeclaration
|
||||||
import org.jetbrains.kotlin.idea.KotlinLanguage
|
import org.jetbrains.kotlin.idea.KotlinLanguage
|
||||||
import org.jetbrains.kotlin.idea.asJava.basicIsEquivalentTo
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.invalidAccess
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.mapSuperType
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.analyzeWithSymbolAsContext
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
import org.jetbrains.kotlin.idea.frontend.api.isValid
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtTypeParameterSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtTypeParameterSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.types.KtNonErrorClassType
|
import org.jetbrains.kotlin.idea.frontend.api.types.KtNonErrorClassType
|
||||||
import org.jetbrains.kotlin.load.kotlin.TypeMappingMode
|
import org.jetbrains.kotlin.light.classes.symbol.*
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.FirLightTypeParameterListForSymbol
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.analyzeWithSymbolAsContext
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.basicIsEquivalentTo
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.invalidAccess
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.mapSuperType
|
||||||
import org.jetbrains.kotlin.name.StandardClassIds
|
import org.jetbrains.kotlin.name.StandardClassIds
|
||||||
import org.jetbrains.kotlin.psi.KtTypeParameter
|
import org.jetbrains.kotlin.psi.KtTypeParameter
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.startOffset
|
import org.jetbrains.kotlin.psi.psiUtil.startOffset
|
||||||
@@ -299,6 +299,7 @@ extra["compilerArtifactsForIde"] = listOf(
|
|||||||
":prepare:ide-plugin-dependencies:high-level-api-fir-for-ide",
|
":prepare:ide-plugin-dependencies:high-level-api-fir-for-ide",
|
||||||
":prepare:ide-plugin-dependencies:high-level-api-fir-tests-for-ide",
|
":prepare:ide-plugin-dependencies:high-level-api-fir-tests-for-ide",
|
||||||
":prepare:ide-plugin-dependencies:analysis-api-providers-for-ide",
|
":prepare:ide-plugin-dependencies:analysis-api-providers-for-ide",
|
||||||
|
":prepare:ide-plugin-dependencies:symbol-light-classes-for-ide",
|
||||||
":kotlin-script-runtime",
|
":kotlin-script-runtime",
|
||||||
":kotlin-script-util",
|
":kotlin-script-util",
|
||||||
":kotlin-scripting-common",
|
":kotlin-scripting-common",
|
||||||
|
|||||||
@@ -184,3 +184,13 @@ inline fun <K, V, VA : V> MutableMap<K, V>.getOrPut(key: K, defaultValue: (K) ->
|
|||||||
value
|
value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline fun <T> T.applyIf(`if`: Boolean, body: T.() -> T): T =
|
||||||
|
if (`if`) body() else this
|
||||||
|
|
||||||
|
|
||||||
|
inline fun <T> Boolean.ifTrue(body: () -> T?): T? =
|
||||||
|
if (this) body() else null
|
||||||
|
|
||||||
|
inline fun <T> Boolean.ifFalse(body: () -> T?): T? =
|
||||||
|
if (!this) body() else null
|
||||||
|
|||||||
+13
@@ -13,6 +13,7 @@ import com.intellij.openapi.progress.Task
|
|||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.openapi.util.Computable
|
import com.intellij.openapi.util.Computable
|
||||||
import org.jetbrains.annotations.TestOnly
|
import org.jetbrains.annotations.TestOnly
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.AlwaysAccessibleValidityTokenFactory
|
import org.jetbrains.kotlin.idea.frontend.api.tokens.AlwaysAccessibleValidityTokenFactory
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.ReadActionConfinementValidityTokenFactory
|
import org.jetbrains.kotlin.idea.frontend.api.tokens.ReadActionConfinementValidityTokenFactory
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityTokenFactory
|
import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityTokenFactory
|
||||||
@@ -38,6 +39,18 @@ public abstract class KtAnalysisSessionProvider : Disposable {
|
|||||||
@InvalidWayOfUsingAnalysisSession
|
@InvalidWayOfUsingAnalysisSession
|
||||||
public abstract fun getAnalysisSession(contextElement: KtElement, factory: ValidityTokenFactory): KtAnalysisSession
|
public abstract fun getAnalysisSession(contextElement: KtElement, factory: ValidityTokenFactory): KtAnalysisSession
|
||||||
|
|
||||||
|
@InvalidWayOfUsingAnalysisSession
|
||||||
|
public abstract fun getAnalysisSessionBySymbol(contextSymbol: KtSymbol): KtAnalysisSession
|
||||||
|
|
||||||
|
@InvalidWayOfUsingAnalysisSession
|
||||||
|
public inline fun <R> analyzeWithSymbolAsContext(
|
||||||
|
contextSymbol: KtSymbol,
|
||||||
|
action: KtAnalysisSession.() -> R
|
||||||
|
): R {
|
||||||
|
val analysisSession = getAnalysisSessionBySymbol(contextSymbol)
|
||||||
|
return action(analysisSession)
|
||||||
|
}
|
||||||
|
|
||||||
@InvalidWayOfUsingAnalysisSession
|
@InvalidWayOfUsingAnalysisSession
|
||||||
public inline fun <R> analyseInDependedAnalysisSession(
|
public inline fun <R> analyseInDependedAnalysisSession(
|
||||||
originalFile: KtFile,
|
originalFile: KtFile,
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ dependencies {
|
|||||||
testCompile(project(":kotlin-test:kotlin-test-junit"))
|
testCompile(project(":kotlin-test:kotlin-test-junit"))
|
||||||
testCompile(toolsJar())
|
testCompile(toolsJar())
|
||||||
testApiJUnit5()
|
testApiJUnit5()
|
||||||
|
testRuntime(project(":analysis:symbol-light-classes"))
|
||||||
|
|
||||||
testRuntimeOnly(intellijDep()) {
|
testRuntimeOnly(intellijDep()) {
|
||||||
includeJars(
|
includeJars(
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ dependencies {
|
|||||||
testCompile(project(":kotlin-test:kotlin-test-junit"))
|
testCompile(project(":kotlin-test:kotlin-test-junit"))
|
||||||
testApiJUnit5()
|
testApiJUnit5()
|
||||||
testCompile(project(":kotlin-reflect"))
|
testCompile(project(":kotlin-reflect"))
|
||||||
|
testImplementation(project(":analysis:symbol-light-classes"))
|
||||||
|
|
||||||
testRuntimeOnly(intellijDep()) {
|
testRuntimeOnly(intellijDep()) {
|
||||||
includeJars(
|
includeJars(
|
||||||
|
|||||||
+1
-1
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.idea.fir.low.level.api
|
package org.jetbrains.kotlin.idea.fir.low.level.api
|
||||||
|
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
|
import org.jetbrains.kotlin.analysis.providers.getModuleInfo
|
||||||
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||||
import org.jetbrains.kotlin.analyzer.ModuleSourceInfoBase
|
import org.jetbrains.kotlin.analyzer.ModuleSourceInfoBase
|
||||||
import org.jetbrains.kotlin.fir.FirElement
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
@@ -21,7 +22,6 @@ import org.jetbrains.kotlin.fir.resolve.symbolProvider
|
|||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.annotations.InternalForInline
|
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.DiagnosticCheckerFilter
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
|
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.getModuleInfo
|
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.diagnostics.DiagnosticsCollector
|
import org.jetbrains.kotlin.idea.fir.low.level.api.diagnostics.DiagnosticsCollector
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.element.builder.FirElementBuilder
|
import org.jetbrains.kotlin.idea.fir.low.level.api.element.builder.FirElementBuilder
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.element.builder.getNonLocalContainingOrThisDeclaration
|
import org.jetbrains.kotlin.idea.fir.low.level.api.element.builder.getNonLocalContainingOrThisDeclaration
|
||||||
|
|||||||
+1
-5
@@ -29,13 +29,9 @@ abstract class FirModuleResolveStateConfigurator {
|
|||||||
abstract fun getModuleSourceScope(moduleInfo: ModuleSourceInfoBase): GlobalSearchScope
|
abstract fun getModuleSourceScope(moduleInfo: ModuleSourceInfoBase): GlobalSearchScope
|
||||||
abstract fun createScopeForModuleLibraries(moduleInfo: ModuleSourceInfoBase): GlobalSearchScope
|
abstract fun createScopeForModuleLibraries(moduleInfo: ModuleSourceInfoBase): GlobalSearchScope
|
||||||
abstract fun createSealedInheritorsProvider(): SealedClassInheritorsProvider
|
abstract fun createSealedInheritorsProvider(): SealedClassInheritorsProvider
|
||||||
abstract fun getModuleInfoFor(element: KtElement): ModuleInfo
|
|
||||||
|
|
||||||
abstract fun configureSourceSession(session: FirSession)
|
abstract fun configureSourceSession(session: FirSession)
|
||||||
}
|
}
|
||||||
|
|
||||||
val Project.stateConfigurator: FirModuleResolveStateConfigurator
|
val Project.stateConfigurator: FirModuleResolveStateConfigurator
|
||||||
get() = ServiceManager.getService(this, FirModuleResolveStateConfigurator::class.java)
|
get() = ServiceManager.getService(this, FirModuleResolveStateConfigurator::class.java)
|
||||||
|
|
||||||
fun KtElement.getModuleInfo(): ModuleInfo =
|
|
||||||
project.stateConfigurator.getModuleInfoFor(this)
|
|
||||||
+1
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.idea.fir.low.level.api.api
|
package org.jetbrains.kotlin.idea.fir.low.level.api.api
|
||||||
|
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
|
import org.jetbrains.kotlin.analysis.providers.getModuleInfo
|
||||||
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
import org.jetbrains.kotlin.analyzer.ModuleInfo
|
||||||
import org.jetbrains.kotlin.fir.FirElement
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirPsiDiagnostic
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirPsiDiagnostic
|
||||||
|
|||||||
+1
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.idea.fir.low.level.api.api
|
package org.jetbrains.kotlin.idea.fir.low.level.api.api
|
||||||
|
|
||||||
import com.intellij.psi.util.PsiTreeUtil
|
import com.intellij.psi.util.PsiTreeUtil
|
||||||
|
import org.jetbrains.kotlin.analysis.providers.getModuleInfo
|
||||||
import org.jetbrains.kotlin.fir.FirElement
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||||
|
|||||||
+14
-8
@@ -14,6 +14,7 @@ import com.intellij.psi.search.GlobalSearchScope
|
|||||||
import com.intellij.psi.search.ProjectScope
|
import com.intellij.psi.search.ProjectScope
|
||||||
import org.jetbrains.kotlin.analysis.providers.KotlinDeclarationProviderFactory
|
import org.jetbrains.kotlin.analysis.providers.KotlinDeclarationProviderFactory
|
||||||
import org.jetbrains.kotlin.analysis.providers.KotlinModificationTrackerFactory
|
import org.jetbrains.kotlin.analysis.providers.KotlinModificationTrackerFactory
|
||||||
|
import org.jetbrains.kotlin.analysis.providers.KotlinModuleInfoProvider
|
||||||
import org.jetbrains.kotlin.analysis.providers.KotlinPackageProviderFactory
|
import org.jetbrains.kotlin.analysis.providers.KotlinPackageProviderFactory
|
||||||
import org.jetbrains.kotlin.analysis.providers.impl.KotlinStaticDeclarationProviderFactory
|
import org.jetbrains.kotlin.analysis.providers.impl.KotlinStaticDeclarationProviderFactory
|
||||||
import org.jetbrains.kotlin.analysis.providers.impl.KotlinStaticModificationTrackerFactory
|
import org.jetbrains.kotlin.analysis.providers.impl.KotlinStaticModificationTrackerFactory
|
||||||
@@ -32,7 +33,6 @@ import org.jetbrains.kotlin.fir.FirSession
|
|||||||
import org.jetbrains.kotlin.fir.declarations.SealedClassInheritorsProvider
|
import org.jetbrains.kotlin.fir.declarations.SealedClassInheritorsProvider
|
||||||
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
import org.jetbrains.kotlin.fir.deserialization.ModuleDataProvider
|
||||||
import org.jetbrains.kotlin.fir.session.FirModuleInfoBasedModuleData
|
import org.jetbrains.kotlin.fir.session.FirModuleInfoBasedModuleData
|
||||||
import org.jetbrains.kotlin.idea.asJava.IDEKotlinAsJavaFirSupport
|
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.*
|
import org.jetbrains.kotlin.idea.fir.low.level.api.*
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.*
|
import org.jetbrains.kotlin.idea.fir.low.level.api.api.*
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.SealedClassInheritorsProviderTestImpl
|
import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.SealedClassInheritorsProviderTestImpl
|
||||||
@@ -40,6 +40,7 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.transformers.FirLazyTransform
|
|||||||
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.fir.KtFirAnalysisSessionProvider
|
import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSessionProvider
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.IDEKotlinAsJavaFirSupport
|
||||||
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||||
@@ -190,7 +191,7 @@ class ModuleRegistrarPreAnalysisHandler(
|
|||||||
testServices,
|
testServices,
|
||||||
parentDisposable
|
parentDisposable
|
||||||
)
|
)
|
||||||
(project as MockProject).registerTestServices(configurator, allKtFiles)
|
(project as MockProject).registerTestServices(configurator, allKtFiles, testServices)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -233,7 +234,6 @@ class FirModuleResolveStateConfiguratorForSingleModuleTestImpl(
|
|||||||
testServices: TestServices,
|
testServices: TestServices,
|
||||||
private val parentDisposable: Disposable,
|
private val parentDisposable: Disposable,
|
||||||
) : FirModuleResolveStateConfigurator() {
|
) : FirModuleResolveStateConfigurator() {
|
||||||
private val moduleInfoProvider = testServices.moduleInfoProvider
|
|
||||||
private val compilerConfigurationProvider = testServices.compilerConfigurationProvider
|
private val compilerConfigurationProvider = testServices.compilerConfigurationProvider
|
||||||
private val librariesScope = ProjectScope.getLibrariesScope(project)//todo incorrect?
|
private val librariesScope = ProjectScope.getLibrariesScope(project)//todo incorrect?
|
||||||
private val sealedClassInheritorsProvider = SealedClassInheritorsProviderTestImpl()
|
private val sealedClassInheritorsProvider = SealedClassInheritorsProviderTestImpl()
|
||||||
@@ -282,11 +282,6 @@ class FirModuleResolveStateConfiguratorForSingleModuleTestImpl(
|
|||||||
return sealedClassInheritorsProvider
|
return sealedClassInheritorsProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getModuleInfoFor(element: KtElement): ModuleInfo {
|
|
||||||
val containingFile = element.containingKtFile
|
|
||||||
return moduleInfoProvider.getModuleInfoByKtFile(containingFile)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun configureSourceSession(session: FirSession) {
|
override fun configureSourceSession(session: FirSession) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -294,6 +289,7 @@ class FirModuleResolveStateConfiguratorForSingleModuleTestImpl(
|
|||||||
fun MockProject.registerTestServices(
|
fun MockProject.registerTestServices(
|
||||||
configurator: FirModuleResolveStateConfiguratorForSingleModuleTestImpl,
|
configurator: FirModuleResolveStateConfiguratorForSingleModuleTestImpl,
|
||||||
allKtFiles: List<KtFile>,
|
allKtFiles: List<KtFile>,
|
||||||
|
testServices: TestServices,
|
||||||
) {
|
) {
|
||||||
registerService(
|
registerService(
|
||||||
FirModuleResolveStateConfigurator::class.java,
|
FirModuleResolveStateConfigurator::class.java,
|
||||||
@@ -306,9 +302,19 @@ fun MockProject.registerTestServices(
|
|||||||
)
|
)
|
||||||
registerService(KotlinDeclarationProviderFactory::class.java, KotlinStaticDeclarationProviderFactory(allKtFiles))
|
registerService(KotlinDeclarationProviderFactory::class.java, KotlinStaticDeclarationProviderFactory(allKtFiles))
|
||||||
registerService(KotlinPackageProviderFactory::class.java, KotlinStaticPackageProviderFactory(allKtFiles))
|
registerService(KotlinPackageProviderFactory::class.java, KotlinStaticPackageProviderFactory(allKtFiles))
|
||||||
|
registerService(KotlinModuleInfoProvider::class.java, TestKotlinModuleInfoProvider(testServices))
|
||||||
reRegisterJavaElementFinder(this)
|
reRegisterJavaElementFinder(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class TestKotlinModuleInfoProvider(testServices: TestServices): KotlinModuleInfoProvider() {
|
||||||
|
private val moduleInfoProvider = testServices.moduleInfoProvider
|
||||||
|
override fun getModuleInfo(element: KtElement): ModuleInfo {
|
||||||
|
val containingFile = element.containingKtFile
|
||||||
|
return moduleInfoProvider.getModuleInfoByKtFile(containingFile)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@OptIn(InvalidWayOfUsingAnalysisSession::class)
|
@OptIn(InvalidWayOfUsingAnalysisSession::class)
|
||||||
private fun reRegisterJavaElementFinder(project: Project) {
|
private fun reRegisterJavaElementFinder(project: Project) {
|
||||||
PsiElementFinder.EP.getPoint(project).unregisterExtension(JavaElementFinder::class.java)
|
PsiElementFinder.EP.getPoint(project).unregisterExtension(JavaElementFinder::class.java)
|
||||||
|
|||||||
+1
-1
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.idea.fir.low.level.api
|
|||||||
|
|
||||||
import com.intellij.openapi.module.ModuleManager
|
import com.intellij.openapi.module.ModuleManager
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
|
import org.jetbrains.kotlin.analysis.providers.getModuleInfo
|
||||||
import org.jetbrains.kotlin.fir.FirElement
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.FirRenderer
|
import org.jetbrains.kotlin.fir.FirRenderer
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||||
@@ -17,7 +18,6 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
|||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFileSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirFileSymbol
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
|
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.getModuleInfo
|
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.sessions.FirIdeSession
|
import org.jetbrains.kotlin.idea.fir.low.level.api.sessions.FirIdeSession
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
|
|
||||||
|
|||||||
+1
@@ -9,6 +9,7 @@ import com.intellij.mock.MockApplication
|
|||||||
import com.intellij.mock.MockProject
|
import com.intellij.mock.MockProject
|
||||||
import com.intellij.openapi.application.ApplicationManager
|
import com.intellij.openapi.application.ApplicationManager
|
||||||
import com.intellij.openapi.util.Disposer
|
import com.intellij.openapi.util.Disposer
|
||||||
|
import org.jetbrains.kotlin.analysis.providers.KotlinModuleInfoProvider
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.compiler.based.ModuleRegistrarPreAnalysisHandler
|
import org.jetbrains.kotlin.idea.fir.low.level.api.compiler.based.ModuleRegistrarPreAnalysisHandler
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.compiler.based.TestModuleInfoProvider
|
import org.jetbrains.kotlin.idea.fir.low.level.api.compiler.based.TestModuleInfoProvider
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.asJava
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.HackToForceAllowRunningAnalyzeOnEDT
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.hackyAllowRunningOnEdt
|
|
||||||
|
|
||||||
@OptIn(HackToForceAllowRunningAnalyzeOnEDT::class)
|
|
||||||
internal inline fun <E> allowLightClassesOnEdt(action: () -> E): E = hackyAllowRunningOnEdt(action)
|
|
||||||
|
|
||||||
internal inline fun <T> Boolean.ifTrue(body: () -> T?): T? = if (this) body() else null
|
|
||||||
|
|
||||||
internal inline fun <T> Boolean.ifFalse(body: () -> T?): T? = if (!this) body() else null
|
|
||||||
+11
-2
@@ -15,6 +15,8 @@ import org.jetbrains.kotlin.analysis.providers.createProjectWideOutOfBlockModifi
|
|||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
|
import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.getResolveState
|
import org.jetbrains.kotlin.idea.fir.low.level.api.api.getResolveState
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.*
|
import org.jetbrains.kotlin.idea.frontend.api.*
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.KtFirSymbol
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityToken
|
import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityToken
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityTokenFactory
|
import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityTokenFactory
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
@@ -35,8 +37,15 @@ class KtFirAnalysisSessionProvider(private val project: Project) : KtAnalysisSes
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@InvalidWayOfUsingAnalysisSession
|
override fun getAnalysisSessionBySymbol(contextSymbol: KtSymbol): KtAnalysisSession {
|
||||||
fun getCachedAnalysisSession(resolveState: FirModuleResolveState, token: ValidityToken): KtAnalysisSession? {
|
require(contextSymbol is KtFirSymbol<*>)
|
||||||
|
val resolveState = contextSymbol.firRef.resolveState
|
||||||
|
val token = contextSymbol.token
|
||||||
|
return getCachedAnalysisSession(resolveState, token)
|
||||||
|
?: error("analysis session was not found for ${contextSymbol::class}, symbol.isValid=${contextSymbol.isValid()}")
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun getCachedAnalysisSession(resolveState: FirModuleResolveState, token: ValidityToken): KtAnalysisSession? {
|
||||||
return cache.getCachedAnalysisSession(resolveState to token::class)
|
return cache.getCachedAnalysisSession(resolveState to token::class)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
-29
@@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.idea.frontend.api.fir
|
|
||||||
|
|
||||||
import com.intellij.openapi.components.ServiceManager
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.InvalidWayOfUsingAnalysisSession
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSessionProvider
|
|
||||||
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.frontend.api.symbols.KtSymbol
|
|
||||||
|
|
||||||
@OptIn(InvalidWayOfUsingAnalysisSession::class)
|
|
||||||
internal inline fun <R> analyzeWithSymbolAsContext(
|
|
||||||
contextSymbol: KtSymbol,
|
|
||||||
action: KtAnalysisSession.() -> R
|
|
||||||
): R {
|
|
||||||
require(contextSymbol is KtFirSymbol<*>)
|
|
||||||
val resolveState = contextSymbol.firRef.resolveState
|
|
||||||
val token = contextSymbol.token
|
|
||||||
val analysisSessionProvider = ServiceManager.getService(resolveState.project, KtAnalysisSessionProvider::class.java)
|
|
||||||
check(analysisSessionProvider is KtFirAnalysisSessionProvider)
|
|
||||||
val analysisSession = analysisSessionProvider.getCachedAnalysisSession(resolveState, token)
|
|
||||||
?: throw EntityWasGarbageCollectedException("KtAnalysisSession")
|
|
||||||
return action(analysisSession)
|
|
||||||
}
|
|
||||||
+1
-1
@@ -19,12 +19,12 @@ import org.jetbrains.kotlin.fir.resolve.toFirRegularClass
|
|||||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.idea.asJava.applyIf
|
|
||||||
import org.jetbrains.kotlin.idea.fir.low.level.api.api.tryCollectDesignation
|
import org.jetbrains.kotlin.idea.fir.low.level.api.api.tryCollectDesignation
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.components.KtTypeRendererOptions
|
import org.jetbrains.kotlin.idea.frontend.api.components.KtTypeRendererOptions
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.StandardClassIds
|
import org.jetbrains.kotlin.name.StandardClassIds
|
||||||
import org.jetbrains.kotlin.renderer.render
|
import org.jetbrains.kotlin.renderer.render
|
||||||
|
import org.jetbrains.kotlin.utils.addToStdlib.applyIf
|
||||||
|
|
||||||
internal class ConeTypeIdeRenderer(
|
internal class ConeTypeIdeRenderer(
|
||||||
private val session: FirSession,
|
private val session: FirSession,
|
||||||
|
|||||||
+2
-2
@@ -18,8 +18,6 @@ import org.jetbrains.kotlin.fir.expressions.FirBlock
|
|||||||
import org.jetbrains.kotlin.fir.resolve.defaultType
|
import org.jetbrains.kotlin.fir.resolve.defaultType
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||||
import org.jetbrains.kotlin.idea.asJava.applyIf
|
|
||||||
import org.jetbrains.kotlin.idea.asJava.ifTrue
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.components.KtDeclarationRendererOptions
|
import org.jetbrains.kotlin.idea.frontend.api.components.KtDeclarationRendererOptions
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.components.RendererModifier
|
import org.jetbrains.kotlin.idea.frontend.api.components.RendererModifier
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.types.PublicTypeApproximator
|
import org.jetbrains.kotlin.idea.frontend.api.fir.types.PublicTypeApproximator
|
||||||
@@ -27,6 +25,8 @@ import org.jetbrains.kotlin.name.SpecialNames
|
|||||||
import org.jetbrains.kotlin.name.StandardClassIds
|
import org.jetbrains.kotlin.name.StandardClassIds
|
||||||
import org.jetbrains.kotlin.renderer.render
|
import org.jetbrains.kotlin.renderer.render
|
||||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||||
|
import org.jetbrains.kotlin.utils.addToStdlib.applyIf
|
||||||
|
import org.jetbrains.kotlin.utils.addToStdlib.ifTrue
|
||||||
|
|
||||||
internal class FirIdeRenderer private constructor(
|
internal class FirIdeRenderer private constructor(
|
||||||
private var containingDeclaration: FirDeclaration?,
|
private var containingDeclaration: FirDeclaration?,
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
plugins {
|
||||||
|
kotlin("jvm")
|
||||||
|
}
|
||||||
|
|
||||||
|
publishJarsForIde(listOf(":analysis:symbol-light-classes"))
|
||||||
+5
-2
@@ -327,7 +327,8 @@ if (!buildProperties.inJpsBuildIdeaSync) {
|
|||||||
":prepare:ide-plugin-dependencies:high-level-api-for-ide",
|
":prepare:ide-plugin-dependencies:high-level-api-for-ide",
|
||||||
":prepare:ide-plugin-dependencies:high-level-api-fir-for-ide",
|
":prepare:ide-plugin-dependencies:high-level-api-fir-for-ide",
|
||||||
":prepare:ide-plugin-dependencies:high-level-api-fir-tests-for-ide",
|
":prepare:ide-plugin-dependencies:high-level-api-fir-tests-for-ide",
|
||||||
":prepare:ide-plugin-dependencies:analysis-api-providers-for-ide"
|
":prepare:ide-plugin-dependencies:analysis-api-providers-for-ide",
|
||||||
|
":prepare:ide-plugin-dependencies:symbol-light-classes-for-ide"
|
||||||
}
|
}
|
||||||
|
|
||||||
void intellij(String imlPath) {
|
void intellij(String imlPath) {
|
||||||
@@ -442,7 +443,9 @@ include ":generators:frontend-api-generator",
|
|||||||
":idea-frontend-fir:idea-frontend-fir-generator",
|
":idea-frontend-fir:idea-frontend-fir-generator",
|
||||||
":idea-frontend-fir",
|
":idea-frontend-fir",
|
||||||
":idea-frontend-api",
|
":idea-frontend-api",
|
||||||
":analysis:analysis-api-providers"
|
":analysis:analysis-api-providers",
|
||||||
|
":analysis:symbol-light-classes"
|
||||||
|
|
||||||
|
|
||||||
if (buildProperties.inJpsBuildIdeaSync) {
|
if (buildProperties.inJpsBuildIdeaSync) {
|
||||||
include ":kotlin-stdlib:jps-build"
|
include ":kotlin-stdlib:jps-build"
|
||||||
|
|||||||
Reference in New Issue
Block a user