Skip to content

Commit 95d8ae9

Browse files
committed
rebase and fix conflicts
1 parent 99ac0ce commit 95d8ae9

File tree

24 files changed

+42
-95
lines changed

24 files changed

+42
-95
lines changed

compiler/fir/analysis-tests/testData/resolve/cfg/selfTypes.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// FIR_DISABLE_LAZY_RESOLVE_CHECKS
12
import kotlin.Self
23

34
@Self

compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/TypeArgumentMapping.kt

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,16 @@
55

66
package org.jetbrains.kotlin.fir.resolve.calls
77

8-
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
9-
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
10-
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
11-
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
12-
import org.jetbrains.kotlin.fir.declarations.hasAnnotation
8+
import org.jetbrains.kotlin.fir.declarations.*
139
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
1410
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
1511
import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol
1612
import org.jetbrains.kotlin.fir.types.*
17-
import org.jetbrains.kotlin.fir.types.ConeTypeIntersector
18-
import org.jetbrains.kotlin.fir.types.FirTypeProjection
1913
import org.jetbrains.kotlin.fir.types.builder.buildPlaceholderProjection
2014
import org.jetbrains.kotlin.fir.types.builder.buildTypeProjectionWithVariance
2115
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
2216
import org.jetbrains.kotlin.name.StandardClassIds
2317
import org.jetbrains.kotlin.types.Variance
24-
import org.jetbrains.kotlin.fir.types.builder.buildTypeProjectionWithVariance
25-
import org.jetbrains.kotlin.fir.types.isRaw
26-
import org.jetbrains.kotlin.fir.types.toFirResolvedTypeRef
27-
import org.jetbrains.kotlin.types.Variance
2818

