[FIR] Eliminate unused FirDelegatedTypeRef

This commit is contained in:
Mikhail Glukhikh
2020-08-26 15:25:01 +03:00
parent ede910065a
commit f0af930288
17 changed files with 1 additions and 190 deletions
@@ -173,7 +173,6 @@ class FirTypeResolverImpl(private val session: FirSession) : FirTypeResolver {
resolveUserType(typeRef, symbol, substitutor, areBareTypesAllowed)
}
is FirFunctionTypeRef -> createFunctionalType(typeRef)
is FirDelegatedTypeRef -> resolveType(typeRef.typeRef, scope, areBareTypesAllowed)
is FirDynamicTypeRef -> ConeKotlinErrorType(ConeIntermediateDiagnostic("Not supported: ${typeRef::class.simpleName}"))
else -> error("!")
}
@@ -1,28 +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.FirPureAbstractElement
import org.jetbrains.kotlin.fir.FirSourceElement
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
abstract class FirDelegatedTypeRef : FirPureAbstractElement(), FirTypeRef {
abstract override val source: FirSourceElement?
abstract override val annotations: List<FirAnnotationCall>
abstract val delegate: FirExpression?
abstract val typeRef: FirTypeRef
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitDelegatedTypeRef(this, data)
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirDelegatedTypeRef
}
@@ -1,54 +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.FirBuilderDsl
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.types.FirDelegatedTypeRef
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.types.impl.FirDelegatedTypeRefImpl
import org.jetbrains.kotlin.fir.visitors.*
/*
* This file was generated automatically
* DO NOT MODIFY IT MANUALLY
*/
@FirBuilderDsl
class FirDelegatedTypeRefBuilder {
var delegate: FirExpression? = null
lateinit var typeRef: FirTypeRef
fun build(): FirDelegatedTypeRef {
return FirDelegatedTypeRefImpl(
delegate,
typeRef,
)
}
}
@OptIn(ExperimentalContracts::class)
inline fun buildDelegatedTypeRef(init: FirDelegatedTypeRefBuilder.() -> Unit): FirDelegatedTypeRef {
contract {
callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE)
}
return FirDelegatedTypeRefBuilder().apply(init).build()
}
@OptIn(ExperimentalContracts::class)
inline fun buildDelegatedTypeRefCopy(original: FirDelegatedTypeRef, init: FirDelegatedTypeRefBuilder.() -> Unit): FirDelegatedTypeRef {
contract {
callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE)
}
val copyBuilder = FirDelegatedTypeRefBuilder()
copyBuilder.delegate = original.delegate
copyBuilder.typeRef = original.typeRef
return copyBuilder.apply(init).build()
}
@@ -1,41 +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.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.types.FirDelegatedTypeRef
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 FirDelegatedTypeRefImpl(
override var delegate: FirExpression?,
override var typeRef: FirTypeRef,
) : FirDelegatedTypeRef() {
override val source: FirSourceElement? get() = typeRef.source
override val annotations: List<FirAnnotationCall> get() = typeRef.annotations
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
delegate?.accept(visitor, data)
typeRef.accept(visitor, data)
}
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirDelegatedTypeRefImpl {
delegate = delegate?.transformSingle(transformer, data)
typeRef = typeRef.transformSingle(transformer, data)
return this
}
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirDelegatedTypeRefImpl {
return this
}
}
@@ -119,7 +119,6 @@ import org.jetbrains.kotlin.fir.references.FirBackingFieldReference
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
import org.jetbrains.kotlin.fir.types.FirErrorTypeRef
import org.jetbrains.kotlin.fir.types.FirDelegatedTypeRef
import org.jetbrains.kotlin.fir.types.FirTypeRefWithNullability
import org.jetbrains.kotlin.fir.types.FirUserTypeRef
import org.jetbrains.kotlin.fir.types.FirDynamicTypeRef
@@ -595,10 +594,6 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformElement(errorTypeRef, data)
}
open fun transformDelegatedTypeRef(delegatedTypeRef: FirDelegatedTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformElement(delegatedTypeRef, data)
}
open fun transformTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability, data: D): CompositeTransformResult<FirTypeRef> {
return transformElement(typeRefWithNullability, data)
}
@@ -1103,10 +1098,6 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
return transformErrorTypeRef(errorTypeRef, data)
}
final override fun visitDelegatedTypeRef(delegatedTypeRef: FirDelegatedTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformDelegatedTypeRef(delegatedTypeRef, data)
}
final override fun visitTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability, data: D): CompositeTransformResult<FirTypeRef> {
return transformTypeRefWithNullability(typeRefWithNullability, data)
}
@@ -119,7 +119,6 @@ import org.jetbrains.kotlin.fir.references.FirBackingFieldReference
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
import org.jetbrains.kotlin.fir.types.FirErrorTypeRef
import org.jetbrains.kotlin.fir.types.FirDelegatedTypeRef
import org.jetbrains.kotlin.fir.types.FirTypeRefWithNullability
import org.jetbrains.kotlin.fir.types.FirUserTypeRef
import org.jetbrains.kotlin.fir.types.FirDynamicTypeRef
@@ -367,8 +366,6 @@ abstract class FirVisitor<out R, in D> {
open fun visitErrorTypeRef(errorTypeRef: FirErrorTypeRef, data: D): R = visitElement(errorTypeRef, data)
open fun visitDelegatedTypeRef(delegatedTypeRef: FirDelegatedTypeRef, data: D): R = visitElement(delegatedTypeRef, data)
open fun visitTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability, data: D): R = visitElement(typeRefWithNullability, data)
open fun visitUserTypeRef(userTypeRef: FirUserTypeRef, data: D): R = visitElement(userTypeRef, data)
@@ -119,7 +119,6 @@ import org.jetbrains.kotlin.fir.references.FirBackingFieldReference
import org.jetbrains.kotlin.fir.references.FirResolvedCallableReference
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
import org.jetbrains.kotlin.fir.types.FirErrorTypeRef
import org.jetbrains.kotlin.fir.types.FirDelegatedTypeRef
import org.jetbrains.kotlin.fir.types.FirTypeRefWithNullability
import org.jetbrains.kotlin.fir.types.FirUserTypeRef
import org.jetbrains.kotlin.fir.types.FirDynamicTypeRef
@@ -593,10 +592,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitElement(errorTypeRef)
}
open fun visitDelegatedTypeRef(delegatedTypeRef: FirDelegatedTypeRef) {
visitElement(delegatedTypeRef)
}
open fun visitTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability) {
visitElement(typeRefWithNullability)
}
@@ -1101,10 +1096,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
visitErrorTypeRef(errorTypeRef)
}
final override fun visitDelegatedTypeRef(delegatedTypeRef: FirDelegatedTypeRef, data: Nothing?) {
visitDelegatedTypeRef(delegatedTypeRef)
}
final override fun visitTypeRefWithNullability(typeRefWithNullability: FirTypeRefWithNullability, data: Nothing?) {
visitTypeRefWithNullability(typeRefWithNullability)
}
@@ -823,12 +823,6 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
visitElement(typeRef)
}
override fun visitDelegatedTypeRef(delegatedTypeRef: FirDelegatedTypeRef) {
delegatedTypeRef.typeRef.accept(this)
print(" by ")
delegatedTypeRef.delegate?.accept(this)
}
override fun visitErrorTypeRef(errorTypeRef: FirErrorTypeRef) {
visitTypeRef(errorTypeRef)
print("<ERROR TYPE REF: ${errorTypeRef.diagnostic.reason}>")
@@ -23,7 +23,6 @@ private val PUBLIC_METHOD_NAMES_IN_OBJECT = setOf("equals", "hashCode", "getClas
fun <R : FirTypeRef> R.copyWithNewSourceKind(newKind: FirFakeSourceElementKind): R {
if (source == null) return this
if (source?.kind == newKind) return this
if (this is FirDelegatedTypeRef) return this
val newSource = source?.fakeElement(newKind)
@Suppress("UNCHECKED_CAST")
@@ -12,10 +12,6 @@ import org.jetbrains.kotlin.fir.references.FirReference
import org.jetbrains.kotlin.fir.types.*
abstract class FirDefaultTransformer<D> : FirTransformer<D>() {
override fun transformDelegatedTypeRef(delegatedTypeRef: FirDelegatedTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformTypeRef(delegatedTypeRef, data)
}
override fun transformImplicitTypeRef(implicitTypeRef: FirImplicitTypeRef, data: D): CompositeTransformResult<FirTypeRef> {
return transformTypeRef(implicitTypeRef, data)
}
@@ -11,10 +11,6 @@ import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
import org.jetbrains.kotlin.fir.types.*
abstract class FirDefaultVisitor<R, D> : FirVisitor<R, D>() {
override fun visitDelegatedTypeRef(delegatedTypeRef: FirDelegatedTypeRef, data: D): R {
return visitTypeRef(delegatedTypeRef, data)
}
override fun visitImplicitTypeRef(implicitTypeRef: FirImplicitTypeRef, data: D): R {
return visitTypeRef(implicitTypeRef, data)
}
@@ -11,10 +11,6 @@ import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
import org.jetbrains.kotlin.fir.types.*
abstract class FirDefaultVisitorVoid : FirVisitorVoid() {
override fun visitDelegatedTypeRef(delegatedTypeRef: FirDelegatedTypeRef) {
return visitTypeRef(delegatedTypeRef)
}
override fun visitImplicitTypeRef(implicitTypeRef: FirImplicitTypeRef) {
return visitTypeRef(implicitTypeRef)
}
@@ -223,10 +223,6 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
withCopy()
}
builder(delegatedTypeRef) {
withCopy()
}
builder(functionTypeRef) {
withCopy()
}
@@ -351,7 +347,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
// -----------------------------------------------------------------------
findImplementationsWithElementInParents(annotationContainer) {
it.type !in setOf("FirDelegatedTypeRefImpl", "FirImplicitTypeRefImpl")
it.type !in setOf("FirImplicitTypeRefImpl")
}.forEach {
it.builder?.parents?.add(annotationContainerBuilder)
}
@@ -142,7 +142,6 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val resolvedTypeRef = element("ResolvedTypeRef", TypeRef, typeRef)
val errorTypeRef = element("ErrorTypeRef", TypeRef, resolvedTypeRef, diagnosticHolder)
val delegatedTypeRef = element("DelegatedTypeRef", TypeRef, typeRef)
val typeRefWithNullability = element("TypeRefWithNullability", TypeRef, typeRef)
val userTypeRef = element("UserTypeRef", TypeRef, typeRefWithNullability)
val dynamicTypeRef = element("DynamicTypeRef", TypeRef, typeRefWithNullability)
@@ -434,14 +434,6 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
kind = OpenClass
}
impl(delegatedTypeRef) {
listOf("source", "annotations").forEach {
default(it) {
delegate = "typeRef"
}
}
}
impl(safeCallExpression) {
useTypes(safeCallCheckedSubjectType)
}
@@ -462,7 +454,6 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
}
val implementationWithConfigurableTypeRef = listOf(
"FirDelegatedTypeRefImpl",
"FirTypeProjectionWithVarianceImpl",
"FirCallableReferenceAccessImpl",
"FirThisReceiverExpressionImpl",
@@ -564,11 +564,6 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+booleanField("isSuspend")
}
delegatedTypeRef.configure {
+field("delegate", expression, nullable = true)
+field(typeRef)
}
typeRefWithNullability.configure {
+booleanField("isMarkedNullable")
}
@@ -476,12 +476,6 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() {
typeProjectionWithVariance.typeRef.accept(this, data)
}
override fun visitDelegatedTypeRef(delegatedTypeRef: FirDelegatedTypeRef, data: StringBuilder) {
delegatedTypeRef.typeRef.accept(this, data)
data.append(" by ")
delegatedTypeRef.delegate?.accept(this, data)
}
override fun visitResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef, data: StringBuilder) {
val coneType = resolvedTypeRef.type
data.append(removeCurrentFilePackage(coneType.render()))