FIR: unify common special names scattered around the code base

This commit is contained in:
Tianyu Geng
2021-07-28 14:25:24 -07:00
committed by teamcityserver
parent 263b876e6e
commit 684ef871ee
42 changed files with 161 additions and 145 deletions
@@ -38,6 +38,7 @@ import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
import org.jetbrains.kotlin.fir.types.builder.buildStarProjection
import org.jetbrains.kotlin.fir.types.builder.buildTypeProjectionWithVariance
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.SpecialNames
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemBuilder
import org.jetbrains.kotlin.resolve.calls.results.TypeSpecificityComparator
import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind
@@ -423,7 +424,7 @@ class FirCallResolver(
delegatedConstructorCall: FirDelegatedConstructorCall,
constructedType: ConeClassLikeType
): FirDelegatedConstructorCall {
val name = Name.special("<init>")
val name = SpecialNames.INIT
val symbol = constructedType.lookupTag.toSymbol(components.session)
val typeArguments =
constructedType.typeArguments.take((symbol?.fir as? FirRegularClass)?.typeParameters?.count { it is FirTypeParameter } ?: 0)
@@ -47,6 +47,7 @@ import org.jetbrains.kotlin.fir.visitors.FirDefaultTransformer
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.fir.visitors.transformSingle
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.SpecialNames
open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransformer) : FirPartialBodyResolveTransformer(transformer) {
private val statusResolver: FirStatusResolver = FirStatusResolver(session, scopeSession)
@@ -10,12 +10,12 @@ import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.utils.isSynthetic
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
import org.jetbrains.kotlin.fir.resolve.transformers.ensureResolvedForCalls
import org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScope
import org.jetbrains.kotlin.fir.scopes.FirScope
import org.jetbrains.kotlin.fir.scopes.getContainingClassifierNamesIfPresent
import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.SpecialNames
class FirClassDeclaredMemberScope(
val useSiteSession: FirSession,
@@ -35,7 +35,7 @@ class FirClassDeclaredMemberScope(
loop@ for (declaration in klass.declarations) {
if (declaration is FirCallableDeclaration) {
val name = when (declaration) {
is FirConstructor -> CONSTRUCTOR_NAME
is FirConstructor -> SpecialNames.INIT
is FirVariable -> if (declaration.isSynthetic) continue@loop else declaration.name
is FirSimpleFunction -> declaration.name
else -> continue@loop
@@ -47,12 +47,12 @@ class FirClassDeclaredMemberScope(
}
override fun processFunctionsByName(name: Name, processor: (FirNamedFunctionSymbol) -> Unit) {
if (name == CONSTRUCTOR_NAME) return
if (name == SpecialNames.INIT) return
processCallables(name, processor)
}
override fun processDeclaredConstructors(processor: (FirConstructorSymbol) -> Unit) {
processCallables(CONSTRUCTOR_NAME, processor)
processCallables(SpecialNames.INIT, processor)
}
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
@@ -86,6 +86,3 @@ class FirClassDeclaredMemberScope(
return nestedClassifierScope?.getContainingClassifierNamesIfPresent().orEmpty()
}
}
private val CONSTRUCTOR_NAME = Name.special("<init>")