FIR rename: FirType -> FirTypeRef and related

This commit is contained in:
Simon Ogorodnik
2019-02-11 16:13:04 +03:00
committed by Mikhail Glukhikh
parent 1c76a612f9
commit 5afb0a6f4a
71 changed files with 599 additions and 601 deletions
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.symbols.ConeSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.fir.types.impl.FirImplicitBuiltinType
import org.jetbrains.kotlin.fir.types.impl.FirImplicitBuiltinTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
import org.jetbrains.kotlin.name.SpecialNames
import org.jetbrains.kotlin.types.Variance
@@ -95,7 +95,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
override fun visitCallableMember(callableMember: FirCallableMember) {
visitMemberDeclaration(callableMember)
val receiverType = callableMember.receiverType
val receiverType = callableMember.receiverTypeRef
if (receiverType != null) {
print(" ")
receiverType.accept(this)
@@ -107,7 +107,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
print(if (callableMember.isVar) "(var)" else "(val)")
}
print(": ")
callableMember.returnType.accept(this)
callableMember.returnTypeRef.accept(this)
}
private fun Visibility.asString() =
@@ -222,9 +222,9 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
override fun visitRegularClass(regularClass: FirRegularClass) {
visitMemberDeclaration(regularClass)
if (regularClass.superTypes.isNotEmpty()) {
if (regularClass.superTypeRefs.isNotEmpty()) {
print(" : ")
regularClass.superTypes.renderSeparated()
regularClass.superTypeRefs.renderSeparated()
}
regularClass.renderDeclarations()
}
@@ -232,7 +232,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
override fun visitAnonymousObject(anonymousObject: FirAnonymousObject) {
anonymousObject.annotations.renderAnnotations()
print("object : ")
anonymousObject.superTypes.renderSeparated()
anonymousObject.superTypeRefs.renderSeparated()
anonymousObject.renderDeclarations()
}
@@ -240,7 +240,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
variable.annotations.renderAnnotations()
visitNamedDeclaration(variable)
print(": ")
variable.returnType.accept(this)
variable.returnTypeRef.accept(this)
variable.initializer?.let {
print(" = ")
it.accept(this)
@@ -301,7 +301,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
print(if (propertyAccessor.isGetter) "get" else "set")
propertyAccessor.valueParameters.renderParameters()
print(": ")
propertyAccessor.returnType.accept(this)
propertyAccessor.returnTypeRef.accept(this)
propertyAccessor.body?.accept(this)
}
@@ -312,7 +312,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
print("${label.name}@")
}
print("function ")
val receiverType = anonymousFunction.receiverType
val receiverType = anonymousFunction.receiverTypeRef
if (receiverType != null) {
print(" ")
receiverType.accept(this)
@@ -321,7 +321,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
print("<anonymous>")
anonymousFunction.valueParameters.renderParameters()
print(": ")
anonymousFunction.returnType.accept(this)
anonymousFunction.returnTypeRef.accept(this)
anonymousFunction.body?.accept(this)
}
@@ -355,7 +355,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
typeAlias.annotations.renderAnnotations()
visitMemberDeclaration(typeAlias)
print(" = ")
typeAlias.expandedType.accept(this)
typeAlias.expandedTypeRef.accept(this)
println()
}
@@ -390,7 +390,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
if (valueParameter.name != SpecialNames.NO_NAME_PROVIDED) {
print(valueParameter.name.toString() + ": ")
}
valueParameter.returnType.accept(this)
valueParameter.returnTypeRef.accept(this)
valueParameter.defaultValue?.let {
print(" = ")
it.accept(this)
@@ -542,7 +542,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
print(it.name)
print(":")
}
annotationCall.annotationType.accept(this)
annotationCall.annotationTypeRef.accept(this)
visitCall(annotationCall)
if (annotationCall.useSiteTarget == AnnotationUseSiteTarget.FILE) {
println()
@@ -557,54 +557,54 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
} else if (delegatedConstructorCall.isThis) {
print(": this<")
}
delegatedConstructorCall.constructedType.accept(this)
delegatedConstructorCall.constructedTypeRef.accept(this)
print(">")
visitCall(delegatedConstructorCall)
}
override fun visitType(type: FirType) {
type.annotations.renderAnnotations()
visitElement(type)
override fun visitTypeRef(typeRef: FirTypeRef) {
typeRef.annotations.renderAnnotations()
visitElement(typeRef)
}
override fun visitDelegatedType(delegatedType: FirDelegatedType) {
delegatedType.type.accept(this)
override fun visitDelegatedTypeRef(delegatedTypeRef: FirDelegatedTypeRef) {
delegatedTypeRef.typeRef.accept(this)
print(" by ")
delegatedType.delegate?.accept(this)
delegatedTypeRef.delegate?.accept(this)
}
override fun visitErrorType(errorType: FirErrorType) {
visitType(errorType)
print("<ERROR TYPE: ${errorType.reason}>")
override fun visitErrorTypeRef(errorTypeRef: FirErrorTypeRef) {
visitTypeRef(errorTypeRef)
print("<ERROR TYPE: ${errorTypeRef.reason}>")
}
override fun visitImplicitType(implicitType: FirImplicitType) {
print(if (implicitType is FirImplicitBuiltinType) "kotlin.${implicitType.name}" else "<implicit>")
override fun visitImplicitTypeRef(implicitTypeRef: FirImplicitTypeRef) {
print(if (implicitTypeRef is FirImplicitBuiltinTypeRef) "kotlin.${implicitTypeRef.name}" else "<implicit>")
}
override fun visitTypeWithNullability(typeWithNullability: FirTypeWithNullability) {
if (typeWithNullability.isMarkedNullable) {
override fun visitTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability) {
if (typeRefWithNullability.isMarkedNullable) {
print("?")
}
}
override fun visitDynamicType(dynamicType: FirDynamicType) {
dynamicType.annotations.renderAnnotations()
override fun visitDynamicTypeRef(dynamicTypeRef: FirDynamicTypeRef) {
dynamicTypeRef.annotations.renderAnnotations()
print("<dynamic>")
visitTypeWithNullability(dynamicType)
visitTypeRefWithNullability(dynamicTypeRef)
}
override fun visitFunctionType(functionType: FirFunctionType) {
override fun visitFunctionTypeRef(functionTypeRef: FirFunctionTypeRef) {
print("( ")
functionType.receiverType?.let {
functionTypeRef.receiverTypeRef?.let {
it.accept(this)
print(".")
}
functionType.valueParameters.renderParameters()
functionTypeRef.valueParameters.renderParameters()
print(" -> ")
functionType.returnType.accept(this)
functionTypeRef.returnTypeRef.accept(this)
print(" )")
visitTypeWithNullability(functionType)
visitTypeRefWithNullability(functionTypeRef)
}
private fun ConeSymbol.asString(): String {
@@ -654,18 +654,18 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
}
}
override fun visitResolvedType(resolvedType: FirResolvedType) {
resolvedType.annotations.renderAnnotations()
override fun visitResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef) {
resolvedTypeRef.annotations.renderAnnotations()
print("R|")
val coneType = resolvedType.type
val coneType = resolvedTypeRef.type
print(coneType.asString())
print("|")
visitTypeWithNullability(resolvedType)
visitTypeRefWithNullability(resolvedTypeRef)
}
override fun visitUserType(userType: FirUserType) {
userType.annotations.renderAnnotations()
for ((index, qualifier) in userType.qualifier.withIndex()) {
override fun visitUserTypeRef(userTypeRef: FirUserTypeRef) {
userTypeRef.annotations.renderAnnotations()
for ((index, qualifier) in userTypeRef.qualifier.withIndex()) {
if (index != 0) {
print(".")
}
@@ -676,7 +676,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
print(">")
}
}
visitTypeWithNullability(userType)
visitTypeRefWithNullability(userTypeRef)
}
override fun visitTypeProjection(typeProjection: FirTypeProjection) {
@@ -685,7 +685,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
override fun visitTypeProjectionWithVariance(typeProjectionWithVariance: FirTypeProjectionWithVariance) {
typeProjectionWithVariance.variance.renderVariance()
typeProjectionWithVariance.type.accept(this)
typeProjectionWithVariance.typeRef.accept(this)
}
override fun visitStarProjection(starProjection: FirStarProjection) {
@@ -722,7 +722,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
override fun visitSuperReference(superReference: FirSuperReference) {
print("super<")
superReference.superType.accept(this)
superReference.superTypeRef.accept(this)
print(">")
}
@@ -792,7 +792,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
print(operatorCall.operation.operator)
if (operatorCall is FirTypeOperatorCall) {
print("/")
operatorCall.type.accept(this)
operatorCall.typeRef.accept(this)
}
visitCall(operatorCall)
}
@@ -5,16 +5,16 @@
package org.jetbrains.kotlin.fir
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
interface FirSuperReference : FirReference {
val superType: FirType
val superTypeRef: FirTypeRef
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitSuperReference(this, data)
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
superType.accept(visitor, data)
superTypeRef.accept(visitor, data)
}
}
@@ -8,11 +8,11 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.FirLabeledElement
import org.jetbrains.kotlin.fir.VisitedSupertype
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
interface FirAnonymousFunction : @VisitedSupertype FirFunction, FirExpression, FirTypedDeclaration, FirLabeledElement {
val receiverType: FirType?
val receiverTypeRef: FirTypeRef?
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitAnonymousFunction(this, data)
@@ -20,7 +20,7 @@ interface FirAnonymousFunction : @VisitedSupertype FirFunction, FirExpression, F
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
super<FirTypedDeclaration>.acceptChildren(visitor, data)
super<FirLabeledElement>.acceptChildren(visitor, data)
receiverType?.accept(visitor, data)
receiverTypeRef?.accept(visitor, data)
for (parameter in valueParameters) {
parameter.accept(visitor, data)
}
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.VisitedSupertype
import org.jetbrains.kotlin.fir.symbols.FirSymbolOwner
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
// Good name needed (something with receiver, type parameters, return type, and name)
@@ -16,14 +16,14 @@ interface FirCallableMember :
FirTypedDeclaration, FirSymbolOwner<FirCallableMember> {
val isOverride: Boolean get() = status.isOverride
val receiverType: FirType?
val receiverTypeRef: FirTypeRef?
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitCallableMember(this, data)
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
receiverType?.accept(visitor, data)
receiverTypeRef?.accept(visitor, data)
super<FirMemberDeclaration>.acceptChildren(visitor, data)
returnType.accept(visitor, data)
returnTypeRef.accept(visitor, data)
}
}
@@ -9,13 +9,13 @@ import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.fir.expressions.FirAnnotationContainer
import org.jetbrains.kotlin.fir.expressions.FirStatement
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.coneTypeSafe
import org.jetbrains.kotlin.fir.visitors.FirVisitor
interface FirClass : FirDeclarationContainer, FirStatement, FirAnnotationContainer {
// including delegated types
val superTypes: List<FirType>
val superTypeRefs: List<FirTypeRef>
val classKind: ClassKind
@@ -23,7 +23,7 @@ interface FirClass : FirDeclarationContainer, FirStatement, FirAnnotationContain
visitor.visitClass(this, data)
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
for (superType in superTypes) {
for (superType in superTypeRefs) {
superType.accept(visitor, data)
}
for (declaration in declarations) {
@@ -32,4 +32,4 @@ interface FirClass : FirDeclarationContainer, FirStatement, FirAnnotationContain
}
}
val FirClass.superConeTypes get() = superTypes.mapNotNull { it.coneTypeSafe<ConeClassLikeType>() }
val FirClass.superConeTypes get() = superTypeRefs.mapNotNull { it.coneTypeSafe<ConeClassLikeType>() }
@@ -7,21 +7,21 @@ package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.symbols.FirSymbolOwner
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.coneTypeSafe
import org.jetbrains.kotlin.fir.visitors.FirVisitor
interface FirTypeAlias : FirMemberDeclaration, FirSymbolOwner<FirTypeAlias> {
val expandedType: FirType
val expandedTypeRef: FirTypeRef
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitTypeAlias(this, data)
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
super.acceptChildren(visitor, data)
expandedType.accept(visitor, data)
expandedTypeRef.accept(visitor, data)
}
}
val FirTypeAlias.expandedConeType: ConeClassLikeType? get() = expandedType.coneTypeSafe()
val FirTypeAlias.expandedConeType: ConeClassLikeType? get() = expandedTypeRef.coneTypeSafe()
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.fir.BaseTransformedType
import org.jetbrains.kotlin.fir.expressions.FirAnnotationContainer
import org.jetbrains.kotlin.fir.symbols.FirSymbolOwner
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
import org.jetbrains.kotlin.types.Variance
@@ -19,7 +19,7 @@ interface FirTypeParameter : FirNamedDeclaration, FirAnnotationContainer, FirSym
val isReified: Boolean
val bounds: List<FirType>
val bounds: List<FirTypeRef>
override val symbol: FirTypeParameterSymbol
@@ -6,11 +6,11 @@
package org.jetbrains.kotlin.fir.declarations
import org.jetbrains.kotlin.fir.expressions.FirAnnotationContainer
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
interface FirTypedDeclaration : FirDeclaration, FirAnnotationContainer {
val returnType: FirType
val returnTypeRef: FirTypeRef
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitTypedDeclaration(this, data)
@@ -18,6 +18,6 @@ interface FirTypedDeclaration : FirDeclaration, FirAnnotationContainer {
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
acceptAnnotations(visitor, data)
super.acceptChildren(visitor, data)
returnType.accept(visitor, data)
returnTypeRef.accept(visitor, data)
}
}
@@ -13,28 +13,28 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirCallableMember
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.name.Name
abstract class FirAbstractCallableMember : FirAbstractMemberDeclaration, FirCallableMember {
final override val symbol: FirBasedSymbol<FirCallableMember>
final override var receiverType: FirType?
final override var returnType: FirType
final override var receiverTypeRef: FirTypeRef?
final override var returnTypeRef: FirTypeRef
constructor(
session: FirSession,
psi: PsiElement?,
symbol: FirBasedSymbol<FirCallableMember>,
name: Name,
receiverType: FirType?,
returnType: FirType
receiverTypeRef: FirTypeRef?,
returnTypeRef: FirTypeRef
) : super(session, psi, name) {
this.symbol = symbol
symbol.bind(this)
this.receiverType = receiverType
this.returnType = returnType
this.receiverTypeRef = receiverTypeRef
this.returnTypeRef = returnTypeRef
}
constructor(
@@ -47,20 +47,20 @@ abstract class FirAbstractCallableMember : FirAbstractMemberDeclaration, FirCall
isExpect: Boolean,
isActual: Boolean,
isOverride: Boolean,
receiverType: FirType?,
returnType: FirType
receiverTypeRef: FirTypeRef?,
returnTypeRef: FirTypeRef
) : super(session, psi, name, visibility, modality, isExpect, isActual) {
this.symbol = symbol
symbol.bind(this)
this.receiverType = receiverType
this.returnType = returnType
this.receiverTypeRef = receiverTypeRef
this.returnTypeRef = returnTypeRef
status.isOverride = isOverride
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
receiverType = receiverType?.transformSingle(transformer, data)
returnType = returnType.transformSingle(transformer, data)
receiverTypeRef = receiverTypeRef?.transformSingle(transformer, data)
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
return super<FirAbstractMemberDeclaration>.transformChildren(transformer, data)
}
@@ -11,20 +11,20 @@ import org.jetbrains.kotlin.fir.FirLabel
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirAnonymousFunctionImpl(
session: FirSession,
psi: PsiElement?,
override var returnType: FirType,
override var receiverType: FirType?
override var returnTypeRef: FirTypeRef,
override var receiverTypeRef: FirTypeRef?
) : FirAbstractFunction(session, psi), FirAnonymousFunction, FirModifiableFunction {
override var label: FirLabel? = null
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
returnType = returnType.transformSingle(transformer, data)
receiverType = receiverType?.transformSingle(transformer, data)
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
receiverTypeRef = receiverTypeRef?.transformSingle(transformer, data)
label = label?.transformSingle(transformer, data)
return super<FirAbstractFunction>.transformChildren(transformer, data)
}
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirAnonymousObject
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.transformInplace
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.fir.visitors.FirVisitor
@@ -19,7 +19,7 @@ class FirAnonymousObjectImpl(
session: FirSession,
psi: PsiElement?
) : FirAbstractAnnotatedDeclaration(session, psi), FirAnonymousObject, FirModifiableClass {
override val superTypes = mutableListOf<FirType>()
override val superTypeRefs = mutableListOf<FirTypeRef>()
override val declarations = mutableListOf<FirDeclaration>()
@@ -28,7 +28,7 @@ class FirAnonymousObjectImpl(
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
superTypes.transformInplace(transformer, data)
superTypeRefs.transformInplace(transformer, data)
declarations.transformInplace(transformer, data)
return super<FirAbstractAnnotatedDeclaration>.transformChildren(transformer, data)
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
import org.jetbrains.kotlin.fir.transformInplace
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.FirTransformer
@@ -42,13 +42,13 @@ open class FirClassImpl(
status.isInline = isInline
}
override val superTypes = mutableListOf<FirType>()
override val superTypeRefs = mutableListOf<FirTypeRef>()
override val declarations = mutableListOf<FirDeclaration>()
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirRegularClass {
superTypes.transformInplace(transformer, data)
superTypeRefs.transformInplace(transformer, data)
val result = super<FirAbstractMemberDeclaration>.transformChildren(transformer, data) as FirRegularClass
// Transform declarations in last turn
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.transformInplace
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.name.Name
@@ -28,11 +28,11 @@ open class FirConstructorImpl(
visibility: Visibility,
isExpect: Boolean,
isActual: Boolean,
delegatedSelfType: FirType,
delegatedSelfTypeRef: FirTypeRef,
final override var delegatedConstructor: FirDelegatedConstructorCall?
) : FirAbstractCallableMember(
session, psi, symbol, NAME, visibility, Modality.FINAL,
isExpect, isActual, isOverride = false, receiverType = null, returnType = delegatedSelfType
isExpect, isActual, isOverride = false, receiverTypeRef = null, returnTypeRef = delegatedSelfTypeRef
), FirConstructor {
override val valueParameters = mutableListOf<FirValueParameter>()
@@ -16,8 +16,8 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.transformInplace
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.impl.FirImplicitUnitType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirImplicitUnitTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
abstract class FirDefaultPropertyAccessor(
@@ -40,15 +40,15 @@ abstract class FirDefaultPropertyAccessor(
class FirDefaultPropertyGetter(
session: FirSession,
psi: PsiElement?,
propertyType: FirType,
propertyTypeRef: FirTypeRef,
visibility: Visibility
) : FirDefaultPropertyAccessor(session, psi, isGetter = true, visibility = visibility) {
override val valueParameters: List<FirValueParameter> = emptyList()
override var returnType: FirType = propertyType
override var returnTypeRef: FirTypeRef = propertyTypeRef
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
returnType = returnType.transformSingle(transformer, data)
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
status = status.transformSingle(transformer, data)
return this
@@ -58,16 +58,16 @@ class FirDefaultPropertyGetter(
class FirDefaultPropertySetter(
session: FirSession,
psi: PsiElement?,
propertyType: FirType,
propertyTypeRef: FirTypeRef,
visibility: Visibility
) : FirDefaultPropertyAccessor(session, psi, isGetter = false, visibility = visibility) {
override val valueParameters = mutableListOf(FirDefaultSetterValueParameter(session, psi, propertyType))
override val valueParameters = mutableListOf(FirDefaultSetterValueParameter(session, psi, propertyTypeRef))
override var returnType: FirType = FirImplicitUnitType(session, psi)
override var returnTypeRef: FirTypeRef = FirImplicitUnitTypeRef(session, psi)
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
valueParameters.transformInplace(transformer, data)
returnType = returnType.transformSingle(transformer, data)
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
status = status.transformSingle(transformer, data)
return this
@@ -11,14 +11,14 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.name.Name
class FirDefaultSetterValueParameter(
session: FirSession,
psi: PsiElement?,
override var returnType: FirType
override var returnTypeRef: FirTypeRef
) : FirAbstractNamedAnnotatedDeclaration(session, psi, name), FirValueParameter {
override val isCrossinline = false
@@ -29,7 +29,7 @@ class FirDefaultSetterValueParameter(
override val defaultValue: FirExpression? = null
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
returnType = returnType.transformSingle(transformer, data)
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
return super<FirAbstractNamedAnnotatedDeclaration>.transformChildren(transformer, data)
}
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.transformInplace
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.name.Name
@@ -27,9 +27,9 @@ class FirMemberFunctionImpl : FirAbstractCallableMember, FirNamedFunction, FirMo
psi: PsiElement?,
symbol: FirFunctionSymbol,
name: Name,
receiverType: FirType?,
returnType: FirType
) : super(session, psi, symbol, name, receiverType, returnType)
receiverTypeRef: FirTypeRef?,
returnTypeRef: FirTypeRef
) : super(session, psi, symbol, name, receiverTypeRef, returnTypeRef)
constructor(
session: FirSession,
@@ -47,11 +47,11 @@ class FirMemberFunctionImpl : FirAbstractCallableMember, FirNamedFunction, FirMo
isTailRec: Boolean,
isExternal: Boolean,
isSuspend: Boolean,
receiverType: FirType?,
returnType: FirType
receiverTypeRef: FirTypeRef?,
returnTypeRef: FirTypeRef
) : super(
session, psi, symbol, name, visibility, modality,
isExpect, isActual, isOverride, receiverType, returnType
isExpect, isActual, isOverride, receiverTypeRef, returnTypeRef
) {
status.isOperator = isOperator
status.isInfix = isInfix
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.name.Name
@@ -31,15 +31,15 @@ class FirMemberPropertyImpl(
isOverride: Boolean,
isConst: Boolean,
isLateInit: Boolean,
receiverType: FirType?,
returnType: FirType,
receiverTypeRef: FirTypeRef?,
returnTypeRef: FirTypeRef,
override val isVar: Boolean,
override var initializer: FirExpression?,
override var getter: FirPropertyAccessor,
override var setter: FirPropertyAccessor,
override var delegate: FirExpression?
) : FirAbstractCallableMember(
session, psi, symbol, name, visibility, modality, isExpect, isActual, isOverride, receiverType, returnType
session, psi, symbol, name, visibility, modality, isExpect, isActual, isOverride, receiverTypeRef, returnTypeRef
), FirProperty {
init {
status.isConst = isConst
@@ -7,10 +7,10 @@ package org.jetbrains.kotlin.fir.declarations.impl
import org.jetbrains.kotlin.fir.declarations.FirClass
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
interface FirModifiableClass : FirClass {
override val superTypes: MutableList<FirType>
override val superTypeRefs: MutableList<FirTypeRef>
override val declarations: MutableList<FirDeclaration>
}
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
class FirPrimaryConstructorImpl(
session: FirSession,
@@ -19,6 +19,6 @@ class FirPrimaryConstructorImpl(
visibility: Visibility,
isExpect: Boolean,
isActual: Boolean,
delegatedSelfType: FirType,
delegatedSelfTypeRef: FirTypeRef,
delegatedConstructor: FirDelegatedConstructorCall?
) : FirConstructorImpl(session, psi, symbol, visibility, isExpect, isActual, delegatedSelfType, delegatedConstructor)
) : FirConstructorImpl(session, psi, symbol, visibility, isExpect, isActual, delegatedSelfTypeRef, delegatedConstructor)
@@ -11,9 +11,8 @@ import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
import org.jetbrains.kotlin.fir.expressions.FirBlock
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirPropertyAccessorImpl(
@@ -21,14 +20,14 @@ class FirPropertyAccessorImpl(
psi: PsiElement?,
override val isGetter: Boolean,
visibility: Visibility,
override var returnType: FirType
override var returnTypeRef: FirTypeRef
) : FirAbstractFunction(session, psi), FirPropertyAccessor {
override var status = FirDeclarationStatusImpl(
session, visibility, Modality.FINAL
)
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
returnType = returnType.transformSingle(transformer, data)
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
status = status.transformSingle(transformer, data)
return super<FirAbstractFunction>.transformChildren(transformer, data)
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirTypeAlias
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.name.Name
@@ -25,7 +25,7 @@ class FirTypeAliasImpl(
visibility: Visibility,
isExpect: Boolean,
isActual: Boolean,
override var expandedType: FirType
override var expandedTypeRef: FirTypeRef
) : FirAbstractMemberDeclaration(session, psi, name, visibility, Modality.FINAL, isExpect, isActual), FirTypeAlias {
init {
@@ -33,7 +33,7 @@ class FirTypeAliasImpl(
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
expandedType = expandedType.transformSingle(transformer, data)
expandedTypeRef = expandedTypeRef.transformSingle(transformer, data)
return super<FirAbstractMemberDeclaration>.transformChildren(transformer, data)
}
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
import org.jetbrains.kotlin.fir.transformInplace
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.types.Variance
@@ -28,7 +28,7 @@ class FirTypeParameterImpl(
symbol.bind(this)
}
override val bounds = mutableListOf<FirType>()
override val bounds = mutableListOf<FirTypeRef>()
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
bounds.transformInplace(transformer, data)
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.fir.visitors.FirTransformer
@@ -19,14 +19,14 @@ class FirValueParameterImpl(
session: FirSession,
psi: PsiElement?,
name: Name,
override var returnType: FirType,
override var returnTypeRef: FirTypeRef,
override var defaultValue: FirExpression?,
override val isCrossinline: Boolean,
override val isNoinline: Boolean,
override val isVararg: Boolean
) : FirAbstractNamedAnnotatedDeclaration(session, psi, name), FirValueParameter {
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
returnType = returnType.transformSingle(transformer, data)
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
defaultValue = defaultValue?.transformSingle(transformer, data)
return super<FirAbstractNamedAnnotatedDeclaration>.transformChildren(transformer, data)
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirVariable
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.name.Name
@@ -19,13 +19,13 @@ class FirVariableImpl(
session: FirSession,
psiElement: PsiElement?,
name: Name,
override var returnType: FirType,
override var returnTypeRef: FirTypeRef,
override val isVar: Boolean,
override var initializer: FirExpression?,
override var delegate: FirExpression? = null
) : FirAbstractNamedAnnotatedDeclaration(session, psiElement, name), FirVariable {
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
returnType = returnType.transformSingle(transformer, data)
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
initializer = initializer?.transformSingle(transformer, data)
delegate = delegate?.transformSingle(transformer, data)
@@ -7,12 +7,12 @@ package org.jetbrains.kotlin.fir.expressions
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
import org.jetbrains.kotlin.fir.BaseTransformedType
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
@BaseTransformedType
interface FirAnnotationCall : FirCall {
val annotationType: FirType
val annotationTypeRef: FirTypeRef
// May be should be not-null (with correct default target)
val useSiteTarget: AnnotationUseSiteTarget?
@@ -21,7 +21,7 @@ interface FirAnnotationCall : FirCall {
visitor.visitAnnotationCall(this, data)
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
annotationType.accept(visitor, data)
annotationTypeRef.accept(visitor, data)
super.acceptChildren(visitor, data)
}
}
@@ -5,13 +5,12 @@
package org.jetbrains.kotlin.fir.expressions
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeProjectionContainer
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
interface FirDelegatedConstructorCall : FirCall {
// Do we need 'constructedType: FirType' here?
val constructedType: FirType
val constructedTypeRef: FirTypeRef
val isThis: Boolean
@@ -22,7 +21,7 @@ interface FirDelegatedConstructorCall : FirCall {
visitor.visitDelegatedConstructorCall(this, data)
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
constructedType.accept(visitor, data)
constructedTypeRef.accept(visitor, data)
super.acceptChildren(visitor, data)
}
}
@@ -5,20 +5,20 @@
package org.jetbrains.kotlin.fir.expressions
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
// is/!is/as/as?
interface FirTypeOperatorCall : FirOperatorCall {
val argument: FirExpression get() = arguments.first()
val type: FirType
val typeRef: FirTypeRef
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitTypeOperatorCall(this, data)
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
type.accept(visitor, data)
typeRef.accept(visitor, data)
super.acceptChildren(visitor, data)
}
}
@@ -11,17 +11,17 @@ import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirAnnotationCallImpl(
session: FirSession,
psi: PsiElement?,
override val useSiteTarget: AnnotationUseSiteTarget?,
override var annotationType: FirType
override var annotationTypeRef: FirTypeRef
) : FirAbstractCall(session, psi), FirAnnotationCall {
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
annotationType = annotationType.transformSingle(transformer, data)
annotationTypeRef = annotationTypeRef.transformSingle(transformer, data)
return super<FirAbstractCall>.transformChildren(transformer, data)
}
@@ -10,17 +10,17 @@ import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirDelegatedConstructorCallImpl(
session: FirSession,
psi: PsiElement?,
override var constructedType: FirType,
override var constructedTypeRef: FirTypeRef,
override val isThis: Boolean
) : FirAbstractCall(session, psi), FirDelegatedConstructorCall {
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
constructedType = constructedType.transformSingle(transformer, data)
constructedTypeRef = constructedTypeRef.transformSingle(transformer, data)
return super<FirAbstractCall>.transformChildren(transformer, data)
}
@@ -11,17 +11,17 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirOperation
import org.jetbrains.kotlin.fir.expressions.FirTypeOperatorCall
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirTypeOperatorCallImpl(
session: FirSession,
psi: PsiElement?,
override val operation: FirOperation,
override var type: FirType
override var typeRef: FirTypeRef
) : FirAbstractCall(session, psi), FirTypeOperatorCall {
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
type = type.transformSingle(transformer, data)
typeRef = typeRef.transformSingle(transformer, data)
return super<FirAbstractCall>.transformChildren(transformer, data)
}
}
@@ -7,16 +7,16 @@ package org.jetbrains.kotlin.fir.references
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirExplicitSuperReference(
session: FirSession,
psi: PsiElement?,
override var superType: FirType
override var superTypeRef: FirTypeRef
) : FirAbstractElement(session, psi), FirSuperReference {
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
superType = superType.transformSingle(transformer, data)
superTypeRef = superTypeRef.transformSingle(transformer, data)
return this
}
}
@@ -8,17 +8,17 @@ package org.jetbrains.kotlin.fir.types
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.visitors.FirVisitor
interface FirDelegatedType : FirType {
interface FirDelegatedTypeRef : FirTypeRef {
val delegate: FirExpression?
val type: FirType
val typeRef: FirTypeRef
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitDelegatedType(this, data)
visitor.visitDelegatedTypeRef(this, data)
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
super.acceptChildren(visitor, data)
delegate?.accept(visitor, data)
type.accept(visitor, data)
typeRef.accept(visitor, data)
}
}
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.types
import org.jetbrains.kotlin.fir.visitors.FirVisitor
interface FirDynamicType : FirTypeWithNullability {
interface FirDynamicTypeRef : FirTypeRefWithNullability {
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitDynamicType(this, data)
visitor.visitDynamicTypeRef(this, data)
}
@@ -7,9 +7,9 @@ package org.jetbrains.kotlin.fir.types
import org.jetbrains.kotlin.fir.visitors.FirVisitor
interface FirErrorType : FirType {
interface FirErrorTypeRef : FirTypeRef {
val reason: String
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitErrorType(this, data)
visitor.visitErrorTypeRef(this, data)
}
@@ -8,20 +8,20 @@ package org.jetbrains.kotlin.fir.types
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.visitors.FirVisitor
interface FirFunctionType : FirTypeWithNullability {
val receiverType: FirType?
interface FirFunctionTypeRef : FirTypeRefWithNullability {
val receiverTypeRef: FirTypeRef?
// May be it should inherit FirFunction?
val valueParameters: List<FirValueParameter>
val returnType: FirType
val returnTypeRef: FirTypeRef
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitFunctionType(this, data)
visitor.visitFunctionTypeRef(this, data)
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
receiverType?.accept(visitor, data)
returnType.accept(visitor, data)
receiverTypeRef?.accept(visitor, data)
returnTypeRef.accept(visitor, data)
super.acceptChildren(visitor, data)
for (parameter in valueParameters) {
parameter.accept(visitor, data)
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.types
import org.jetbrains.kotlin.fir.visitors.FirVisitor
interface FirImplicitType : FirType {
interface FirImplicitTypeRef : FirTypeRef {
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitImplicitType(this, data)
visitor.visitImplicitTypeRef(this, data)
}
@@ -8,17 +8,17 @@ package org.jetbrains.kotlin.fir.types
import org.jetbrains.kotlin.fir.VisitedSupertype
import org.jetbrains.kotlin.fir.visitors.FirVisitor
interface FirResolvedType : FirTypeWithNullability {
interface FirResolvedTypeRef : FirTypeRefWithNullability {
val type: ConeKotlinType
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitResolvedType(this, data)
visitor.visitResolvedTypeRef(this, data)
}
interface FirResolvedFunctionType : @VisitedSupertype FirResolvedType, FirFunctionType {
interface FirResolvedFunctionTypeRef : @VisitedSupertype FirResolvedTypeRef, FirFunctionTypeRef {
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitResolvedFunctionType(this, data)
visitor.visitResolvedFunctionTypeRef(this, data)
}
inline fun <reified T : ConeKotlinType> FirType.coneTypeUnsafe() = (this as FirResolvedType).type as T
inline fun <reified T : ConeKotlinType> FirType.coneTypeSafe() = (this as? FirResolvedType)?.type as? T
inline fun <reified T : ConeKotlinType> FirTypeRef.coneTypeUnsafe() = (this as FirResolvedTypeRef).type as T
inline fun <reified T : ConeKotlinType> FirTypeRef.coneTypeSafe() = (this as? FirResolvedTypeRef)?.type as? T
@@ -11,13 +11,13 @@ import org.jetbrains.kotlin.types.Variance
interface FirTypeProjectionWithVariance : FirTypeProjection {
val variance: Variance
val type: FirType
val typeRef: FirTypeRef
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitTypeProjectionWithVariance(this, data)
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
type.accept(visitor, data)
typeRef.accept(visitor, data)
super.acceptChildren(visitor, data)
}
}
@@ -11,9 +11,9 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationContainer
import org.jetbrains.kotlin.fir.visitors.FirVisitor
@BaseTransformedType
interface FirType : FirElement, FirAnnotationContainer {
interface FirTypeRef : FirElement, FirAnnotationContainer {
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitType(this, data)
visitor.visitTypeRef(this, data)
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
acceptAnnotations(visitor, data)
@@ -7,9 +7,9 @@ package org.jetbrains.kotlin.fir.types
import org.jetbrains.kotlin.fir.visitors.FirVisitor
interface FirTypeWithNullability : FirType {
interface FirTypeRefWithNullability : FirTypeRef {
val isMarkedNullable: Boolean
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitTypeWithNullability(this, data)
visitor.visitTypeRefWithNullability(this, data)
}
@@ -12,11 +12,11 @@ interface FirQualifierPart : FirTypeProjectionContainer {
val name: Name
}
interface FirUserType : FirTypeWithNullability {
interface FirUserTypeRef : FirTypeRefWithNullability {
val qualifier: List<FirQualifierPart>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitUserType(this, data)
visitor.visitUserTypeRef(this, data)
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
super.acceptChildren(visitor, data)
@@ -10,14 +10,14 @@ import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.transformInplace
import org.jetbrains.kotlin.fir.types.FirTypeWithNullability
import org.jetbrains.kotlin.fir.types.FirTypeRefWithNullability
import org.jetbrains.kotlin.fir.visitors.FirTransformer
abstract class FirAbstractAnnotatedType(
abstract class FirAbstractAnnotatedTypeRef(
final override val session: FirSession,
final override val psi: PsiElement?,
final override val isMarkedNullable: Boolean
) : FirTypeWithNullability {
) : FirTypeRefWithNullability {
override val annotations = mutableListOf<FirAnnotationCall>()
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
@@ -10,19 +10,19 @@ import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirDelegatedType
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirDelegatedTypeRef
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirDelegatedTypeImpl(
override var type: FirType,
class FirDelegatedTypeRefImpl(
override var typeRef: FirTypeRef,
override var delegate: FirExpression?
) : FirAbstractElement(type.session, type.psi), FirDelegatedType {
) : FirAbstractElement(typeRef.session, typeRef.psi), FirDelegatedTypeRef {
override val annotations: List<FirAnnotationCall>
get() = type.annotations
get() = typeRef.annotations
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
type = type.transformSingle(transformer, data)
typeRef = typeRef.transformSingle(transformer, data)
delegate = delegate?.transformSingle(transformer, data)
return this
@@ -7,10 +7,10 @@ package org.jetbrains.kotlin.fir.types.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.types.FirDynamicType
import org.jetbrains.kotlin.fir.types.FirDynamicTypeRef
class FirDynamicTypeImpl(
class FirDynamicTypeRefImpl(
session: FirSession,
psi: PsiElement?,
isNullable: Boolean
) : FirAbstractAnnotatedType(session, psi, isNullable), FirDynamicType
) : FirAbstractAnnotatedTypeRef(session, psi, isNullable), FirDynamicTypeRef
@@ -7,15 +7,15 @@ package org.jetbrains.kotlin.fir.types.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.types.FirErrorType
import org.jetbrains.kotlin.fir.types.FirErrorTypeRef
import org.jetbrains.kotlin.fir.visitors.FirVisitor
class FirErrorTypeImpl(
class FirErrorTypeRefImpl(
session: FirSession,
psi: PsiElement?,
override val reason: String
) : FirAbstractAnnotatedType(session, psi, false), FirErrorType {
) : FirAbstractAnnotatedTypeRef(session, psi, false), FirErrorTypeRef {
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R {
return super<FirErrorType>.accept(visitor, data)
return super<FirErrorTypeRef>.accept(visitor, data)
}
}
@@ -11,24 +11,24 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.transformInplace
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirFunctionType
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirFunctionTypeRef
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirFunctionTypeImpl(
class FirFunctionTypeRefImpl(
session: FirSession,
psi: PsiElement?,
isNullable: Boolean,
override var receiverType: FirType?,
override var returnType: FirType
) : FirAbstractAnnotatedType(session, psi, isNullable), FirFunctionType {
override var receiverTypeRef: FirTypeRef?,
override var returnTypeRef: FirTypeRef
) : FirAbstractAnnotatedTypeRef(session, psi, isNullable), FirFunctionTypeRef {
override val valueParameters = mutableListOf<FirValueParameter>()
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
receiverType = receiverType?.transformSingle(transformer, data)
returnType = returnType.transformSingle(transformer, data)
receiverTypeRef = receiverTypeRef?.transformSingle(transformer, data)
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
valueParameters.transformInplace(transformer, data)
return super<FirAbstractAnnotatedType>.transformChildren(transformer, data)
return super<FirAbstractAnnotatedTypeRef>.transformChildren(transformer, data)
}
}
@@ -9,32 +9,32 @@ import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.types.FirImplicitType
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
import org.jetbrains.kotlin.name.FqNameUnsafe
import org.jetbrains.kotlin.name.Name
sealed class FirImplicitBuiltinType(
sealed class FirImplicitBuiltinTypeRef(
override val session: FirSession,
override val psi: PsiElement?,
val name: Name
) : FirImplicitType {
) : FirImplicitTypeRef {
override val annotations: List<FirAnnotationCall>
get() = emptyList()
constructor(session: FirSession, psi: PsiElement?, name: FqNameUnsafe) : this(session, psi, name.shortName())
}
class FirImplicitUnitType(
class FirImplicitUnitTypeRef(
session: FirSession,
psi: PsiElement?
) : FirImplicitBuiltinType(session, psi, KotlinBuiltIns.FQ_NAMES.unit)
) : FirImplicitBuiltinTypeRef(session, psi, KotlinBuiltIns.FQ_NAMES.unit)
class FirImplicitAnyType(
class FirImplicitAnyTypeRef(
session: FirSession,
psi: PsiElement?
) : FirImplicitBuiltinType(session, psi, KotlinBuiltIns.FQ_NAMES.any)
) : FirImplicitBuiltinTypeRef(session, psi, KotlinBuiltIns.FQ_NAMES.any)
class FirImplicitEnumType(
class FirImplicitEnumTypeRef(
session: FirSession,
psi: PsiElement?
) : FirImplicitBuiltinType(session, psi, KotlinBuiltIns.FQ_NAMES._enum)
) : FirImplicitBuiltinTypeRef(session, psi, KotlinBuiltIns.FQ_NAMES._enum)
@@ -8,12 +8,12 @@ package org.jetbrains.kotlin.fir.types.impl
import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.types.FirImplicitType
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
class FirImplicitTypeImpl(
class FirImplicitTypeRefImpl(
override val session: FirSession,
override val psi: PsiElement?
) : FirImplicitType {
) : FirImplicitTypeRef {
override val annotations: List<FirAnnotationCall>
get() = emptyList()
}
@@ -13,24 +13,24 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.transformInplace
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirResolvedFunctionType
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirResolvedFunctionTypeRef
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirResolvedFunctionTypeImpl(
class FirResolvedFunctionTypeRefImpl(
override val psi: PsiElement?,
override val session: FirSession,
override val isMarkedNullable: Boolean,
override val annotations: MutableList<FirAnnotationCall>,
override var receiverType: FirType?,
override var receiverTypeRef: FirTypeRef?,
override val valueParameters: MutableList<FirValueParameter>,
override var returnType: FirType,
override var returnTypeRef: FirTypeRef,
override val type: ConeKotlinType
) : FirResolvedFunctionType {
) : FirResolvedFunctionTypeRef {
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
receiverType = receiverType?.transformSingle(transformer, data)
returnType = returnType.transformSingle(transformer, data)
receiverTypeRef = receiverTypeRef?.transformSingle(transformer, data)
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
valueParameters.transformInplace(transformer, data)
return this
@@ -9,12 +9,12 @@ import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirResolvedType
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
class FirResolvedTypeImpl(
class FirResolvedTypeRefImpl(
override val session: FirSession,
override val psi: PsiElement?,
override val type: ConeKotlinType,
override val isMarkedNullable: Boolean,
override val annotations: List<FirAnnotationCall>
) : FirResolvedType
) : FirResolvedTypeRef
@@ -9,7 +9,7 @@ import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.transformSingle
import org.jetbrains.kotlin.fir.types.FirType
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.FirTypeProjectionWithVariance
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.types.Variance
@@ -18,10 +18,10 @@ class FirTypeProjectionWithVarianceImpl(
override val session: FirSession,
override val psi: PsiElement?,
override val variance: Variance,
override var type: FirType
override var typeRef: FirTypeRef
) : FirTypeProjectionWithVariance {
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
type = type.transformSingle(transformer, data)
typeRef = typeRef.transformSingle(transformer, data)
return this
}
@@ -11,14 +11,14 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.transformInplace
import org.jetbrains.kotlin.fir.types.FirQualifierPart
import org.jetbrains.kotlin.fir.types.FirTypeProjection
import org.jetbrains.kotlin.fir.types.FirUserType
import org.jetbrains.kotlin.fir.types.FirUserTypeRef
import org.jetbrains.kotlin.fir.visitors.FirTransformer
class FirUserTypeImpl(
class FirUserTypeRefImpl(
session: FirSession,
psi: PsiElement?,
isNullable: Boolean
) : FirAbstractAnnotatedType(session, psi, isNullable), FirUserType {
) : FirAbstractAnnotatedTypeRef(session, psi, isNullable), FirUserTypeRef {
override val qualifier = mutableListOf<FirQualifierPart>()
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
@@ -26,6 +26,6 @@ class FirUserTypeImpl(
(part.typeArguments as MutableList<FirTypeProjection>).transformInplace(transformer, data)
}
return super<FirAbstractAnnotatedType>.transformChildren(transformer, data)
return super<FirAbstractAnnotatedTypeRef>.transformChildren(transformer, data)
}
}
@@ -300,46 +300,6 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformTargetElement(labeledElement, data)
}
open fun transformType(type: FirType, data: D): CompositeTransformResult<FirType> {
return transformElement(type, data)
}
open fun transformDelegatedType(delegatedType: FirDelegatedType, data: D): CompositeTransformResult<FirType> {
return transformType(delegatedType, data)
}
open fun transformErrorType(errorType: FirErrorType, data: D): CompositeTransformResult<FirType> {
return transformType(errorType, data)
}
open fun transformImplicitType(implicitType: FirImplicitType, data: D): CompositeTransformResult<FirType> {
return transformType(implicitType, data)
}
open fun transformTypeWithNullability(typeWithNullability: FirTypeWithNullability, data: D): CompositeTransformResult<FirType> {
return transformType(typeWithNullability, data)
}
open fun transformDynamicType(dynamicType: FirDynamicType, data: D): CompositeTransformResult<FirType> {
return transformTypeWithNullability(dynamicType, data)
}
open fun transformFunctionType(functionType: FirFunctionType, data: D): CompositeTransformResult<FirType> {
return transformTypeWithNullability(functionType, data)
}
open fun transformResolvedType(resolvedType: FirResolvedType, data: D): CompositeTransformResult<FirType> {
return transformTypeWithNullability(resolvedType, data)
}
open fun transformResolvedFunctionType(resolvedFunctionType: FirResolvedFunctionType, data: D): CompositeTransformResult<FirType> {
return transformResolvedType(resolvedFunctionType, data)
}
open fun transformUserType(userType: FirUserType, data: D): CompositeTransformResult<FirType> {
return transformTypeWithNullability(userType, data)
}
open fun transformTypeProjection(typeProjection: FirTypeProjection, data: D): CompositeTransformResult<FirTypeProjection> {
return transformElement(typeProjection, data)
}
@@ -352,6 +312,46 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformTypeProjection(typeProjectionWithVariance, data)
}
open fun transformTypeRef(typeRef: FirTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformElement(typeRef, data)
}
open fun transformDelegatedTypeRef(delegatedTypeRef: FirDelegatedTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformTypeRef(delegatedTypeRef, data)
}
open fun transformErrorTypeRef(errorTypeRef: FirErrorTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformTypeRef(errorTypeRef, data)
}
open fun transformImplicitTypeRef(implicitTypeRef: FirImplicitTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformTypeRef(implicitTypeRef, data)
}
open fun transformTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability, data: D): CompositeTransformResult<FirTypeRef> {
return transformTypeRef(typeRefWithNullability, data)
}
open fun transformDynamicTypeRef(dynamicTypeRef: FirDynamicTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformTypeRefWithNullability(dynamicTypeRef, data)
}
open fun transformFunctionTypeRef(functionTypeRef: FirFunctionTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformTypeRefWithNullability(functionTypeRef, data)
}
open fun transformResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformTypeRefWithNullability(resolvedTypeRef, data)
}
open fun transformResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformResolvedTypeRef(resolvedFunctionTypeRef, data)
}
open fun transformUserTypeRef(userTypeRef: FirUserTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformTypeRefWithNullability(userTypeRef, data)
}
open fun <E : FirElement> transformWhenBranch(whenBranch: E, data: D): CompositeTransformResult<E> {
return transformElement(whenBranch, data)
}
@@ -448,16 +448,16 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformDelegatedConstructorCall(delegatedConstructorCall, data)
}
final override fun visitDelegatedType(delegatedType: FirDelegatedType, data: D): CompositeTransformResult<FirElement> {
return transformDelegatedType(delegatedType, data)
final override fun visitDelegatedTypeRef(delegatedTypeRef: FirDelegatedTypeRef, data: D): CompositeTransformResult<FirElement> {
return transformDelegatedTypeRef(delegatedTypeRef, data)
}
final override fun visitDoWhileLoop(doWhileLoop: FirDoWhileLoop, data: D): CompositeTransformResult<FirElement> {
return transformDoWhileLoop(doWhileLoop, data)
}
final override fun visitDynamicType(dynamicType: FirDynamicType, data: D): CompositeTransformResult<FirElement> {
return transformDynamicType(dynamicType, data)
final override fun visitDynamicTypeRef(dynamicTypeRef: FirDynamicTypeRef, data: D): CompositeTransformResult<FirElement> {
return transformDynamicTypeRef(dynamicTypeRef, data)
}
final override fun visitEnumEntry(enumEntry: FirEnumEntry, data: D): CompositeTransformResult<FirElement> {
@@ -472,8 +472,8 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformErrorExpression(errorExpression, data)
}
final override fun visitErrorType(errorType: FirErrorType, data: D): CompositeTransformResult<FirElement> {
return transformErrorType(errorType, data)
final override fun visitErrorTypeRef(errorTypeRef: FirErrorTypeRef, data: D): CompositeTransformResult<FirElement> {
return transformErrorTypeRef(errorTypeRef, data)
}
final override fun visitExpression(expression: FirExpression, data: D): CompositeTransformResult<FirElement> {
@@ -492,16 +492,16 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformFunctionCall(functionCall, data)
}
final override fun visitFunctionType(functionType: FirFunctionType, data: D): CompositeTransformResult<FirElement> {
return transformFunctionType(functionType, data)
final override fun visitFunctionTypeRef(functionTypeRef: FirFunctionTypeRef, data: D): CompositeTransformResult<FirElement> {
return transformFunctionTypeRef(functionTypeRef, data)
}
final override fun visitGetClassCall(getClassCall: FirGetClassCall, data: D): CompositeTransformResult<FirElement> {
return transformGetClassCall(getClassCall, data)
}
final override fun visitImplicitType(implicitType: FirImplicitType, data: D): CompositeTransformResult<FirElement> {
return transformImplicitType(implicitType, data)
final override fun visitImplicitTypeRef(implicitTypeRef: FirImplicitTypeRef, data: D): CompositeTransformResult<FirElement> {
return transformImplicitTypeRef(implicitTypeRef, data)
}
final override fun visitImport(import: FirImport, data: D): CompositeTransformResult<FirElement> {
@@ -592,16 +592,16 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformResolvedDeclarationStatus(resolvedDeclarationStatus, data)
}
final override fun visitResolvedFunctionType(resolvedFunctionType: FirResolvedFunctionType, data: D): CompositeTransformResult<FirElement> {
return transformResolvedFunctionType(resolvedFunctionType, data)
final override fun visitResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef, data: D): CompositeTransformResult<FirElement> {
return transformResolvedFunctionTypeRef(resolvedFunctionTypeRef, data)
}
final override fun visitResolvedImport(resolvedImport: FirResolvedImport, data: D): CompositeTransformResult<FirElement> {
return transformResolvedImport(resolvedImport, data)
}
final override fun visitResolvedType(resolvedType: FirResolvedType, data: D): CompositeTransformResult<FirElement> {
return transformResolvedType(resolvedType, data)
final override fun visitResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef, data: D): CompositeTransformResult<FirElement> {
return transformResolvedTypeRef(resolvedTypeRef, data)
}
final override fun visitReturnExpression(returnExpression: FirReturnExpression, data: D): CompositeTransformResult<FirElement> {
@@ -636,10 +636,6 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformTryExpression(tryExpression, data)
}
final override fun visitType(type: FirType, data: D): CompositeTransformResult<FirElement> {
return transformType(type, data)
}
final override fun visitTypeAlias(typeAlias: FirTypeAlias, data: D): CompositeTransformResult<FirElement> {
return transformTypeAlias(typeAlias, data)
}
@@ -660,16 +656,20 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformTypeProjectionWithVariance(typeProjectionWithVariance, data)
}
final override fun visitTypeWithNullability(typeWithNullability: FirTypeWithNullability, data: D): CompositeTransformResult<FirElement> {
return transformTypeWithNullability(typeWithNullability, data)
final override fun visitTypeRef(typeRef: FirTypeRef, data: D): CompositeTransformResult<FirElement> {
return transformTypeRef(typeRef, data)
}
final override fun visitTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability, data: D): CompositeTransformResult<FirElement> {
return transformTypeRefWithNullability(typeRefWithNullability, data)
}
final override fun visitTypedDeclaration(typedDeclaration: FirTypedDeclaration, data: D): CompositeTransformResult<FirElement> {
return transformTypedDeclaration(typedDeclaration, data)
}
final override fun visitUserType(userType: FirUserType, data: D): CompositeTransformResult<FirElement> {
return transformUserType(userType, data)
final override fun visitUserTypeRef(userTypeRef: FirUserTypeRef, data: D): CompositeTransformResult<FirElement> {
return transformUserTypeRef(userTypeRef, data)
}
final override fun visitValueParameter(valueParameter: FirValueParameter, data: D): CompositeTransformResult<FirElement> {
@@ -300,46 +300,6 @@ abstract class FirVisitor<out R, in D> {
return visitTargetElement(labeledElement, data)
}
open fun visitType(type: FirType, data: D): R {
return visitElement(type, data)
}
open fun visitDelegatedType(delegatedType: FirDelegatedType, data: D): R {
return visitType(delegatedType, data)
}
open fun visitErrorType(errorType: FirErrorType, data: D): R {
return visitType(errorType, data)
}
open fun visitImplicitType(implicitType: FirImplicitType, data: D): R {
return visitType(implicitType, data)
}
open fun visitTypeWithNullability(typeWithNullability: FirTypeWithNullability, data: D): R {
return visitType(typeWithNullability, data)
}
open fun visitDynamicType(dynamicType: FirDynamicType, data: D): R {
return visitTypeWithNullability(dynamicType, data)
}
open fun visitFunctionType(functionType: FirFunctionType, data: D): R {
return visitTypeWithNullability(functionType, data)
}
open fun visitResolvedType(resolvedType: FirResolvedType, data: D): R {
return visitTypeWithNullability(resolvedType, data)
}
open fun visitResolvedFunctionType(resolvedFunctionType: FirResolvedFunctionType, data: D): R {
return visitResolvedType(resolvedFunctionType, data)
}
open fun visitUserType(userType: FirUserType, data: D): R {
return visitTypeWithNullability(userType, data)
}
open fun visitTypeProjection(typeProjection: FirTypeProjection, data: D): R {
return visitElement(typeProjection, data)
}
@@ -352,6 +312,46 @@ abstract class FirVisitor<out R, in D> {
return visitTypeProjection(typeProjectionWithVariance, data)
}
open fun visitTypeRef(typeRef: FirTypeRef, data: D): R {
return visitElement(typeRef, data)
}
open fun visitDelegatedTypeRef(delegatedTypeRef: FirDelegatedTypeRef, data: D): R {
return visitTypeRef(delegatedTypeRef, data)
}
open fun visitErrorTypeRef(errorTypeRef: FirErrorTypeRef, data: D): R {
return visitTypeRef(errorTypeRef, data)
}
open fun visitImplicitTypeRef(implicitTypeRef: FirImplicitTypeRef, data: D): R {
return visitTypeRef(implicitTypeRef, data)
}
open fun visitTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability, data: D): R {
return visitTypeRef(typeRefWithNullability, data)
}
open fun visitDynamicTypeRef(dynamicTypeRef: FirDynamicTypeRef, data: D): R {
return visitTypeRefWithNullability(dynamicTypeRef, data)
}
open fun visitFunctionTypeRef(functionTypeRef: FirFunctionTypeRef, data: D): R {
return visitTypeRefWithNullability(functionTypeRef, data)
}
open fun visitResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef, data: D): R {
return visitTypeRefWithNullability(resolvedTypeRef, data)
}
open fun visitResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef, data: D): R {
return visitResolvedTypeRef(resolvedFunctionTypeRef, data)
}
open fun visitUserTypeRef(userTypeRef: FirUserTypeRef, data: D): R {
return visitTypeRefWithNullability(userTypeRef, data)
}
open fun visitWhenBranch(whenBranch: FirWhenBranch, data: D): R {
return visitElement(whenBranch, data)
}
@@ -300,46 +300,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitTargetElement(labeledElement, null)
}
open fun visitType(type: FirType) {
visitElement(type, null)
}
open fun visitDelegatedType(delegatedType: FirDelegatedType) {
visitType(delegatedType, null)
}
open fun visitErrorType(errorType: FirErrorType) {
visitType(errorType, null)
}
open fun visitImplicitType(implicitType: FirImplicitType) {
visitType(implicitType, null)
}
open fun visitTypeWithNullability(typeWithNullability: FirTypeWithNullability) {
visitType(typeWithNullability, null)
}
open fun visitDynamicType(dynamicType: FirDynamicType) {
visitTypeWithNullability(dynamicType, null)
}
open fun visitFunctionType(functionType: FirFunctionType) {
visitTypeWithNullability(functionType, null)
}
open fun visitResolvedType(resolvedType: FirResolvedType) {
visitTypeWithNullability(resolvedType, null)
}
open fun visitResolvedFunctionType(resolvedFunctionType: FirResolvedFunctionType) {
visitResolvedType(resolvedFunctionType, null)
}
open fun visitUserType(userType: FirUserType) {
visitTypeWithNullability(userType, null)
}
open fun visitTypeProjection(typeProjection: FirTypeProjection) {
visitElement(typeProjection, null)
}
@@ -352,6 +312,46 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitTypeProjection(typeProjectionWithVariance, null)
}
open fun visitTypeRef(typeRef: FirTypeRef) {
visitElement(typeRef, null)
}
open fun visitDelegatedTypeRef(delegatedTypeRef: FirDelegatedTypeRef) {
visitTypeRef(delegatedTypeRef, null)
}
open fun visitErrorTypeRef(errorTypeRef: FirErrorTypeRef) {
visitTypeRef(errorTypeRef, null)
}
open fun visitImplicitTypeRef(implicitTypeRef: FirImplicitTypeRef) {
visitTypeRef(implicitTypeRef, null)
}
open fun visitTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability) {
visitTypeRef(typeRefWithNullability, null)
}
open fun visitDynamicTypeRef(dynamicTypeRef: FirDynamicTypeRef) {
visitTypeRefWithNullability(dynamicTypeRef, null)
}
open fun visitFunctionTypeRef(functionTypeRef: FirFunctionTypeRef) {
visitTypeRefWithNullability(functionTypeRef, null)
}
open fun visitResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef) {
visitTypeRefWithNullability(resolvedTypeRef, null)
}
open fun visitResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef) {
visitResolvedTypeRef(resolvedFunctionTypeRef, null)
}
open fun visitUserTypeRef(userTypeRef: FirUserTypeRef) {
visitTypeRefWithNullability(userTypeRef, null)
}
open fun visitWhenBranch(whenBranch: FirWhenBranch) {
visitElement(whenBranch, null)
}
@@ -448,16 +448,16 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitDelegatedConstructorCall(delegatedConstructorCall)
}
final override fun visitDelegatedType(delegatedType: FirDelegatedType, data: Nothing?) {
visitDelegatedType(delegatedType)
final override fun visitDelegatedTypeRef(delegatedTypeRef: FirDelegatedTypeRef, data: Nothing?) {
visitDelegatedTypeRef(delegatedTypeRef)
}
final override fun visitDoWhileLoop(doWhileLoop: FirDoWhileLoop, data: Nothing?) {
visitDoWhileLoop(doWhileLoop)
}
final override fun visitDynamicType(dynamicType: FirDynamicType, data: Nothing?) {
visitDynamicType(dynamicType)
final override fun visitDynamicTypeRef(dynamicTypeRef: FirDynamicTypeRef, data: Nothing?) {
visitDynamicTypeRef(dynamicTypeRef)
}
final override fun visitEnumEntry(enumEntry: FirEnumEntry, data: Nothing?) {
@@ -472,8 +472,8 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitErrorExpression(errorExpression)
}
final override fun visitErrorType(errorType: FirErrorType, data: Nothing?) {
visitErrorType(errorType)
final override fun visitErrorTypeRef(errorTypeRef: FirErrorTypeRef, data: Nothing?) {
visitErrorTypeRef(errorTypeRef)
}
final override fun visitExpression(expression: FirExpression, data: Nothing?) {
@@ -492,16 +492,16 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitFunctionCall(functionCall)
}
final override fun visitFunctionType(functionType: FirFunctionType, data: Nothing?) {
visitFunctionType(functionType)
final override fun visitFunctionTypeRef(functionTypeRef: FirFunctionTypeRef, data: Nothing?) {
visitFunctionTypeRef(functionTypeRef)
}
final override fun visitGetClassCall(getClassCall: FirGetClassCall, data: Nothing?) {
visitGetClassCall(getClassCall)
}
final override fun visitImplicitType(implicitType: FirImplicitType, data: Nothing?) {
visitImplicitType(implicitType)
final override fun visitImplicitTypeRef(implicitTypeRef: FirImplicitTypeRef, data: Nothing?) {
visitImplicitTypeRef(implicitTypeRef)
}
final override fun visitImport(import: FirImport, data: Nothing?) {
@@ -592,16 +592,16 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitResolvedDeclarationStatus(resolvedDeclarationStatus)
}
final override fun visitResolvedFunctionType(resolvedFunctionType: FirResolvedFunctionType, data: Nothing?) {
visitResolvedFunctionType(resolvedFunctionType)
final override fun visitResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef, data: Nothing?) {
visitResolvedFunctionTypeRef(resolvedFunctionTypeRef)
}
final override fun visitResolvedImport(resolvedImport: FirResolvedImport, data: Nothing?) {
visitResolvedImport(resolvedImport)
}
final override fun visitResolvedType(resolvedType: FirResolvedType, data: Nothing?) {
visitResolvedType(resolvedType)
final override fun visitResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef, data: Nothing?) {
visitResolvedTypeRef(resolvedTypeRef)
}
final override fun visitReturnExpression(returnExpression: FirReturnExpression, data: Nothing?) {
@@ -636,10 +636,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitTryExpression(tryExpression)
}
final override fun visitType(type: FirType, data: Nothing?) {
visitType(type)
}
final override fun visitTypeAlias(typeAlias: FirTypeAlias, data: Nothing?) {
visitTypeAlias(typeAlias)
}
@@ -660,16 +656,20 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitTypeProjectionWithVariance(typeProjectionWithVariance)
}
final override fun visitTypeWithNullability(typeWithNullability: FirTypeWithNullability, data: Nothing?) {
visitTypeWithNullability(typeWithNullability)
final override fun visitTypeRef(typeRef: FirTypeRef, data: Nothing?) {
visitTypeRef(typeRef)
}
final override fun visitTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability, data: Nothing?) {
visitTypeRefWithNullability(typeRefWithNullability)
}
final override fun visitTypedDeclaration(typedDeclaration: FirTypedDeclaration, data: Nothing?) {
visitTypedDeclaration(typedDeclaration)
}
final override fun visitUserType(userType: FirUserType, data: Nothing?) {
visitUserType(userType)
final override fun visitUserTypeRef(userTypeRef: FirUserTypeRef, data: Nothing?) {
visitUserTypeRef(userTypeRef)
}
final override fun visitValueParameter(valueParameter: FirValueParameter, data: Nothing?) {