[FIR] Introduce new Visibility class which not depends on descriptors
This commit is contained in:
@@ -20,8 +20,8 @@ import com.intellij.util.ArrayUtil
|
||||
import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.Visibilities
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.resolve.firProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
|
||||
|
||||
@@ -11,8 +11,6 @@ import com.intellij.psi.PsiElement
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.*
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.*
|
||||
@@ -157,7 +155,7 @@ class JavaSymbolProvider(
|
||||
session = this@JavaSymbolProvider.session
|
||||
symbol = firSymbol
|
||||
name = javaClass.name
|
||||
visibility = javaClass.visibility
|
||||
visibility = javaClass.visibility.toFirVisibility()
|
||||
modality = javaClass.modality
|
||||
classKind = javaClass.classKind
|
||||
this.isTopLevel = outerClassId == null
|
||||
@@ -174,7 +172,7 @@ class JavaSymbolProvider(
|
||||
}
|
||||
}
|
||||
status = FirResolvedDeclarationStatusImpl(
|
||||
javaClass.visibility,
|
||||
javaClass.visibility.toFirVisibility(),
|
||||
javaClass.modality
|
||||
).apply {
|
||||
this.isInner = !isTopLevel && !this@buildJavaClass.isStatic
|
||||
@@ -197,7 +195,7 @@ class JavaSymbolProvider(
|
||||
symbol = FirVariableSymbol(fieldId)
|
||||
name = fieldName
|
||||
status = FirResolvedDeclarationStatusImpl(
|
||||
javaField.visibility,
|
||||
javaField.visibility.toFirVisibility(),
|
||||
javaField.modality
|
||||
).apply {
|
||||
isStatic = javaField.isStatic
|
||||
@@ -216,7 +214,7 @@ class JavaSymbolProvider(
|
||||
symbol = FirFieldSymbol(fieldId)
|
||||
name = fieldName
|
||||
status = FirResolvedDeclarationStatusImpl(
|
||||
javaField.visibility,
|
||||
javaField.visibility.toFirVisibility(),
|
||||
javaField.modality
|
||||
).apply {
|
||||
isStatic = javaField.isStatic
|
||||
@@ -224,7 +222,7 @@ class JavaSymbolProvider(
|
||||
isActual = false
|
||||
isOverride = false
|
||||
}
|
||||
visibility = javaField.visibility
|
||||
visibility = javaField.visibility.toFirVisibility()
|
||||
modality = javaField.modality
|
||||
returnTypeRef = returnType.toFirJavaTypeRef(this@JavaSymbolProvider.session, javaTypeParameterStack)
|
||||
isVar = !javaField.isFinal
|
||||
@@ -248,7 +246,7 @@ class JavaSymbolProvider(
|
||||
source = (javaMethod as? JavaElementImpl<*>)?.psi?.toFirPsiSourceElement()
|
||||
symbol = methodSymbol
|
||||
name = methodName
|
||||
visibility = javaMethod.visibility
|
||||
visibility = javaMethod.visibility.toFirVisibility()
|
||||
modality = javaMethod.modality
|
||||
returnTypeRef = returnType.toFirJavaTypeRef(this@JavaSymbolProvider.session, javaTypeParameterStack)
|
||||
isStatic = javaMethod.isStatic
|
||||
@@ -260,7 +258,7 @@ class JavaSymbolProvider(
|
||||
)
|
||||
}
|
||||
status = FirResolvedDeclarationStatusImpl(
|
||||
javaMethod.visibility,
|
||||
javaMethod.visibility.toFirVisibility(),
|
||||
javaMethod.modality
|
||||
).apply {
|
||||
isStatic = javaMethod.isStatic
|
||||
@@ -342,7 +340,7 @@ class JavaSymbolProvider(
|
||||
}
|
||||
for (javaConstructor in javaClassDeclaredConstructors) {
|
||||
declarations += prepareJavaConstructor(
|
||||
visibility = javaConstructor.visibility,
|
||||
visibility = javaConstructor.visibility.toFirVisibility(),
|
||||
psi = (javaConstructor as? JavaElementImpl<*>)?.psi,
|
||||
).apply {
|
||||
this.typeParameters += javaConstructor.typeParameters.convertTypeParameters(javaTypeParameterStack)
|
||||
|
||||
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.java
|
||||
import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.*
|
||||
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
@@ -28,7 +28,6 @@ import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.firUnsafe
|
||||
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||
import org.jetbrains.kotlin.fir.toFirPsiSourceElement
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||
@@ -41,6 +40,9 @@ import org.jetbrains.kotlin.load.java.typeEnhancement.TypeComponentPosition
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.types.Variance.*
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities as OldVisibilities
|
||||
import org.jetbrains.kotlin.descriptors.Visibility as OldVisibility
|
||||
import org.jetbrains.kotlin.load.java.JavaVisibilities as OldJavaVisibilities
|
||||
|
||||
internal val JavaModifierListOwner.modality: Modality
|
||||
get() = when {
|
||||
@@ -524,3 +526,17 @@ private fun JavaType.toFirResolvedTypeRef(
|
||||
}
|
||||
}
|
||||
|
||||
fun OldVisibility.toFirVisibility(): Visibility = when (this) {
|
||||
OldVisibilities.PRIVATE -> Visibilities.PRIVATE
|
||||
OldVisibilities.PRIVATE_TO_THIS -> Visibilities.PRIVATE_TO_THIS
|
||||
OldVisibilities.PROTECTED -> Visibilities.PROTECTED
|
||||
OldVisibilities.INTERNAL -> Visibilities.INTERNAL
|
||||
OldVisibilities.PUBLIC -> Visibilities.PUBLIC
|
||||
OldVisibilities.LOCAL -> Visibilities.LOCAL
|
||||
OldVisibilities.INVISIBLE_FAKE -> Visibilities.INVISIBLE_FAKE
|
||||
OldVisibilities.UNKNOWN -> Visibilities.UNKNOWN
|
||||
OldJavaVisibilities.PACKAGE_VISIBILITY -> JavaVisibilities.PACKAGE_VISIBILITY
|
||||
OldJavaVisibilities.PROTECTED_AND_PACKAGE -> JavaVisibilities.PROTECTED_AND_PACKAGE
|
||||
OldJavaVisibilities.PROTECTED_STATIC_VISIBILITY -> JavaVisibilities.PROTECTED_STATIC_VISIBILITY
|
||||
else -> error("Unknown visiblity: $this")
|
||||
}
|
||||
|
||||
@@ -7,10 +7,10 @@ package org.jetbrains.kotlin.fir.java.declarations
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.Visibility
|
||||
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
@@ -173,4 +173,4 @@ internal class FirJavaClassBuilder : FirRegularClassBuilder(), FirAnnotationCont
|
||||
|
||||
internal inline fun buildJavaClass(init: FirJavaClassBuilder.() -> Unit): FirJavaClass {
|
||||
return FirJavaClassBuilder().apply(init).build()
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -5,10 +5,10 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.java.declarations
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.Visibility
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.FirConstructorBuilder
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
package org.jetbrains.kotlin.fir.java.declarations
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.Visibility
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.FirFieldBuilder
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
package org.jetbrains.kotlin.fir.java.declarations
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.FirImplementationDetail
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.Visibility
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
@@ -110,4 +110,4 @@ class FirJavaMethodBuilder : FirSimpleFunctionBuilder() {
|
||||
|
||||
inline fun buildJavaMethod(init: FirJavaMethodBuilder.() -> Unit): FirJavaMethod {
|
||||
return FirJavaMethodBuilder().apply(init).build()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user