[FIR] Rename FirAnnotation.coneClassLikeType to unexpanded

The same reason
This commit is contained in:
Nikolay Lunyak
2023-01-10 20:48:37 +02:00
committed by Space Team
parent 0c86294ca4
commit f671a8c8a7
10 changed files with 26 additions and 21 deletions
@@ -14,13 +14,13 @@ import org.jetbrains.kotlin.fir.analysis.js.checkers.isEffectivelyExternal
import org.jetbrains.kotlin.fir.analysis.diagnostics.js.FirJsErrors
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
import org.jetbrains.kotlin.fir.expressions.coneClassLikeType
import org.jetbrains.kotlin.fir.expressions.unexpandedConeClassLikeType
import org.jetbrains.kotlin.fir.resolve.toSymbol
object FirJsRuntimeAnnotationChecker : FirBasicDeclarationChecker() {
override fun check(declaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter) {
for (annotation in declaration.annotations) {
val annotationClass = annotation.coneClassLikeType?.lookupTag?.toSymbol(context.session) ?: continue
val annotationClass = annotation.unexpandedConeClassLikeType?.lookupTag?.toSymbol(context.session) ?: continue
if (annotationClass.getExplicitAnnotationRetention(context.session) != AnnotationRetention.RUNTIME) continue
if (declaration is FirMemberDeclaration && declaration.symbol.isEffectivelyExternal(context)) {
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirBasicDeclarationChecker
import org.jetbrains.kotlin.fir.analysis.diagnostics.jvm.FirJvmErrors
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.expressions.classId
import org.jetbrains.kotlin.fir.expressions.unexpandedClassId
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.StandardClassIds.Annotations.Repeatable
import org.jetbrains.kotlin.name.StandardClassIds.Annotations.JvmRepeatable
@@ -30,8 +30,8 @@ object FirJvmRedundantRepeatableChecker : FirBasicDeclarationChecker() {
reporter.reportOn(
kotlinRepeatable.source,
FirJvmErrors.REDUNDANT_REPEATABLE_ANNOTATION,
kotlinRepeatable.classId?.asSingleFqName() ?: FqName.ROOT,
javaRepeatable.classId?.asSingleFqName() ?: FqName.ROOT,
kotlinRepeatable.unexpandedClassId?.asSingleFqName() ?: FqName.ROOT,
javaRepeatable.unexpandedClassId?.asSingleFqName() ?: FqName.ROOT,
context
)
}
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.fir.analysis.checkers.unsubstitutedScope
import org.jetbrains.kotlin.fir.analysis.diagnostics.native.FirNativeErrors.REDUNDANT_SWIFT_REFINEMENT
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.coneClassLikeType
import org.jetbrains.kotlin.fir.expressions.unexpandedConeClassLikeType
import org.jetbrains.kotlin.fir.resolve.toSymbol
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
@@ -44,7 +44,8 @@ object FirNativeObjCRefinementChecker : FirCallableDeclarationChecker() {
val objCAnnotations = mutableListOf<FirAnnotation>()
val swiftAnnotations = mutableListOf<FirAnnotation>()
for (annotation in annotations) {
val metaAnnotations = annotation.coneClassLikeType?.lookupTag?.toSymbol(session)?.resolvedAnnotationsWithClassIds.orEmpty()
val metaAnnotations = annotation.unexpandedConeClassLikeType?.lookupTag
?.toSymbol(session)?.resolvedAnnotationsWithClassIds.orEmpty()
for (metaAnnotation in metaAnnotations) {
when (metaAnnotation.toAnnotationClassId(session)) {
hidesFromObjCClassId -> {
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.declarations.FirClass
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.toAnnotationClassId
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.coneClassLikeType
import org.jetbrains.kotlin.fir.expressions.unexpandedConeClassLikeType
import org.jetbrains.kotlin.fir.isIntersectionOverride
import org.jetbrains.kotlin.fir.resolve.toFirRegularClassSymbol
import org.jetbrains.kotlin.fir.resolve.toSymbol
@@ -83,7 +83,8 @@ object FirNativeObjCRefinementOverridesChecker : FirClassChecker() {
var hasObjC = false
var hasSwift = false
for (annotation in resolvedAnnotationsWithClassIds) {
val metaAnnotations = annotation.coneClassLikeType?.lookupTag?.toSymbol(session)?.resolvedAnnotationsWithClassIds.orEmpty()
val metaAnnotations = annotation.unexpandedConeClassLikeType?.lookupTag
?.toSymbol(session)?.resolvedAnnotationsWithClassIds.orEmpty()
for (metaAnnotation in metaAnnotations) {
when (metaAnnotation.toAnnotationClassId(session)) {
hidesFromObjCClassId -> {
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.backend
import org.jetbrains.kotlin.fir.declarations.getAnnotationsByClassId
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.classId
import org.jetbrains.kotlin.fir.expressions.unexpandedConeClassLikeType
import org.jetbrains.kotlin.fir.languageVersionSettings
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
import org.jetbrains.kotlin.fir.resolve.substitution.AbstractConeSubstitutor
@@ -148,7 +148,10 @@ class Fir2IrTypeConverter(
}
for (attributeAnnotation in attributes.customAnnotations) {
if (annotations.any { it.classId == attributeAnnotation.classId }) continue
val isAlreadyPresentInAnnotations = annotations.any {
it.unexpandedConeClassLikeType == attributeAnnotation.unexpandedConeClassLikeType
}
if (isAlreadyPresentInAnnotations) continue
typeAnnotations += callGenerator.convertToIrConstructorCall(attributeAnnotation) as? IrConstructorCall ?: continue
}
val expandedType = fullyExpandedType(session)
@@ -28,13 +28,13 @@ class FirAnnotationTypeQualifierResolver(
) : AbstractAnnotationTypeQualifierResolver<FirAnnotation>(javaTypeEnhancementState), FirSessionComponent {
override val FirAnnotation.metaAnnotations: Iterable<FirAnnotation>
get() = coneClassLikeType?.lookupTag?.toSymbol(session)?.fir?.annotations.orEmpty()
get() = unexpandedConeClassLikeType?.lookupTag?.toSymbol(session)?.fir?.annotations.orEmpty()
override val FirAnnotation.key: Any
get() = coneClassLikeType!!.lookupTag
get() = unexpandedConeClassLikeType!!.lookupTag
override val FirAnnotation.fqName: FqName?
get() = coneClassLikeType?.lookupTag?.classId?.asSingleFqName()
get() = unexpandedConeClassLikeType?.lookupTag?.classId?.asSingleFqName()
override fun FirAnnotation.enumArguments(onlyValue: Boolean): Iterable<String> =
argumentMapping.mapping.values.flatMap { argument ->
@@ -119,8 +119,8 @@ fun List<FirAnnotation>.computeTypeAttributes(session: FirSession, predefined: L
}
private fun FirAnnotation.tryExpandClassId(session: FirSession): ClassId? {
return when (val directlyExpanded = coneClassLikeType?.directExpansionType(session) { it.expandedConeType }) {
null -> coneClassLikeType?.classId // mutually recursive typealiases
return when (val directlyExpanded = unexpandedConeClassLikeType?.directExpansionType(session) { it.expandedConeType }) {
null -> unexpandedConeClassLikeType?.classId // mutually recursive typealiases
else -> directlyExpanded.fullyExpandedType(session).classId
}
}
@@ -231,4 +231,4 @@ fun hasLowPriorityAnnotation(annotations: List<FirAnnotation>) = annotations.any
}
fun FirAnnotation.fullyExpandedClassId(useSiteSession: FirSession): ClassId? =
coneClassLikeType?.fullyExpandedType(useSiteSession)?.classId
unexpandedConeClassLikeType?.fullyExpandedType(useSiteSession)?.classId
@@ -29,11 +29,11 @@ import org.jetbrains.kotlin.fir.visitors.transformInplace
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.types.ConstantValueKind
inline val FirAnnotation.coneClassLikeType: ConeClassLikeType?
inline val FirAnnotation.unexpandedConeClassLikeType: ConeClassLikeType?
get() = ((annotationTypeRef as? FirResolvedTypeRef)?.type as? ConeClassLikeType)
inline val FirAnnotation.unexpandedClassId: ClassId?
get() = coneClassLikeType?.lookupTag?.classId
get() = unexpandedConeClassLikeType?.lookupTag?.classId
fun <T> buildConstOrErrorExpression(source: KtSourceElement?, kind: ConstantValueKind<T>, value: T?, diagnostic: ConeDiagnostic): FirExpression =
value?.let {
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.lombok.k2.generators
import com.intellij.psi.PsiField
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.classId
import org.jetbrains.kotlin.fir.expressions.unexpandedClassId
import org.jetbrains.kotlin.fir.java.declarations.FirJavaField
import org.jetbrains.kotlin.fir.symbols.SymbolInternals
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
@@ -33,6 +33,6 @@ class RequiredArgsConstructorGeneratorPart(session: FirSession) : AbstractConstr
val hasInitializer = (source?.psi as? PsiField)?.hasInitializer() ?: false
if (hasInitializer) return false
if (isVal) return true
return annotations.any { it.classId?.asSingleFqName() in LombokNames.NON_NULL_ANNOTATIONS }
return annotations.any { it.unexpandedClassId?.asSingleFqName() in LombokNames.NON_NULL_ANNOTATIONS }
}
}