[FIR] Get rid of FirResolvedFunctionTypeRef

This commit is contained in:
Dmitriy Novozhilov
2020-09-14 14:46:31 +03:00
parent edab50ac61
commit 93d63f7c66
25 changed files with 39 additions and 257 deletions
@@ -7,12 +7,12 @@ package org.jetbrains.kotlin.fir.resolve.transformers
import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic
import org.jetbrains.kotlin.fir.diagnostics.ConeUnexpectedTypeArgumentsError
import org.jetbrains.kotlin.fir.resolve.typeResolver
import org.jetbrains.kotlin.fir.scopes.FirScope
import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.fir.types.builder.buildErrorTypeRef
import org.jetbrains.kotlin.fir.types.builder.buildResolvedFunctionTypeRef
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult
import org.jetbrains.kotlin.fir.visitors.compose
@@ -45,15 +45,19 @@ class FirSpecificTypeResolverTransformer(
override fun transformFunctionTypeRef(functionTypeRef: FirFunctionTypeRef, data: FirScope): CompositeTransformResult<FirTypeRef> {
functionTypeRef.transformChildren(this, data)
return buildResolvedFunctionTypeRef {
source = functionTypeRef.source
type = typeResolver.resolveType(functionTypeRef, data, areBareTypesAllowed).takeIfAcceptable() ?: return functionTypeRef.compose()
isMarkedNullable = functionTypeRef.isMarkedNullable
isSuspend = functionTypeRef.isSuspend
receiverTypeRef = functionTypeRef.receiverTypeRef
returnTypeRef = functionTypeRef.returnTypeRef
annotations += functionTypeRef.annotations
valueParameters += functionTypeRef.valueParameters
val resolvedType = typeResolver.resolveType(functionTypeRef, data, areBareTypesAllowed).takeIfAcceptable()
return if (resolvedType != null && resolvedType !is ConeClassErrorType) {
buildResolvedTypeRef {
source = functionTypeRef.source
type = resolvedType
annotations += functionTypeRef.annotations
}
} else {
buildErrorTypeRef {
source = functionTypeRef.source
diagnostic = (resolvedType as? ConeClassErrorType)?.diagnostic
?: ConeSimpleDiagnostic("Unresolved functional type: ${functionTypeRef.render()}")
}
}.compose()
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.fir.types
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.visitors.*
@@ -15,7 +14,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirComposedSuperTypeRef : FirPureAbstractElement(), FirTypeRef {
abstract class FirComposedSuperTypeRef : FirTypeRef() {
abstract override val source: FirSourceElement?
abstract override val annotations: List<FirAnnotationCall>
abstract val superTypeRefs: List<FirResolvedTypeRef>
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.fir.types
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.visitors.*
@@ -15,7 +14,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirDynamicTypeRef : FirPureAbstractElement(), FirTypeRefWithNullability {
abstract class FirDynamicTypeRef : FirTypeRefWithNullability() {
abstract override val source: FirSourceElement?
abstract override val annotations: List<FirAnnotationCall>
abstract override val isMarkedNullable: Boolean
@@ -15,16 +15,16 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
interface FirFunctionTypeRef : FirTypeRefWithNullability {
override val source: FirSourceElement?
override val annotations: List<FirAnnotationCall>
override val isMarkedNullable: Boolean
val receiverTypeRef: FirTypeRef?
val valueParameters: List<FirValueParameter>
val returnTypeRef: FirTypeRef
val isSuspend: Boolean
abstract class FirFunctionTypeRef : FirTypeRefWithNullability() {
abstract override val source: FirSourceElement?
abstract override val annotations: List<FirAnnotationCall>
abstract override val isMarkedNullable: Boolean
abstract val receiverTypeRef: FirTypeRef?
abstract val valueParameters: List<FirValueParameter>
abstract val returnTypeRef: FirTypeRef
abstract val isSuspend: Boolean
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitFunctionTypeRef(this, data)
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirFunctionTypeRef
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirFunctionTypeRef
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.fir.types
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.visitors.*
@@ -15,7 +14,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirImplicitTypeRef : FirPureAbstractElement(), FirTypeRef {
abstract class FirImplicitTypeRef : FirTypeRef() {
abstract override val source: FirSourceElement?
abstract override val annotations: List<FirAnnotationCall>
@@ -1,32 +0,0 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.types
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirResolvedFunctionTypeRef : FirResolvedTypeRef(), FirFunctionTypeRef {
abstract override val source: FirSourceElement?
abstract override val annotations: List<FirAnnotationCall>
abstract override val type: ConeKotlinType
abstract override val delegatedTypeRef: FirTypeRef?
abstract override val isMarkedNullable: Boolean
abstract override val receiverTypeRef: FirTypeRef?
abstract override val valueParameters: List<FirValueParameter>
abstract override val returnTypeRef: FirTypeRef
abstract override val isSuspend: Boolean
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitResolvedFunctionTypeRef(this, data)
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirResolvedFunctionTypeRef
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.fir.types
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.visitors.*
@@ -15,7 +14,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirResolvedTypeRef : FirPureAbstractElement(), FirTypeRef {
abstract class FirResolvedTypeRef : FirTypeRef() {
abstract override val source: FirSourceElement?
abstract override val annotations: List<FirAnnotationCall>
abstract val type: ConeKotlinType
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.fir.types
import org.jetbrains.kotlin.fir.FirAnnotationContainer
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.visitors.*
@@ -15,11 +16,11 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
interface FirTypeRef : FirAnnotationContainer {
override val source: FirSourceElement?
override val annotations: List<FirAnnotationCall>
abstract class FirTypeRef : FirPureAbstractElement(), FirAnnotationContainer {
abstract override val source: FirSourceElement?
abstract override val annotations: List<FirAnnotationCall>
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitTypeRef(this, data)
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirTypeRef
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirTypeRef
}
@@ -14,12 +14,12 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
interface FirTypeRefWithNullability : FirTypeRef {
override val source: FirSourceElement?
override val annotations: List<FirAnnotationCall>
val isMarkedNullable: Boolean
abstract class FirTypeRefWithNullability : FirTypeRef() {
abstract override val source: FirSourceElement?
abstract override val annotations: List<FirAnnotationCall>
abstract val isMarkedNullable: Boolean
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitTypeRefWithNullability(this, data)
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirTypeRefWithNullability
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirTypeRefWithNullability
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.fir.types
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.visitors.*
@@ -15,7 +14,7 @@ import org.jetbrains.kotlin.fir.visitors.*
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirUserTypeRef : FirPureAbstractElement(), FirTypeRefWithNullability {
abstract class FirUserTypeRef : FirTypeRefWithNullability() {
abstract override val source: FirSourceElement?
abstract override val annotations: List<FirAnnotationCall>
abstract override val isMarkedNullable: Boolean
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.fir.types.builder
import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
@@ -1,74 +0,0 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.types.builder
import kotlin.contracts.*
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirResolvedFunctionTypeRef
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirResolvedFunctionTypeRefImpl
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
@FirBuilderDsl
class FirResolvedFunctionTypeRefBuilder : FirAnnotationContainerBuilder {
override var source: FirSourceElement? = null
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
lateinit var type: ConeKotlinType
var isMarkedNullable: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
var receiverTypeRef: FirTypeRef? = null
val valueParameters: MutableList<FirValueParameter> = mutableListOf()
lateinit var returnTypeRef: FirTypeRef
var isSuspend: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
override fun build(): FirResolvedFunctionTypeRef {
return FirResolvedFunctionTypeRefImpl(
source,
annotations,
type,
isMarkedNullable,
receiverTypeRef,
valueParameters,
returnTypeRef,
isSuspend,
)
}
}
@OptIn(ExperimentalContracts::class)
inline fun buildResolvedFunctionTypeRef(init: FirResolvedFunctionTypeRefBuilder.() -> Unit): FirResolvedFunctionTypeRef {
contract {
callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE)
}
return FirResolvedFunctionTypeRefBuilder().apply(init).build()
}
@OptIn(ExperimentalContracts::class)
inline fun buildResolvedFunctionTypeRefCopy(original: FirResolvedFunctionTypeRef, init: FirResolvedFunctionTypeRefBuilder.() -> Unit): FirResolvedFunctionTypeRef {
contract {
callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE)
}
val copyBuilder = FirResolvedFunctionTypeRefBuilder()
copyBuilder.source = original.source
copyBuilder.annotations.addAll(original.annotations)
copyBuilder.type = original.type
copyBuilder.isMarkedNullable = original.isMarkedNullable
copyBuilder.receiverTypeRef = original.receiverTypeRef
copyBuilder.valueParameters.addAll(original.valueParameters)
copyBuilder.returnTypeRef = original.returnTypeRef
copyBuilder.isSuspend = original.isSuspend
return copyBuilder.apply(init).build()
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.fir.types.impl
import org.jetbrains.kotlin.fir.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
@@ -26,7 +25,7 @@ internal class FirFunctionTypeRefImpl(
override val valueParameters: MutableList<FirValueParameter>,
override var returnTypeRef: FirTypeRef,
override val isSuspend: Boolean,
) : FirPureAbstractElement(), FirFunctionTypeRef {
) : FirFunctionTypeRef() {
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
annotations.forEach { it.accept(visitor, data) }
receiverTypeRef?.accept(visitor, data)
@@ -1,52 +0,0 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.fir.types.impl
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.FirResolvedFunctionTypeRef
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
internal class FirResolvedFunctionTypeRefImpl(
override val source: FirSourceElement?,
override val annotations: MutableList<FirAnnotationCall>,
override val type: ConeKotlinType,
override val isMarkedNullable: Boolean,
override var receiverTypeRef: FirTypeRef?,
override val valueParameters: MutableList<FirValueParameter>,
override var returnTypeRef: FirTypeRef,
override val isSuspend: Boolean,
) : FirResolvedFunctionTypeRef() {
override val delegatedTypeRef: FirTypeRef? get() = null
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
annotations.forEach { it.accept(visitor, data) }
receiverTypeRef?.accept(visitor, data)
valueParameters.forEach { it.accept(visitor, data) }
returnTypeRef.accept(visitor, data)
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirResolvedFunctionTypeRefImpl {
transformAnnotations(transformer, data)
receiverTypeRef = receiverTypeRef?.transformSingle(transformer, data)
valueParameters.transformInplace(transformer, data)
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
return this
}
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirResolvedFunctionTypeRefImpl {
annotations.transformInplace(transformer, data)
return this
}
}
@@ -123,7 +123,6 @@ import org.jetbrains.kotlin.fir.types.FirTypeRefWithNullability
import org.jetbrains.kotlin.fir.types.FirUserTypeRef
import org.jetbrains.kotlin.fir.types.FirDynamicTypeRef
import org.jetbrains.kotlin.fir.types.FirFunctionTypeRef
import org.jetbrains.kotlin.fir.types.FirResolvedFunctionTypeRef
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
import org.jetbrains.kotlin.fir.types.FirComposedSuperTypeRef
import org.jetbrains.kotlin.fir.contracts.FirEffectDeclaration
@@ -610,10 +609,6 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformElement(functionTypeRef, data)
}
open fun transformResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformElement(resolvedFunctionTypeRef, data)
}
open fun transformImplicitTypeRef(implicitTypeRef: FirImplicitTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformElement(implicitTypeRef, data)
}
@@ -1114,10 +1109,6 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformFunctionTypeRef(functionTypeRef, data)
}
final override fun visitResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformResolvedFunctionTypeRef(resolvedFunctionTypeRef, data)
}
final override fun visitImplicitTypeRef(implicitTypeRef: FirImplicitTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformImplicitTypeRef(implicitTypeRef, data)
}
@@ -123,7 +123,6 @@ import org.jetbrains.kotlin.fir.types.FirTypeRefWithNullability
import org.jetbrains.kotlin.fir.types.FirUserTypeRef
import org.jetbrains.kotlin.fir.types.FirDynamicTypeRef
import org.jetbrains.kotlin.fir.types.FirFunctionTypeRef
import org.jetbrains.kotlin.fir.types.FirResolvedFunctionTypeRef
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
import org.jetbrains.kotlin.fir.types.FirComposedSuperTypeRef
import org.jetbrains.kotlin.fir.contracts.FirEffectDeclaration
@@ -374,8 +373,6 @@ abstract class FirVisitor<out R, in D> {
open fun visitFunctionTypeRef(functionTypeRef: FirFunctionTypeRef, data: D): R = visitElement(functionTypeRef, data)
open fun visitResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef, data: D): R = visitElement(resolvedFunctionTypeRef, data)
open fun visitImplicitTypeRef(implicitTypeRef: FirImplicitTypeRef, data: D): R = visitElement(implicitTypeRef, data)
open fun visitComposedSuperTypeRef(composedSuperTypeRef: FirComposedSuperTypeRef, data: D): R = visitElement(composedSuperTypeRef, data)
@@ -123,7 +123,6 @@ import org.jetbrains.kotlin.fir.types.FirTypeRefWithNullability
import org.jetbrains.kotlin.fir.types.FirUserTypeRef
import org.jetbrains.kotlin.fir.types.FirDynamicTypeRef
import org.jetbrains.kotlin.fir.types.FirFunctionTypeRef
import org.jetbrains.kotlin.fir.types.FirResolvedFunctionTypeRef
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
import org.jetbrains.kotlin.fir.types.FirComposedSuperTypeRef
import org.jetbrains.kotlin.fir.contracts.FirEffectDeclaration
@@ -608,10 +607,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitElement(functionTypeRef)
}
open fun visitResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef) {
visitElement(resolvedFunctionTypeRef)
}
open fun visitImplicitTypeRef(implicitTypeRef: FirImplicitTypeRef) {
visitElement(implicitTypeRef)
}
@@ -1112,10 +1107,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitFunctionTypeRef(functionTypeRef)
}
final override fun visitResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef, data: Nothing?) {
visitResolvedFunctionTypeRef(resolvedFunctionTypeRef)
}
final override fun visitImplicitTypeRef(implicitTypeRef: FirImplicitTypeRef, data: Nothing?) {
visitImplicitTypeRef(implicitTypeRef)
}
@@ -39,9 +39,6 @@ fun <R : FirTypeRef> R.copyWithNewSourceKind(newKind: FirFakeSourceElementKind):
qualifier += typeRef.qualifier
annotations += typeRef.annotations
}
is FirResolvedFunctionTypeRef -> buildResolvedFunctionTypeRefCopy(typeRef) {
source = newSource
}
is FirImplicitTypeRef -> buildImplicitTypeRefCopy(typeRef) {
source = newSource
}
@@ -24,10 +24,6 @@ abstract class FirDefaultTransformer<D> : FirTransformer<D>() {
return transformResolvedTypeRef(errorTypeRef, data)
}
override fun transformResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformResolvedTypeRef(resolvedFunctionTypeRef, data)
}
override fun transformTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability, data: D): CompositeTransformResult<FirTypeRef> {
return transformTypeRef(typeRefWithNullability, data)
}
@@ -23,10 +23,6 @@ abstract class FirDefaultVisitor<R, D> : FirVisitor<R, D>() {
return visitResolvedTypeRef(errorTypeRef, data)
}
override fun visitResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef, data: D): R {
return visitResolvedTypeRef(resolvedFunctionTypeRef, data)
}
override fun visitTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability, data: D): R {
return visitTypeRef(typeRefWithNullability, data)
}
@@ -23,10 +23,6 @@ abstract class FirDefaultVisitorVoid : FirVisitorVoid() {
return visitResolvedTypeRef(errorTypeRef)
}
override fun visitResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef) {
return visitResolvedTypeRef(resolvedFunctionTypeRef)
}
override fun visitTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability) {
return visitTypeRef(typeRefWithNullability)
}
@@ -228,10 +228,6 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
withCopy()
}
builder(resolvedFunctionTypeRef) {
withCopy()
}
builder(implicitTypeRef) {
withCopy()
}
@@ -146,7 +146,6 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val userTypeRef = element("UserTypeRef", TypeRef, typeRefWithNullability)
val dynamicTypeRef = element("DynamicTypeRef", TypeRef, typeRefWithNullability)
val functionTypeRef = element("FunctionTypeRef", TypeRef, typeRefWithNullability)
val resolvedFunctionTypeRef = element("ResolvedFunctionTypeRef", TypeRef, resolvedTypeRef, functionTypeRef)
val implicitTypeRef = element("ImplicitTypeRef", TypeRef, typeRef)
val composedSuperTypeRef = element("ComposedSuperTypeRef", TypeRef, typeRef)
@@ -370,13 +370,6 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
useTypes(errorTypeRefImpl, coneStubDiagnosticType)
}
impl(resolvedFunctionTypeRef) {
default("delegatedTypeRef") {
value = "null"
withGetter = true
}
}
impl(errorFunction) {
defaultNull("receiverTypeRef", "body", withGetter = true)
default("returnTypeRef", "FirErrorTypeRefImpl(null, diagnostic)")
@@ -489,16 +489,6 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() {
data.append("[ERROR : ${errorTypeRef.diagnostic.reason}]")
}
override fun visitResolvedFunctionTypeRef(resolvedFunctionTypeRef: FirResolvedFunctionTypeRef, data: StringBuilder) {
resolvedFunctionTypeRef.receiverTypeRef?.let {
it.accept(this, data)
data.append(".")
}
visitValueParameters(resolvedFunctionTypeRef.valueParameters, data)
data.append(" -> ")
resolvedFunctionTypeRef.returnTypeRef.accept(this, data)
}
override fun visitTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability, data: StringBuilder) {
if (typeRefWithNullability.isMarkedNullable) {
data.append("?")