Change lookup tags from interfaces to abstract classes
This commit is contained in:
committed by
Mikhail Glukhikh
parent
a10deb5f69
commit
146a53f18c
@@ -8,30 +8,33 @@ package org.jetbrains.kotlin.fir.symbols
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
interface ConeClassifierLookupTag {
|
||||
val name: Name
|
||||
abstract class ConeClassifierLookupTag {
|
||||
abstract val name: Name
|
||||
}
|
||||
|
||||
interface ConeClassifierLookupTagWithFixedSymbol {
|
||||
val symbol: ConeClassifierSymbol
|
||||
abstract class ConeClassifierLookupTagWithFixedSymbol : ConeClassifierLookupTag() {
|
||||
abstract val symbol: ConeClassifierSymbol
|
||||
}
|
||||
|
||||
interface ConeTypeParameterLookupTag : ConeClassifierLookupTag {
|
||||
override val name: Name
|
||||
data class ConeTypeParameterLookupTag(val typeParameterSymbol: ConeTypeParameterSymbol) : ConeClassifierLookupTagWithFixedSymbol() {
|
||||
override val name: Name get() = typeParameterSymbol.name
|
||||
override val symbol: ConeClassifierSymbol
|
||||
get() = typeParameterSymbol
|
||||
|
||||
}
|
||||
interface ConeClassLikeLookupTag : ConeClassifierLookupTag {
|
||||
val classId: ClassId
|
||||
|
||||
abstract class ConeClassLikeLookupTag : ConeClassifierLookupTag() {
|
||||
abstract val classId: ClassId
|
||||
|
||||
override val name: Name
|
||||
get() = classId.shortClassName
|
||||
}
|
||||
|
||||
interface ConeTypeAliasLookupTag : ConeClassLikeLookupTag
|
||||
abstract class ConeTypeAliasLookupTag : ConeClassLikeLookupTag()
|
||||
|
||||
interface ConeClassLookupTag : ConeClassLikeLookupTag
|
||||
abstract class ConeClassLookupTag : ConeClassLikeLookupTag()
|
||||
|
||||
class ConeClassLikeLookupTagImpl(override val classId: ClassId) : ConeClassLikeLookupTag {
|
||||
class ConeClassLikeLookupTagImpl(override val classId: ClassId) : ConeClassLikeLookupTag() {
|
||||
var boundSymbol: Pair<*, *>? = null
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
|
||||
@@ -16,8 +16,9 @@ interface ConeClassifierSymbol : ConeSymbol, TypeParameterMarker {
|
||||
fun toLookupTag(): ConeClassifierLookupTag
|
||||
}
|
||||
|
||||
interface ConeTypeParameterSymbol : ConeClassifierSymbol, ConeTypeParameterLookupTag {
|
||||
override fun toLookupTag(): ConeTypeParameterLookupTag = this
|
||||
interface ConeTypeParameterSymbol : ConeClassifierSymbol {
|
||||
override fun toLookupTag(): ConeTypeParameterLookupTag = ConeTypeParameterLookupTag(this)
|
||||
val name: Name
|
||||
}
|
||||
|
||||
interface ConeClassLikeSymbol : ConeClassifierSymbol, TypeConstructorMarker {
|
||||
|
||||
Reference in New Issue
Block a user