FIR: do not try to calculate annotation call type
Annotation type is used instead
This commit is contained in:
-1
@@ -858,7 +858,6 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun transformAnnotationCall(annotationCall: FirAnnotationCall, data: Any?): CompositeTransformResult<FirStatement> {
|
override fun transformAnnotationCall(annotationCall: FirAnnotationCall, data: Any?): CompositeTransformResult<FirStatement> {
|
||||||
annotationCall.resultType = annotationCall.annotationTypeRef
|
|
||||||
return (annotationCall.transformChildren(this, data) as FirStatement).compose()
|
return (annotationCall.transformChildren(this, data) as FirStatement).compose()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.expressions
|
|||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.expressions.impl.FirUnknownTypeCallWithArgumentList
|
import org.jetbrains.kotlin.fir.expressions.impl.FirCallWithArgumentList
|
||||||
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
||||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.name.FqName
|
|||||||
abstract class FirAnnotationCall(
|
abstract class FirAnnotationCall(
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
psi: PsiElement?
|
psi: PsiElement?
|
||||||
) : FirUnknownTypeCallWithArgumentList(session, psi) {
|
) : FirCallWithArgumentList(session, psi) {
|
||||||
abstract val annotationTypeRef: FirTypeRef
|
abstract val annotationTypeRef: FirTypeRef
|
||||||
|
|
||||||
// May be should be not-null (with correct default target)
|
// May be should be not-null (with correct default target)
|
||||||
|
|||||||
+7
@@ -20,6 +20,13 @@ class FirAnnotationCallImpl(
|
|||||||
override val useSiteTarget: AnnotationUseSiteTarget?,
|
override val useSiteTarget: AnnotationUseSiteTarget?,
|
||||||
override var annotationTypeRef: FirTypeRef
|
override var annotationTypeRef: FirTypeRef
|
||||||
) : FirAnnotationCall(session, psi) {
|
) : FirAnnotationCall(session, psi) {
|
||||||
|
override val typeRef: FirTypeRef
|
||||||
|
get() = annotationTypeRef
|
||||||
|
|
||||||
|
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||||
|
throw AssertionError("Attempt to replace type ref for annotation call")
|
||||||
|
}
|
||||||
|
|
||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||||
annotationTypeRef = annotationTypeRef.transformSingle(transformer, data)
|
annotationTypeRef = annotationTypeRef.transformSingle(transformer, data)
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -196,6 +196,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
|||||||
return transformCall(callWithArgumentList, data)
|
return transformCall(callWithArgumentList, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open fun transformAnnotationCall(annotationCall: FirAnnotationCall, data: D): CompositeTransformResult<FirStatement> {
|
||||||
|
return transformCallWithArgumentList(annotationCall, data)
|
||||||
|
}
|
||||||
|
|
||||||
open fun transformDelegatedConstructorCall(delegatedConstructorCall: FirDelegatedConstructorCall, data: D): CompositeTransformResult<FirStatement> {
|
open fun transformDelegatedConstructorCall(delegatedConstructorCall: FirDelegatedConstructorCall, data: D): CompositeTransformResult<FirStatement> {
|
||||||
return transformCallWithArgumentList(delegatedConstructorCall, data)
|
return transformCallWithArgumentList(delegatedConstructorCall, data)
|
||||||
}
|
}
|
||||||
@@ -220,10 +224,6 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
|||||||
return transformCallWithArgumentList(unknownTypeCallWithArgumentList, data)
|
return transformCallWithArgumentList(unknownTypeCallWithArgumentList, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun transformAnnotationCall(annotationCall: FirAnnotationCall, data: D): CompositeTransformResult<FirStatement> {
|
|
||||||
return transformUnknownTypeCallWithArgumentList(annotationCall, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
open fun transformArrayOfCall(arrayOfCall: FirArrayOfCall, data: D): CompositeTransformResult<FirStatement> {
|
open fun transformArrayOfCall(arrayOfCall: FirArrayOfCall, data: D): CompositeTransformResult<FirStatement> {
|
||||||
return transformUnknownTypeCallWithArgumentList(arrayOfCall, data)
|
return transformUnknownTypeCallWithArgumentList(arrayOfCall, data)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -196,6 +196,10 @@ abstract class FirVisitor<out R, in D> {
|
|||||||
return visitCall(callWithArgumentList, data)
|
return visitCall(callWithArgumentList, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: D): R {
|
||||||
|
return visitCallWithArgumentList(annotationCall, data)
|
||||||
|
}
|
||||||
|
|
||||||
open fun visitDelegatedConstructorCall(delegatedConstructorCall: FirDelegatedConstructorCall, data: D): R {
|
open fun visitDelegatedConstructorCall(delegatedConstructorCall: FirDelegatedConstructorCall, data: D): R {
|
||||||
return visitCallWithArgumentList(delegatedConstructorCall, data)
|
return visitCallWithArgumentList(delegatedConstructorCall, data)
|
||||||
}
|
}
|
||||||
@@ -220,10 +224,6 @@ abstract class FirVisitor<out R, in D> {
|
|||||||
return visitCallWithArgumentList(unknownTypeCallWithArgumentList, data)
|
return visitCallWithArgumentList(unknownTypeCallWithArgumentList, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: D): R {
|
|
||||||
return visitUnknownTypeCallWithArgumentList(annotationCall, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
open fun visitArrayOfCall(arrayOfCall: FirArrayOfCall, data: D): R {
|
open fun visitArrayOfCall(arrayOfCall: FirArrayOfCall, data: D): R {
|
||||||
return visitUnknownTypeCallWithArgumentList(arrayOfCall, data)
|
return visitUnknownTypeCallWithArgumentList(arrayOfCall, data)
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -196,6 +196,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitCall(callWithArgumentList, null)
|
visitCall(callWithArgumentList, null)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open fun visitAnnotationCall(annotationCall: FirAnnotationCall) {
|
||||||
|
visitCallWithArgumentList(annotationCall, null)
|
||||||
|
}
|
||||||
|
|
||||||
open fun visitDelegatedConstructorCall(delegatedConstructorCall: FirDelegatedConstructorCall) {
|
open fun visitDelegatedConstructorCall(delegatedConstructorCall: FirDelegatedConstructorCall) {
|
||||||
visitCallWithArgumentList(delegatedConstructorCall, null)
|
visitCallWithArgumentList(delegatedConstructorCall, null)
|
||||||
}
|
}
|
||||||
@@ -220,10 +224,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitCallWithArgumentList(unknownTypeCallWithArgumentList, null)
|
visitCallWithArgumentList(unknownTypeCallWithArgumentList, null)
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun visitAnnotationCall(annotationCall: FirAnnotationCall) {
|
|
||||||
visitUnknownTypeCallWithArgumentList(annotationCall, null)
|
|
||||||
}
|
|
||||||
|
|
||||||
open fun visitArrayOfCall(arrayOfCall: FirArrayOfCall) {
|
open fun visitArrayOfCall(arrayOfCall: FirArrayOfCall) {
|
||||||
visitUnknownTypeCallWithArgumentList(arrayOfCall, null)
|
visitUnknownTypeCallWithArgumentList(arrayOfCall, null)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user