2919
sealed class TypeArgumentMapping {
3020
abstract operator fun get(typeParameterIndex: Int): FirTypeProjection
@@ -86,7 +76,7 @@ internal object MapTypeArguments : ResolutionStage() {
8676
if (classLikeSymbol != null) {
8777
val firClassSymbol = classLikeSymbol as FirClassSymbol
8878

89-
val isSelf = firClassSymbol.hasAnnotation(StandardClassIds.Annotations.Self)
79+
val isSelf = firClassSymbol.hasAnnotation(StandardClassIds.Annotations.Self, context.session)
9080

9181
if (isSelf && callInfo.callKind is CallKind.Function) {
9282
val constructorTypeParametersSize = firConstructorSymbol.typeParameterSymbols.size

compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,38 +10,32 @@ import kotlinx.collections.immutable.persistentListOf
1010
import kotlinx.collections.immutable.toPersistentList
1111
import org.jetbrains.kotlin.KtFakeSourceElementKind
1212
import org.jetbrains.kotlin.fakeElement
13-
import org.jetbrains.kotlin.descriptors.ClassKind
1413
import org.jetbrains.kotlin.fir.*
1514
import org.jetbrains.kotlin.fir.declarations.*
1615
import org.jetbrains.kotlin.fir.declarations.builder.FirTypeParameterBuilder
1716
import org.jetbrains.kotlin.fir.declarations.utils.classId
1817
import org.jetbrains.kotlin.fir.declarations.utils.expandedConeType
1918
import org.jetbrains.kotlin.fir.declarations.utils.isCompanion
20-
import org.jetbrains.kotlin.fir.declarations.utils.isData
2119
import org.jetbrains.kotlin.fir.declarations.utils.superConeTypes
2220
import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic
2321
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
24-
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
2522
import org.jetbrains.kotlin.fir.expressions.FirStatement
2623
import org.jetbrains.kotlin.fir.extensions.FirSupertypeGenerationExtension
2724
import org.jetbrains.kotlin.fir.extensions.extensionService
2825
import org.jetbrains.kotlin.fir.extensions.supertypeGenerators
29-
import org.jetbrains.kotlin.fir.references.builder.buildResolvedNamedReference
3026
import org.jetbrains.kotlin.fir.resolve.*
3127
import org.jetbrains.kotlin.fir.resolve.dfa.cfg.isLocalClassOrAnonymousObject
3228
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeTypeParameterSupertype
3329
import org.jetbrains.kotlin.fir.resolve.providers.firProvider
3430
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
3531
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.LocalClassesNavigationInfo
36-
import org.jetbrains.kotlin.fir.scopes.*
32+
import org.jetbrains.kotlin.fir.scopes.FirScope
33+
import org.jetbrains.kotlin.fir.scopes.createImportingScopes
34+
import org.jetbrains.kotlin.fir.scopes.getNestedClassifierScope
3735
import org.jetbrains.kotlin.fir.scopes.impl.FirMemberTypeParameterScope
3836
import org.jetbrains.kotlin.fir.scopes.impl.FirSelfTypeScope
3937
import org.jetbrains.kotlin.fir.scopes.impl.nestedClassifierScope
4038
import org.jetbrains.kotlin.fir.scopes.impl.wrapNestedClassifierScopeWithSubstitutionForSuperType
41-
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
42-
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
43-
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol
44-
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
4539
import org.jetbrains.kotlin.fir.symbols.ConeTypeParameterLookupTag
4640
import org.jetbrains.kotlin.fir.symbols.impl.*
4741
import org.jetbrains.kotlin.fir.types.*
@@ -52,12 +46,10 @@ import org.jetbrains.kotlin.fir.types.impl.FirImplicitBuiltinTypeRef
5246
import org.jetbrains.kotlin.fir.visitors.FirDefaultTransformer
5347
import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor
5448
import org.jetbrains.kotlin.fir.visitors.FirTransformer
55-
import org.jetbrains.kotlin.fir.visitors.transformSingle
5649
import org.jetbrains.kotlin.name.ClassId
5750
import org.jetbrains.kotlin.name.SpecialNames
5851
import org.jetbrains.kotlin.name.StandardClassIds
5952
import org.jetbrains.kotlin.types.Variance
60-
import org.jetbrains.kotlin.name.StandardClassIds
6153
import org.jetbrains.kotlin.types.model.TypeArgumentMarker
6254
import org.jetbrains.kotlin.utils.addIfNotNull
6355

@@ -382,7 +374,7 @@ open class FirSupertypeResolverVisitor(
382374

383375
@OptIn(PrivateForInline::class)
384376
val resolvedTypesRefs = transformer.withFile(useSiteFile) {
385-
addSelfToTypeParameters(classLikeDeclaration)
377+
addSelfToTypeParameters(classLikeDeclaration, session)
386378
val scopes = prepareScopes(classLikeDeclaration)
387379
resolveSuperTypeRefs(
388380
transformer,
@@ -456,8 +448,8 @@ open class FirSupertypeResolverVisitor(
456448
}
457449
}
458450

459-
private fun addSelfToTypeParameters(firClass: FirClassLikeDeclaration) {
460-
val isSelf = firClass.getAnnotationByClassId(StandardClassIds.Annotations.Self) != null
451+
private fun addSelfToTypeParameters(firClass: FirClassLikeDeclaration, session: FirSession) {
452+
val isSelf = firClass.getAnnotationByClassId(StandardClassIds.Annotations.Self, session) != null
461453
val params = firClass.typeParameters
462454
if (params is MutableList && isSelf) {
463455
val selfSymbol = FirTypeParameterSymbol()

compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/BodyResolveContext.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,7 @@ class BodyResolveContext(
444444

445445
val typeParameterScope = (owner as? FirRegularClass)?.typeParameterScope()
446446
val selfTypeScope: FirSelfTypeScope? =
447-
if (owner.hasAnnotation(StandardClassIds.Annotations.Self)) {
447+
if (owner.hasAnnotation(StandardClassIds.Annotations.Self, holder.session)) {
448448
FirSelfTypeScope(owner)
449449
} else
450450
null

compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/AbstractFirSpecificAnnotationResolveTransformer.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import org.jetbrains.kotlin.name.StandardClassIds.Annotations.Deprecated
4040
import org.jetbrains.kotlin.name.StandardClassIds.Annotations.DeprecatedSinceKotlin
4141
import org.jetbrains.kotlin.name.StandardClassIds.Annotations.JvmRecord
4242
import org.jetbrains.kotlin.name.StandardClassIds.Annotations.WasExperimental
43+
import org.jetbrains.kotlin.name.StandardClassIds.Annotations.Self
4344
import org.jetbrains.kotlin.utils.addToStdlib.shouldNotBeCalled
4445

4546
internal abstract class AbstractFirSpecificAnnotationResolveTransformer(
@@ -48,7 +49,7 @@ internal abstract class AbstractFirSpecificAnnotationResolveTransformer(
4849
protected val computationSession: CompilerRequiredAnnotationsComputationSession
4950
) : FirDefaultTransformer<Nothing?>() {
5051
companion object {
51-
private val REQUIRED_ANNOTATIONS: Set<ClassId> = setOf(Deprecated, DeprecatedSinceKotlin, WasExperimental, JvmRecord)
52+
private val REQUIRED_ANNOTATIONS: Set<ClassId> = setOf(Deprecated, DeprecatedSinceKotlin, WasExperimental, JvmRecord, Self)
5253

5354
private val REQUIRED_ANNOTATION_NAMES: Set<Name> = REQUIRED_ANNOTATIONS.mapTo(mutableSetOf()) { it.shortClassName }
5455
}

compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirCompilerRequiredAnnotationsResolveTransformer.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.name.StandardClassIds.Annotations.Deprecated
2323
import org.jetbrains.kotlin.name.StandardClassIds.Annotations.DeprecatedSinceKotlin
2424
import org.jetbrains.kotlin.name.StandardClassIds.Annotations.JvmRecord
2525
import org.jetbrains.kotlin.name.StandardClassIds.Annotations.WasExperimental
26-
import org.jetbrains.kotlin.name.StandardClassIds.Annotations.Self
2726

2827
class FirCompilerRequiredAnnotationsResolveProcessor(
2928
session: FirSession,

compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@ sealed class FirCallableDeclaration : FirMemberDeclaration() {
4545

4646
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
4747

48-
abstract override fun replaceTypeParameters(newTypeParameters: List<FirTypeParameterRef>)
49-
5048
abstract override fun replaceAnnotations(newAnnotations: List<FirAnnotation>)
5149

50+
abstract override fun replaceTypeParameters(newTypeParameters: List<FirTypeParameterRef>)
51+
5252
abstract fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
5353

5454
abstract fun replaceReceiverParameter(newReceiverParameter: FirReceiverParameter?)

compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClassLikeDeclaration.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ sealed class FirClassLikeDeclaration : FirMemberDeclaration(), FirStatement {
3838

3939
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
4040

41-
abstract override fun replaceTypeParameters(newTypeParameters: List<FirTypeParameterRef>)
42-
4341
abstract override fun replaceAnnotations(newAnnotations: List<FirAnnotation>)
4442

43+
abstract override fun replaceTypeParameters(newTypeParameters: List<FirTypeParameterRef>)
44+
4545
abstract fun replaceDeprecationsProvider(newDeprecationsProvider: DeprecationsProvider)
4646

4747
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirClassLikeDeclaration

compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ sealed class FirFunction : FirCallableDeclaration(), FirTargetElement, FirContro
5252

5353
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
5454

55-
abstract override fun replaceTypeParameters(newTypeParameters: List<FirTypeParameterRef>)
56-
5755
abstract override fun replaceAnnotations(newAnnotations: List<FirAnnotation>)
5856

57+
abstract override fun replaceTypeParameters(newTypeParameters: List<FirTypeParameterRef>)
58+
5959
abstract override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
6060

6161
abstract override fun replaceReceiverParameter(newReceiverParameter: FirReceiverParameter?)

compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirMemberDeclaration.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ sealed class FirMemberDeclaration : FirDeclaration(), FirTypeParameterRefsOwner
3636

3737
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
3838

39-
abstract override fun replaceTypeParameters(newTypeParameters: List<FirTypeParameterRef>)
40-
4139
abstract override fun replaceAnnotations(newAnnotations: List<FirAnnotation>)
4240

41+
abstract override fun replaceTypeParameters(newTypeParameters: List<FirTypeParameterRef>)
42+
4343
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirMemberDeclaration
4444

4545
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirMemberDeclaration

0 commit comments

Comments
 (0)