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