diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirFunctionParameterChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirFunctionParameterChecker.kt index fd3e2ff9885..7643b81802d 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirFunctionParameterChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirFunctionParameterChecker.kt @@ -21,6 +21,7 @@ import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind +import org.jetbrains.kotlin.fir.expressions.FirPropertyAccessExpression import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference import org.jetbrains.kotlin.fir.symbols.SymbolInternals @@ -112,6 +113,10 @@ object FirFunctionParameterChecker : FirFunctionChecker() { ) } } + + override fun visitPropertyAccessExpression(propertyAccessExpression: FirPropertyAccessExpression) { + visitQualifiedAccessExpression(propertyAccessExpression) + } }) } } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInlineDeclarationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInlineDeclarationChecker.kt index 5da6e177807..5d8ba91f1ce 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInlineDeclarationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInlineDeclarationChecker.kt @@ -110,6 +110,10 @@ object FirInlineDeclarationChecker : FirFunctionChecker() { checkReceiversOfQualifiedAccessExpression(qualifiedAccessExpression, targetSymbol, data) } + override fun visitPropertyAccessExpression(propertyAccessExpression: FirPropertyAccessExpression, data: CheckerContext) { + visitQualifiedAccessExpression(propertyAccessExpression, data) + } + override fun visitVariableAssignment(variableAssignment: FirVariableAssignment, data: CheckerContext) { val propertySymbol = variableAssignment.calleeReference.toResolvedCallableSymbol() as? FirPropertySymbol ?: return val setterSymbol = propertySymbol.setterSymbol ?: return diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollectorVisitor.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollectorVisitor.kt index 3f70cf67d2f..1376cb2758b 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollectorVisitor.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollectorVisitor.kt @@ -200,6 +200,10 @@ abstract class AbstractDiagnosticCollectorVisitor( visitWithQualifiedAccessOrAnnotationCall(qualifiedAccessExpression) } + override fun visitPropertyAccessExpression(propertyAccessExpression: FirPropertyAccessExpression, data: Nothing?) { + visitWithQualifiedAccessOrAnnotationCall(propertyAccessExpression) + } + override fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: Nothing?) { visitWithQualifiedAccessOrAnnotationCall(annotationCall) } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ExpressionCheckersDiagnosticComponent.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ExpressionCheckersDiagnosticComponent.kt index b220531c767..14d7ea30cf1 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ExpressionCheckersDiagnosticComponent.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ExpressionCheckersDiagnosticComponent.kt @@ -37,6 +37,10 @@ class ExpressionCheckersDiagnosticComponent( checkers.allQualifiedAccessExpressionCheckers.check(qualifiedAccessExpression, data, reporter) } + override fun visitPropertyAccessExpression(propertyAccessExpression: FirPropertyAccessExpression, data: CheckerContext) { + checkers.allQualifiedAccessExpressionCheckers.check(propertyAccessExpression, data, reporter) + } + override fun visitFunctionCall(functionCall: FirFunctionCall, data: CheckerContext) { checkers.allFunctionCallCheckers.check(functionCall, data, reporter) } diff --git a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/constant/FirToConstantValueTransformer.kt b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/constant/FirToConstantValueTransformer.kt index 0eb9ea43baf..23e09547cf8 100644 --- a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/constant/FirToConstantValueTransformer.kt +++ b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/constant/FirToConstantValueTransformer.kt @@ -80,6 +80,10 @@ internal object FirToConstantValueTransformer : FirDefaultVisitor? { + return visitQualifiedAccessExpression(propertyAccessExpression, data) + } + override fun visitFunctionCall( functionCall: FirFunctionCall, data: Nothing? diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt index f8601c798d5..9e893334664 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt @@ -61,6 +61,8 @@ class Fir2IrImplicitCastInserter( override fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: IrElement): IrElement = data + override fun visitPropertyAccessExpression(propertyAccessExpression: FirPropertyAccessExpression, data: IrElement): IrElement = data + override fun visitResolvedQualifier(resolvedQualifier: FirResolvedQualifier, data: IrElement): IrElement = data override fun visitGetClassCall(getClassCall: FirGetClassCall, data: IrElement): IrElement = data diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt index 7147becfd12..8c77fff7adc 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt @@ -383,6 +383,10 @@ class Fir2IrVisitor( return callGenerator.convertToIrCall(qualifiedAccessExpression, qualifiedAccessExpression.typeRef, explicitReceiverExpression) } + override fun visitPropertyAccessExpression(propertyAccessExpression: FirPropertyAccessExpression, data: Any?): IrElement { + return visitQualifiedAccessExpression(propertyAccessExpression, data) + } + // Note that this mimics psi2ir [StatementGenerator#isThisForClassPhysicallyAvailable]. private fun isThisForClassPhysicallyAvailable(irClass: IrClass): Boolean { var lastClass = conversionScope.lastClass() diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/javaTypeUtils.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/javaTypeUtils.kt index dfdb5240ae2..32e71f99fce 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/javaTypeUtils.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/javaTypeUtils.kt @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.declarations.utils.modality import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.builder.buildConstExpression -import org.jetbrains.kotlin.fir.expressions.builder.buildQualifiedAccessExpression +import org.jetbrains.kotlin.fir.expressions.builder.buildPropertyAccessExpression import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass import org.jetbrains.kotlin.fir.java.declarations.FirJavaField import org.jetbrains.kotlin.fir.references.builder.buildResolvedNamedReference @@ -304,7 +304,7 @@ internal fun ConeKotlinType.lexicalCastFrom(session: FirSession, value: String): val name = Name.identifier(value) val firEnumEntry = firElement.collectEnumEntries().find { it.name == name } - return if (firEnumEntry != null) buildQualifiedAccessExpression { + return if (firEnumEntry != null) buildPropertyAccessExpression { calleeReference = buildResolvedNamedReference { this.name = name resolvedSymbol = firEnumEntry.symbol @@ -314,7 +314,7 @@ internal fun ConeKotlinType.lexicalCastFrom(session: FirSession, value: String): it.isStatic && it.modality == Modality.FINAL && it.name == name } if (firStaticProperty != null) { - buildQualifiedAccessExpression { + buildPropertyAccessExpression { calleeReference = buildResolvedNamedReference { this.name = name resolvedSymbol = firStaticProperty.symbol diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt index 8eb09816b40..05699c4dcbf 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt @@ -645,7 +645,7 @@ class ExpressionsConverter( context.calleeNamesForLambda.removeLast() } } else { - FirQualifiedAccessExpressionBuilder().apply { + FirPropertyAccessExpressionBuilder().apply { this.source = source this.calleeReference = calleeReference } @@ -971,7 +971,7 @@ class ExpressionsConverter( } else { nameSource.fakeElement(FirFakeSourceElementKind.ReferenceInAtomicQualifiedAccess) } - return buildQualifiedAccessExpression { + return buildPropertyAccessExpression { val rawText = referenceExpression.asText if (rawText.isUnderscore) { nonFatalDiagnostics.add(ConeUnderscoreUsageWithoutBackticks(nameSource)) @@ -1350,7 +1350,7 @@ class ExpressionsConverter( } } - return buildQualifiedAccessExpression { + return buildPropertyAccessExpression { source = superExpression.toFirSourceElement() calleeReference = buildExplicitSuperReference { labelName = label diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/ValueParameter.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/ValueParameter.kt index f9421945582..c21d7ee1705 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/ValueParameter.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/ValueParameter.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.fir.declarations.utils.fromPrimaryConstructor import org.jetbrains.kotlin.fir.declarations.utils.isFromVararg import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind -import org.jetbrains.kotlin.fir.expressions.builder.buildQualifiedAccessExpression +import org.jetbrains.kotlin.fir.expressions.builder.buildPropertyAccessExpression import org.jetbrains.kotlin.fir.lightTree.fir.modifier.Modifier import org.jetbrains.kotlin.fir.references.builder.buildPropertyFromParameterResolvedNamedReference import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol @@ -54,7 +54,7 @@ class ValueParameter( origin = FirDeclarationOrigin.Source returnTypeRef = type.copyWithNewSourceKind(FirFakeSourceElementKind.PropertyFromParameter) this.name = name - initializer = buildQualifiedAccessExpression { + initializer = buildPropertyAccessExpression { source = propertySource calleeReference = buildPropertyFromParameterResolvedNamedReference { source = propertySource diff --git a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt index 3cea6c746ca..d7415df6607 100644 --- a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt +++ b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt @@ -496,7 +496,7 @@ open class RawFirBuilder( returnTypeRef = type.copyWithNewSourceKind(FirFakeSourceElementKind.PropertyFromParameter) receiverTypeRef = null name = propertyName - initializer = buildQualifiedAccessExpression { + initializer = buildPropertyAccessExpression { source = propertySource calleeReference = buildPropertyFromParameterResolvedNamedReference { source = propertySource @@ -2150,7 +2150,7 @@ open class RawFirBuilder( val (calleeReference, explicitReceiver, isImplicitInvoke) = splitToCalleeAndReceiver(expression.calleeExpression, source) val result: FirQualifiedAccessBuilder = if (expression.valueArgumentList == null && expression.lambdaArguments.isEmpty()) { - FirQualifiedAccessExpressionBuilder().apply { + FirPropertyAccessExpressionBuilder().apply { this.source = source this.calleeReference = calleeReference } @@ -2236,7 +2236,7 @@ open class RawFirBuilder( override fun visitSuperExpression(expression: KtSuperExpression, data: Unit): FirElement { val superType = expression.superTypeQualifier val theSource = expression.toFirSourceElement() - return buildQualifiedAccessExpression { + return buildPropertyAccessExpression { this.source = theSource calleeReference = buildExplicitSuperReference { source = theSource.fakeElement(FirFakeSourceElementKind.ReferenceInAtomicQualifiedAccess) diff --git a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt index 171fb132c29..0d36d052c93 100644 --- a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt +++ b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt @@ -1091,7 +1091,7 @@ abstract class BaseFirBuilder(val baseSession: FirSession, val context: Conte classTypeRefWithCorrectSourceKind: FirTypeRef, firPropertyReturnTypeRefWithCorrectSourceKind: FirTypeRef ) = - buildQualifiedAccessExpression { + buildPropertyAccessExpression { source = parameterSource typeRef = firPropertyReturnTypeRefWithCorrectSourceKind dispatchReceiver = buildThisReceiverExpression { @@ -1185,7 +1185,7 @@ abstract class BaseFirBuilder(val baseSession: FirSession, val context: Conte containingClassForStaticMemberAttr = currentDispatchReceiverType.lookupTag } - private fun FirVariable.toQualifiedAccess(): FirQualifiedAccessExpression = buildQualifiedAccessExpression { + private fun FirVariable.toQualifiedAccess(): FirQualifiedAccessExpression = buildPropertyAccessExpression { calleeReference = buildResolvedNamedReference { source = this@toQualifiedAccess.source?.fakeElement(FirFakeSourceElementKind.ReferenceInAtomicQualifiedAccess) name = this@toQualifiedAccess.name diff --git a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt index 5ce5f589feb..d8a5b74d00e 100644 --- a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt +++ b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt @@ -254,7 +254,7 @@ fun generateAccessExpression( name: Name, diagnostic: ConeDiagnostic? = null ): FirQualifiedAccessExpression = - buildQualifiedAccessExpression { + buildPropertyAccessExpression { this.source = qualifiedSource calleeReference = buildSimpleNamedReference { this.source = if (calleeReferenceSource == qualifiedSource) @@ -269,7 +269,7 @@ fun generateAccessExpression( } fun generateResolvedAccessExpression(source: FirSourceElement?, variable: FirVariable): FirQualifiedAccessExpression = - buildQualifiedAccessExpression { + buildPropertyAccessExpression { this.source = source calleeReference = buildResolvedNamedReference { this.source = source @@ -362,7 +362,7 @@ fun FirPropertyBuilder.generateAccessorsByDelegate( else -> buildConstExpression(null, ConstantValueKind.Null, null) } - fun delegateAccess() = buildQualifiedAccessExpression { + fun delegateAccess() = buildPropertyAccessExpression { source = fakeSource calleeReference = buildDelegateFieldReference { resolvedSymbol = delegateFieldSymbol @@ -481,7 +481,7 @@ fun FirPropertyBuilder.generateAccessorsByDelegate( argumentList = buildArgumentList { arguments += thisRef() arguments += propertyRef() - arguments += buildQualifiedAccessExpression { + arguments += buildPropertyAccessExpression { calleeReference = buildResolvedNamedReference { source = fakeSource name = DELEGATED_SETTER_PARAM diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt index 66a6c04b851..b1ad0189f31 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt @@ -13,7 +13,6 @@ import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.diagnostics.ConeStubDiagnostic import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.builder.buildResolvedReifiedParameterReference -import org.jetbrains.kotlin.fir.expressions.impl.FirQualifiedAccessExpressionImpl import org.jetbrains.kotlin.fir.references.* import org.jetbrains.kotlin.fir.references.builder.buildBackingFieldReference import org.jetbrains.kotlin.fir.references.builder.buildResolvedNamedReference @@ -287,7 +286,7 @@ class FirCallResolver( nameReference.source, qualifiedAccess.explicitReceiver, referencedSymbol, - (qualifiedAccess as? FirQualifiedAccessExpressionImpl)?.nonFatalDiagnostics + (qualifiedAccess as? FirPropertyAccessExpression)?.nonFatalDiagnostics ) ) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CandidateFactory.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CandidateFactory.kt index c85821af5f7..f111a9bbe9e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CandidateFactory.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CandidateFactory.kt @@ -124,12 +124,10 @@ class CandidateFactory private constructor( fun PostponedArgumentsAnalyzerContext.addSubsystemFromExpression(statement: FirStatement) { when (statement) { - is FirFunctionCall, is FirQualifiedAccessExpression, is FirWhenExpression, is FirTryExpression, is FirCheckNotNullCall, - is FirCallableReferenceAccess, is FirElvisExpression -> (statement as FirResolvable).candidate()?.let { addOtherSystem(it.system.asReadOnlyStorage()) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirInvokeResolveTowerExtension.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirInvokeResolveTowerExtension.kt index d897e9d501f..4915ac9d3ad 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirInvokeResolveTowerExtension.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirInvokeResolveTowerExtension.kt @@ -8,10 +8,9 @@ package org.jetbrains.kotlin.fir.resolve.calls.tower import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier -import org.jetbrains.kotlin.fir.expressions.builder.FirQualifiedAccessExpressionBuilder +import org.jetbrains.kotlin.fir.expressions.builder.FirPropertyAccessExpressionBuilder import org.jetbrains.kotlin.fir.resolve.* import org.jetbrains.kotlin.fir.resolve.calls.* -import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.firUnsafe import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol @@ -278,7 +277,7 @@ private fun BodyResolveComponents.createExplicitReceiverForInvokeByCallable( extensionReceiverExpression: FirExpression, symbol: FirCallableSymbol<*> ): FirExpression { - return FirQualifiedAccessExpressionBuilder().apply { + return FirPropertyAccessExpressionBuilder().apply { calleeReference = FirNamedReferenceWithCandidate( null, symbol.callableId.callableName, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt index 8557148fa1c..c2d8dc639db 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt @@ -170,6 +170,13 @@ class FirCallCompletionResultsWriterTransformer( return result } + override fun transformPropertyAccessExpression( + propertyAccessExpression: FirPropertyAccessExpression, + data: ExpectedArgumentType? + ): FirStatement { + return transformQualifiedAccessExpression(propertyAccessExpression, data) + } + override fun transformFunctionCall(functionCall: FirFunctionCall, data: ExpectedArgumentType?): FirStatement { val calleeReference = functionCall.calleeReference as? FirNamedReferenceWithCandidate ?: return functionCall @@ -406,6 +413,10 @@ class FirCallCompletionResultsWriterTransformer( session.lookupTracker?.recordTypeResolveAsLookup(resolvedTypeRef, qualifiedAccessExpression.source, null) return qualifiedAccessExpression } + + override fun transformPropertyAccessExpression(propertyAccessExpression: FirPropertyAccessExpression, data: Any?): FirStatement { + return transformQualifiedAccessExpression(propertyAccessExpression, data) + } } private fun FirTypeRef.substitute(candidate: Candidate): ConeKotlinType = diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformer.kt index 76ac7ca1817..5a0af9499c3 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformer.kt @@ -103,6 +103,13 @@ open class FirBodyResolveTransformer( return expressionsTransformer.transformQualifiedAccessExpression(qualifiedAccessExpression, data) } + override fun transformPropertyAccessExpression( + propertyAccessExpression: FirPropertyAccessExpression, + data: ResolutionMode + ): FirStatement { + return expressionsTransformer.transformQualifiedAccessExpression(propertyAccessExpression, data) + } + override fun transformFunctionCall(functionCall: FirFunctionCall, data: ResolutionMode): FirStatement { return expressionsTransformer.transformFunctionCall(functionCall, data) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt index 45fdfbce6ac..bdfa0c1e9f2 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt @@ -153,6 +153,13 @@ open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransform return result } + override fun transformPropertyAccessExpression( + propertyAccessExpression: FirPropertyAccessExpression, + data: ResolutionMode + ): FirStatement { + return transformQualifiedAccessExpression(propertyAccessExpression, data) + } + protected open fun resolveQualifiedAccessAndSelectCandidate(qualifiedAccessExpression: FirQualifiedAccessExpression): FirStatement { return callResolver.resolveVariableAccessAndSelectCandidate(qualifiedAccessExpression) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/ConeEffectExtractor.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/ConeEffectExtractor.kt index ec48f54fed3..39767904ded 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/ConeEffectExtractor.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/ConeEffectExtractor.kt @@ -138,6 +138,13 @@ class ConeEffectExtractor( return toValueParameterReference(type, index, name) } + override fun visitPropertyAccessExpression( + propertyAccessExpression: FirPropertyAccessExpression, + data: Nothing? + ): ConeContractDescriptionElement? { + return visitQualifiedAccessExpression(propertyAccessExpression, data) + } + private fun toValueParameterReference( type: ConeKotlinType, index: Int, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerOperatorCall.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerOperatorCall.kt index efd5e75473e..07fbba26cac 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerOperatorCall.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirIntegerOperatorCall.kt @@ -43,7 +43,6 @@ class FirIntegerOperatorCall @FirImplementationDetail constructor( explicitReceiver, dispatchReceiver, extensionReceiver, - mutableListOf(), argumentList, calleeReference, FirFunctionCallOrigin.Operator diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCallableReferenceAccess.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCallableReferenceAccess.kt index 5f123d7ded5..16742d4d3b1 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCallableReferenceAccess.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirCallableReferenceAccess.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSourceElement -import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.references.FirNamedReference import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection @@ -28,7 +27,6 @@ abstract class FirCallableReferenceAccess : FirQualifiedAccessExpression() { abstract override val explicitReceiver: FirExpression? abstract override val dispatchReceiver: FirExpression abstract override val extensionReceiver: FirExpression - abstract override val nonFatalDiagnostics: List abstract override val calleeReference: FirNamedReference abstract val hasQuestionMarkAtLHS: Boolean diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirComponentCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirComponentCall.kt index 238cab062e0..f4eefe07757 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirComponentCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirComponentCall.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSourceElement -import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.references.FirNamedReference import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection @@ -27,7 +26,6 @@ abstract class FirComponentCall : FirFunctionCall() { abstract override val typeArguments: List abstract override val dispatchReceiver: FirExpression abstract override val extensionReceiver: FirExpression - abstract override val nonFatalDiagnostics: List abstract override val argumentList: FirArgumentList abstract override val calleeReference: FirNamedReference abstract override val origin: FirFunctionCallOrigin diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcast.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcast.kt index a8bcd90299e..733c3e7a8d9 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcast.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcast.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSourceElement -import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirTypeProjection @@ -30,7 +29,6 @@ abstract class FirExpressionWithSmartcast : FirQualifiedAccessExpression() { abstract override val explicitReceiver: FirExpression? abstract override val dispatchReceiver: FirExpression abstract override val extensionReceiver: FirExpression - abstract override val nonFatalDiagnostics: List abstract val originalExpression: FirQualifiedAccessExpression abstract val typesFromSmartCast: Collection abstract val originalType: FirTypeRef diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcastToNull.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcastToNull.kt index 85e7d4fdcd5..78bc9772270 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcastToNull.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirExpressionWithSmartcastToNull.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSourceElement -import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirTypeProjection @@ -30,7 +29,6 @@ abstract class FirExpressionWithSmartcastToNull : FirExpressionWithSmartcast() { abstract override val explicitReceiver: FirExpression? abstract override val dispatchReceiver: FirExpression abstract override val extensionReceiver: FirExpression - abstract override val nonFatalDiagnostics: List abstract override val isStable: Boolean abstract override val originalExpression: FirQualifiedAccessExpression abstract override val typesFromSmartCast: Collection diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirFunctionCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirFunctionCall.kt index eb3a95bfb36..e52460a7162 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirFunctionCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirFunctionCall.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSourceElement -import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.references.FirNamedReference import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection @@ -28,7 +27,6 @@ abstract class FirFunctionCall : FirQualifiedAccessExpression(), FirCall { abstract override val explicitReceiver: FirExpression? abstract override val dispatchReceiver: FirExpression abstract override val extensionReceiver: FirExpression - abstract override val nonFatalDiagnostics: List abstract override val argumentList: FirArgumentList abstract override val calleeReference: FirNamedReference abstract val origin: FirFunctionCallOrigin diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirImplicitInvokeCall.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirImplicitInvokeCall.kt index faacb4f7390..f2b8eb07658 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirImplicitInvokeCall.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirImplicitInvokeCall.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSourceElement -import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.references.FirNamedReference import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection @@ -28,7 +27,6 @@ abstract class FirImplicitInvokeCall : FirFunctionCall() { abstract override val explicitReceiver: FirExpression? abstract override val dispatchReceiver: FirExpression abstract override val extensionReceiver: FirExpression - abstract override val nonFatalDiagnostics: List abstract override val argumentList: FirArgumentList abstract override val calleeReference: FirNamedReference abstract override val origin: FirFunctionCallOrigin diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirPropertyAccessExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirPropertyAccessExpression.kt new file mode 100644 index 00000000000..0ee8952bd45 --- /dev/null +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirPropertyAccessExpression.kt @@ -0,0 +1,61 @@ +/* + * Copyright 2010-2021 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.expressions + +import org.jetbrains.kotlin.fir.FirElement +import org.jetbrains.kotlin.fir.FirSourceElement +import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic +import org.jetbrains.kotlin.fir.references.FirReference +import org.jetbrains.kotlin.fir.types.FirTypeProjection +import org.jetbrains.kotlin.fir.types.FirTypeRef +import org.jetbrains.kotlin.fir.visitors.* +import org.jetbrains.kotlin.fir.FirImplementationDetail + +/* + * This file was generated automatically + * DO NOT MODIFY IT MANUALLY + */ + +abstract class FirPropertyAccessExpression : FirQualifiedAccessExpression() { + abstract override val source: FirSourceElement? + abstract override val typeRef: FirTypeRef + abstract override val annotations: List + abstract override val calleeReference: FirReference + abstract override val typeArguments: List + abstract override val explicitReceiver: FirExpression? + abstract override val dispatchReceiver: FirExpression + abstract override val extensionReceiver: FirExpression + abstract val nonFatalDiagnostics: List + + override fun accept(visitor: FirVisitor, data: D): R = visitor.visitPropertyAccessExpression(this, data) + + @Suppress("UNCHECKED_CAST") + override fun transform(transformer: FirTransformer, data: D): E = + transformer.transformPropertyAccessExpression(this, data) as E + + @FirImplementationDetail + abstract override fun replaceSource(newSource: FirSourceElement?) + + abstract override fun replaceTypeRef(newTypeRef: FirTypeRef) + + abstract override fun replaceCalleeReference(newCalleeReference: FirReference) + + abstract override fun replaceTypeArguments(newTypeArguments: List) + + abstract override fun replaceExplicitReceiver(newExplicitReceiver: FirExpression?) + + abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirPropertyAccessExpression + + abstract override fun transformCalleeReference(transformer: FirTransformer, data: D): FirPropertyAccessExpression + + abstract override fun transformTypeArguments(transformer: FirTransformer, data: D): FirPropertyAccessExpression + + abstract override fun transformExplicitReceiver(transformer: FirTransformer, data: D): FirPropertyAccessExpression + + abstract override fun transformDispatchReceiver(transformer: FirTransformer, data: D): FirPropertyAccessExpression + + abstract override fun transformExtensionReceiver(transformer: FirTransformer, data: D): FirPropertyAccessExpression +} diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccessExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccessExpression.kt index 7f3a39cb5a0..266e410008e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccessExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirQualifiedAccessExpression.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSourceElement -import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -28,7 +27,6 @@ abstract class FirQualifiedAccessExpression : FirExpression(), FirQualifiedAcces abstract override val explicitReceiver: FirExpression? abstract override val dispatchReceiver: FirExpression abstract override val extensionReceiver: FirExpression - abstract val nonFatalDiagnostics: List override fun accept(visitor: FirVisitor, data: D): R = visitor.visitQualifiedAccessExpression(this, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirThisReceiverExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirThisReceiverExpression.kt index 29e529c9248..ea37c0b4a07 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirThisReceiverExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirThisReceiverExpression.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirSourceElement -import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.references.FirThisReference import org.jetbrains.kotlin.fir.types.FirTypeProjection @@ -28,7 +27,6 @@ abstract class FirThisReceiverExpression : FirQualifiedAccessExpression() { abstract override val explicitReceiver: FirExpression? abstract override val dispatchReceiver: FirExpression abstract override val extensionReceiver: FirExpression - abstract override val nonFatalDiagnostics: List abstract override val calleeReference: FirThisReference override fun accept(visitor: FirVisitor, data: D): R = visitor.visitThisReceiverExpression(this, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAbstractFunctionCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAbstractFunctionCallBuilder.kt index 7222b38150d..2f2c029fead 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAbstractFunctionCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirAbstractFunctionCallBuilder.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions.builder import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.builder.FirBuilderDsl -import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -35,7 +34,6 @@ interface FirAbstractFunctionCallBuilder : FirQualifiedAccessBuilder, FirCallBui abstract override var source: FirSourceElement? abstract override var argumentList: FirArgumentList abstract var typeRef: FirTypeRef - abstract val nonFatalDiagnostics: MutableList abstract var calleeReference: FirNamedReference abstract var origin: FirFunctionCallOrigin override fun build(): FirFunctionCall diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCallableReferenceAccessBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCallableReferenceAccessBuilder.kt index 8c5f95034e1..91080b3f078 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCallableReferenceAccessBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirCallableReferenceAccessBuilder.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail 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.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -39,7 +38,6 @@ class FirCallableReferenceAccessBuilder : FirQualifiedAccessBuilder, FirAnnotati override var explicitReceiver: FirExpression? = null override var dispatchReceiver: FirExpression = FirNoReceiverExpression override var extensionReceiver: FirExpression = FirNoReceiverExpression - val nonFatalDiagnostics: MutableList = mutableListOf() lateinit var calleeReference: FirNamedReference var hasQuestionMarkAtLHS: Boolean = false @@ -52,7 +50,6 @@ class FirCallableReferenceAccessBuilder : FirQualifiedAccessBuilder, FirAnnotati explicitReceiver, dispatchReceiver, extensionReceiver, - nonFatalDiagnostics, calleeReference, hasQuestionMarkAtLHS, ) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirComponentCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirComponentCallBuilder.kt index dc9513e662b..cd30c70ab7a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirComponentCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirComponentCallBuilder.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail 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.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirComponentCall @@ -42,7 +41,6 @@ class FirComponentCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, F val typeArguments: MutableList = mutableListOf() var dispatchReceiver: FirExpression = FirNoReceiverExpression var extensionReceiver: FirExpression = FirNoReceiverExpression - val nonFatalDiagnostics: MutableList = mutableListOf() override var argumentList: FirArgumentList = FirEmptyArgumentList lateinit var explicitReceiver: FirExpression var componentIndex: Int by kotlin.properties.Delegates.notNull() @@ -54,7 +52,6 @@ class FirComponentCallBuilder : FirCallBuilder, FirAnnotationContainerBuilder, F typeArguments, dispatchReceiver, extensionReceiver, - nonFatalDiagnostics, argumentList, explicitReceiver, componentIndex, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirFunctionCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirFunctionCallBuilder.kt index 8f2c535da01..5904dbc73a6 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirFunctionCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirFunctionCallBuilder.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail 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.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirEmptyArgumentList @@ -42,7 +41,6 @@ open class FirFunctionCallBuilder : FirAbstractFunctionCallBuilder, FirAnnotatio override var explicitReceiver: FirExpression? = null override var dispatchReceiver: FirExpression = FirNoReceiverExpression override var extensionReceiver: FirExpression = FirNoReceiverExpression - override val nonFatalDiagnostics: MutableList = mutableListOf() override var argumentList: FirArgumentList = FirEmptyArgumentList override lateinit var calleeReference: FirNamedReference override var origin: FirFunctionCallOrigin = FirFunctionCallOrigin.Regular @@ -57,7 +55,6 @@ open class FirFunctionCallBuilder : FirAbstractFunctionCallBuilder, FirAnnotatio explicitReceiver, dispatchReceiver, extensionReceiver, - nonFatalDiagnostics, argumentList, calleeReference, origin, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirImplicitInvokeCallBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirImplicitInvokeCallBuilder.kt index b0a281a803d..9c7c164f27d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirImplicitInvokeCallBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirImplicitInvokeCallBuilder.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail 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.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirEmptyArgumentList @@ -41,7 +40,6 @@ open class FirImplicitInvokeCallBuilder : FirAbstractFunctionCallBuilder, FirAnn override var explicitReceiver: FirExpression? = null override var dispatchReceiver: FirExpression = FirNoReceiverExpression override var extensionReceiver: FirExpression = FirNoReceiverExpression - override val nonFatalDiagnostics: MutableList = mutableListOf() override var argumentList: FirArgumentList = FirEmptyArgumentList override lateinit var calleeReference: FirNamedReference @@ -53,7 +51,6 @@ open class FirImplicitInvokeCallBuilder : FirAbstractFunctionCallBuilder, FirAnn explicitReceiver, dispatchReceiver, extensionReceiver, - nonFatalDiagnostics, argumentList, calleeReference, ) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirQualifiedAccessExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirPropertyAccessExpressionBuilder.kt similarity index 80% rename from compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirQualifiedAccessExpressionBuilder.kt rename to compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirPropertyAccessExpressionBuilder.kt index f75597facc2..6fc21995547 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirQualifiedAccessExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirPropertyAccessExpressionBuilder.kt @@ -13,11 +13,11 @@ import org.jetbrains.kotlin.fir.builder.FirBuilderDsl import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression -import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression +import org.jetbrains.kotlin.fir.expressions.FirPropertyAccessExpression import org.jetbrains.kotlin.fir.expressions.builder.FirExpressionBuilder import org.jetbrains.kotlin.fir.expressions.builder.FirQualifiedAccessBuilder import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression -import org.jetbrains.kotlin.fir.expressions.impl.FirQualifiedAccessExpressionImpl +import org.jetbrains.kotlin.fir.expressions.impl.FirPropertyAccessExpressionImpl import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -30,7 +30,7 @@ import org.jetbrains.kotlin.fir.visitors.* */ @FirBuilderDsl -class FirQualifiedAccessExpressionBuilder : FirQualifiedAccessBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder { +class FirPropertyAccessExpressionBuilder : FirQualifiedAccessBuilder, FirAnnotationContainerBuilder, FirExpressionBuilder { override var source: FirSourceElement? = null override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() @@ -42,8 +42,8 @@ class FirQualifiedAccessExpressionBuilder : FirQualifiedAccessBuilder, FirAnnota val nonFatalDiagnostics: MutableList = mutableListOf() @OptIn(FirImplementationDetail::class) - override fun build(): FirQualifiedAccessExpression { - return FirQualifiedAccessExpressionImpl( + override fun build(): FirPropertyAccessExpression { + return FirPropertyAccessExpressionImpl( source, typeRef, annotations, @@ -59,9 +59,9 @@ class FirQualifiedAccessExpressionBuilder : FirQualifiedAccessBuilder, FirAnnota } @OptIn(ExperimentalContracts::class) -inline fun buildQualifiedAccessExpression(init: FirQualifiedAccessExpressionBuilder.() -> Unit): FirQualifiedAccessExpression { +inline fun buildPropertyAccessExpression(init: FirPropertyAccessExpressionBuilder.() -> Unit): FirPropertyAccessExpression { contract { callsInPlace(init, kotlin.contracts.InvocationKind.EXACTLY_ONCE) } - return FirQualifiedAccessExpressionBuilder().apply(init).build() + return FirPropertyAccessExpressionBuilder().apply(init).build() } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirThisReceiverExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirThisReceiverExpressionBuilder.kt index 5d01efe3721..eaad5e4a7be 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirThisReceiverExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirThisReceiverExpressionBuilder.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail 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.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression @@ -36,7 +35,6 @@ class FirThisReceiverExpressionBuilder : FirQualifiedAccessBuilder, FirAnnotatio override var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null) override val annotations: MutableList = mutableListOf() override val typeArguments: MutableList = mutableListOf() - val nonFatalDiagnostics: MutableList = mutableListOf() lateinit var calleeReference: FirThisReference override fun build(): FirThisReceiverExpression { @@ -45,7 +43,6 @@ class FirThisReceiverExpressionBuilder : FirQualifiedAccessBuilder, FirAnnotatio typeRef, annotations, typeArguments, - nonFatalDiagnostics, calleeReference, ) } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCallableReferenceAccessImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCallableReferenceAccessImpl.kt index 62d62e09fd1..cd25654506d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCallableReferenceAccessImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirCallableReferenceAccessImpl.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.fir.expressions.impl import org.jetbrains.kotlin.fir.FirSourceElement -import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -30,7 +29,6 @@ internal class FirCallableReferenceAccessImpl( override var explicitReceiver: FirExpression?, override var dispatchReceiver: FirExpression, override var extensionReceiver: FirExpression, - override val nonFatalDiagnostics: MutableList, override var calleeReference: FirNamedReference, override var hasQuestionMarkAtLHS: Boolean, ) : FirCallableReferenceAccess() { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt index 0f08bdb84de..5cd609def35 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirComponentCallImpl.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions.impl import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirSourceElement -import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirComponentCall @@ -34,7 +33,6 @@ internal class FirComponentCallImpl( override val typeArguments: MutableList, override var dispatchReceiver: FirExpression, override var extensionReceiver: FirExpression, - override val nonFatalDiagnostics: MutableList, override var argumentList: FirArgumentList, override var explicitReceiver: FirExpression, override val componentIndex: Int, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirFunctionCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirFunctionCallImpl.kt index d2dac90de0f..df0bb963cd5 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirFunctionCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirFunctionCallImpl.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.expressions.impl import org.jetbrains.kotlin.fir.FirImplementationDetail import org.jetbrains.kotlin.fir.FirSourceElement -import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -32,7 +31,6 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor( override var explicitReceiver: FirExpression?, override var dispatchReceiver: FirExpression, override var extensionReceiver: FirExpression, - override val nonFatalDiagnostics: MutableList, override var argumentList: FirArgumentList, override var calleeReference: FirNamedReference, override val origin: FirFunctionCallOrigin, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirImplicitInvokeCallImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirImplicitInvokeCallImpl.kt index bf2cff2c20b..64fb7c66003 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirImplicitInvokeCallImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirImplicitInvokeCallImpl.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.fir.expressions.impl import org.jetbrains.kotlin.fir.FirSourceElement -import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirArgumentList import org.jetbrains.kotlin.fir.expressions.FirExpression @@ -32,7 +31,6 @@ internal class FirImplicitInvokeCallImpl( override var explicitReceiver: FirExpression?, override var dispatchReceiver: FirExpression, override var extensionReceiver: FirExpression, - override val nonFatalDiagnostics: MutableList, override var argumentList: FirArgumentList, override var calleeReference: FirNamedReference, ) : FirImplicitInvokeCall() { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirQualifiedAccessExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirPropertyAccessExpressionImpl.kt similarity index 87% rename from compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirQualifiedAccessExpressionImpl.kt rename to compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirPropertyAccessExpressionImpl.kt index 685b5739d64..7f3e62e4902 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirQualifiedAccessExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirPropertyAccessExpressionImpl.kt @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression -import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression +import org.jetbrains.kotlin.fir.expressions.FirPropertyAccessExpression import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -class FirQualifiedAccessExpressionImpl @FirImplementationDetail constructor( +class FirPropertyAccessExpressionImpl @FirImplementationDetail constructor( override var source: FirSourceElement?, override var typeRef: FirTypeRef, override val annotations: MutableList, @@ -31,7 +31,7 @@ class FirQualifiedAccessExpressionImpl @FirImplementationDetail constructor( override var dispatchReceiver: FirExpression, override var extensionReceiver: FirExpression, override val nonFatalDiagnostics: MutableList, -) : FirQualifiedAccessExpression() { +) : FirPropertyAccessExpression() { override fun acceptChildren(visitor: FirVisitor, data: D) { typeRef.accept(visitor, data) annotations.forEach { it.accept(visitor, data) } @@ -46,7 +46,7 @@ class FirQualifiedAccessExpressionImpl @FirImplementationDetail constructor( } } - override fun transformChildren(transformer: FirTransformer, data: D): FirQualifiedAccessExpressionImpl { + override fun transformChildren(transformer: FirTransformer, data: D): FirPropertyAccessExpressionImpl { typeRef = typeRef.transform(transformer, data) transformAnnotations(transformer, data) transformCalleeReference(transformer, data) @@ -61,32 +61,32 @@ class FirQualifiedAccessExpressionImpl @FirImplementationDetail constructor( return this } - override fun transformAnnotations(transformer: FirTransformer, data: D): FirQualifiedAccessExpressionImpl { + override fun transformAnnotations(transformer: FirTransformer, data: D): FirPropertyAccessExpressionImpl { annotations.transformInplace(transformer, data) return this } - override fun transformCalleeReference(transformer: FirTransformer, data: D): FirQualifiedAccessExpressionImpl { + override fun transformCalleeReference(transformer: FirTransformer, data: D): FirPropertyAccessExpressionImpl { calleeReference = calleeReference.transform(transformer, data) return this } - override fun transformTypeArguments(transformer: FirTransformer, data: D): FirQualifiedAccessExpressionImpl { + override fun transformTypeArguments(transformer: FirTransformer, data: D): FirPropertyAccessExpressionImpl { typeArguments.transformInplace(transformer, data) return this } - override fun transformExplicitReceiver(transformer: FirTransformer, data: D): FirQualifiedAccessExpressionImpl { + override fun transformExplicitReceiver(transformer: FirTransformer, data: D): FirPropertyAccessExpressionImpl { explicitReceiver = explicitReceiver?.transform(transformer, data) return this } - override fun transformDispatchReceiver(transformer: FirTransformer, data: D): FirQualifiedAccessExpressionImpl { + override fun transformDispatchReceiver(transformer: FirTransformer, data: D): FirPropertyAccessExpressionImpl { dispatchReceiver = dispatchReceiver.transform(transformer, data) return this } - override fun transformExtensionReceiver(transformer: FirTransformer, data: D): FirQualifiedAccessExpressionImpl { + override fun transformExtensionReceiver(transformer: FirTransformer, data: D): FirPropertyAccessExpressionImpl { extensionReceiver = extensionReceiver.transform(transformer, data) return this } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirThisReceiverExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirThisReceiverExpressionImpl.kt index 41ea1b23ab7..e5b3ed386c7 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirThisReceiverExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirThisReceiverExpressionImpl.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.fir.expressions.impl import org.jetbrains.kotlin.fir.FirSourceElement -import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression @@ -28,7 +27,6 @@ internal class FirThisReceiverExpressionImpl( override var typeRef: FirTypeRef, override val annotations: MutableList, override val typeArguments: MutableList, - override val nonFatalDiagnostics: MutableList, override var calleeReference: FirThisReference, ) : FirThisReceiverExpression() { override var explicitReceiver: FirExpression? = null diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt index f76199b696e..b74a0e82483 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt @@ -86,6 +86,7 @@ import org.jetbrains.kotlin.fir.expressions.FirErrorExpression import org.jetbrains.kotlin.fir.declarations.FirErrorFunction import org.jetbrains.kotlin.fir.declarations.FirErrorProperty import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression +import org.jetbrains.kotlin.fir.expressions.FirPropertyAccessExpression import org.jetbrains.kotlin.fir.expressions.FirFunctionCall import org.jetbrains.kotlin.fir.expressions.FirImplicitInvokeCall import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall @@ -463,6 +464,10 @@ abstract class FirTransformer : FirVisitor() { return transformElement(qualifiedAccessExpression, data) } + open fun transformPropertyAccessExpression(propertyAccessExpression: FirPropertyAccessExpression, data: D): FirStatement { + return transformElement(propertyAccessExpression, data) + } + open fun transformFunctionCall(functionCall: FirFunctionCall, data: D): FirStatement { return transformElement(functionCall, data) } @@ -975,6 +980,10 @@ abstract class FirTransformer : FirVisitor() { return transformQualifiedAccessExpression(qualifiedAccessExpression, data) } + final override fun visitPropertyAccessExpression(propertyAccessExpression: FirPropertyAccessExpression, data: D): FirStatement { + return transformPropertyAccessExpression(propertyAccessExpression, data) + } + final override fun visitFunctionCall(functionCall: FirFunctionCall, data: D): FirStatement { return transformFunctionCall(functionCall, data) } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt index 90a4a623f5b..31284bca147 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt @@ -86,6 +86,7 @@ import org.jetbrains.kotlin.fir.expressions.FirErrorExpression import org.jetbrains.kotlin.fir.declarations.FirErrorFunction import org.jetbrains.kotlin.fir.declarations.FirErrorProperty import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression +import org.jetbrains.kotlin.fir.expressions.FirPropertyAccessExpression import org.jetbrains.kotlin.fir.expressions.FirFunctionCall import org.jetbrains.kotlin.fir.expressions.FirImplicitInvokeCall import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall @@ -302,6 +303,8 @@ abstract class FirVisitor { open fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: D): R = visitElement(qualifiedAccessExpression, data) + open fun visitPropertyAccessExpression(propertyAccessExpression: FirPropertyAccessExpression, data: D): R = visitElement(propertyAccessExpression, data) + open fun visitFunctionCall(functionCall: FirFunctionCall, data: D): R = visitElement(functionCall, data) open fun visitImplicitInvokeCall(implicitInvokeCall: FirImplicitInvokeCall, data: D): R = visitElement(implicitInvokeCall, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt index 3a7a0b80a1d..a9e4c5c7099 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt @@ -86,6 +86,7 @@ import org.jetbrains.kotlin.fir.expressions.FirErrorExpression import org.jetbrains.kotlin.fir.declarations.FirErrorFunction import org.jetbrains.kotlin.fir.declarations.FirErrorProperty import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression +import org.jetbrains.kotlin.fir.expressions.FirPropertyAccessExpression import org.jetbrains.kotlin.fir.expressions.FirFunctionCall import org.jetbrains.kotlin.fir.expressions.FirImplicitInvokeCall import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall @@ -462,6 +463,10 @@ abstract class FirVisitorVoid : FirVisitor() { visitElement(qualifiedAccessExpression) } + open fun visitPropertyAccessExpression(propertyAccessExpression: FirPropertyAccessExpression) { + visitElement(propertyAccessExpression) + } + open fun visitFunctionCall(functionCall: FirFunctionCall) { visitElement(functionCall) } @@ -974,6 +979,10 @@ abstract class FirVisitorVoid : FirVisitor() { visitQualifiedAccessExpression(qualifiedAccessExpression) } + final override fun visitPropertyAccessExpression(propertyAccessExpression: FirPropertyAccessExpression, data: Nothing?) { + visitPropertyAccessExpression(propertyAccessExpression) + } + final override fun visitFunctionCall(functionCall: FirFunctionCall, data: Nothing?) { visitFunctionCall(functionCall) } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt index 14309feff67..7a1183ad5b0 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt @@ -1209,6 +1209,10 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM qualifiedAccessExpression.typeArguments.renderTypeArguments() } + override fun visitPropertyAccessExpression(propertyAccessExpression: FirPropertyAccessExpression) { + visitQualifiedAccessExpression(propertyAccessExpression) + } + override fun visitThisReceiverExpression(thisReceiverExpression: FirThisReceiverExpression) { visitQualifiedAccessExpression(thisReceiverExpression) } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionWithSmartcastBuilder.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionWithSmartcastBuilder.kt index 175052ffa1d..faa0b3f8c65 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionWithSmartcastBuilder.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionWithSmartcastBuilder.kt @@ -19,7 +19,7 @@ class FirExpressionWithSmartcastBuilder { lateinit var smartcastStability: SmartcastStability fun build(): FirExpressionWithSmartcast { - return FirExpressionWithSmartcastImpl(originalExpression, smartcastType, typesFromSmartCast, smartcastStability, listOf()) + return FirExpressionWithSmartcastImpl(originalExpression, smartcastType, typesFromSmartCast, smartcastStability) } } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionWithSmartcastToNullBuilder.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionWithSmartcastToNullBuilder.kt index c61bd7ccc33..48a285a29b8 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionWithSmartcastToNullBuilder.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/builder/FirExpressionWithSmartcastToNullBuilder.kt @@ -25,8 +25,7 @@ class FirExpressionWithSmartcastToNullBuilder { smartcastType, typesFromSmartCast, smartcastStability, - smartcastTypeWithoutNullableNothing, - listOf() + smartcastTypeWithoutNullableNothing ) } } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastImpl.kt index edc0938f1f9..a024e8fa1cf 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastImpl.kt @@ -26,8 +26,7 @@ internal class FirExpressionWithSmartcastImpl( override var originalExpression: FirQualifiedAccessExpression, override val smartcastType: FirTypeRef, override val typesFromSmartCast: Collection, - override val smartcastStability: SmartcastStability, - override val nonFatalDiagnostics: List + override val smartcastStability: SmartcastStability ) : FirExpressionWithSmartcast() { init { assert(originalExpression.typeRef is FirResolvedTypeRef) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastToNullImpl.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastToNullImpl.kt index 3530145482e..edc3f6f4aee 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastToNullImpl.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/expressions/impl/FirExpressionWithSmartcastToNullImpl.kt @@ -27,8 +27,7 @@ class FirExpressionWithSmartcastToNullImpl( override val smartcastType: FirTypeRef, override val typesFromSmartCast: Collection, override val smartcastStability: SmartcastStability, - override val smartcastTypeWithoutNullableNothing: FirTypeRef, - override val nonFatalDiagnostics: List + override val smartcastTypeWithoutNullableNothing: FirTypeRef ) : FirExpressionWithSmartcastToNull() { init { assert(originalExpression.typeRef is FirResolvedTypeRef) diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt index e008fa04e8f..8ee4c3042f8 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/BuilderConfigurator.kt @@ -126,6 +126,11 @@ object BuilderConfigurator : AbstractBuilderConfigurator(FirTree useTypes(stubReferenceType) } + builder(propertyAccessExpression) { + parents += qualifiedAccessBuilder + defaultNoReceivers() + } + builder(callableReferenceAccess) { parents += qualifiedAccessBuilder defaultNull("explicitReceiver") @@ -188,11 +193,6 @@ object BuilderConfigurator : AbstractBuilderConfigurator(FirTree } builder(implicitInvokeCall, init = configurationForFunctionCallBuilder) - builder(qualifiedAccessExpression) { - parents += qualifiedAccessBuilder - defaultNoReceivers() - } - builder(getClassCall) { parents += callBuilder } @@ -342,7 +342,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator(FirTree val elementsWithDefaultTypeRef = listOf( thisReceiverExpression, callableReferenceAccess, - qualifiedAccessExpression, + propertyAccessExpression, functionCall, anonymousFunction, whenExpression, diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt index 1144e9743fa..06141ee0ced 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt @@ -106,6 +106,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() { val errorFunction = element("ErrorFunction", Declaration, function, diagnosticHolder) val errorProperty = element("ErrorProperty", Declaration, variable, diagnosticHolder) val qualifiedAccessExpression = element("QualifiedAccessExpression", Expression, expression, qualifiedAccess) + val propertyAccessExpression = element("PropertyAccessExpression", Expression, qualifiedAccessExpression) val functionCall = element("FunctionCall", Expression, qualifiedAccessExpression, call) val implicitInvokeCall = element("ImplicitInvokeCall", Expression, functionCall) val delegatedConstructorCall = element("DelegatedConstructorCall", Expression, resolvable, call) diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt index 74f1a1f53f1..824535c74f6 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/ImplementationConfigurator.kt @@ -169,7 +169,7 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() default("origin", "FirFunctionCallOrigin.Operator") } - impl(qualifiedAccessExpression) { + impl(propertyAccessExpression) { publicImplementation() } @@ -542,7 +542,7 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator() "FirTypeProjectionWithVarianceImpl", "FirCallableReferenceAccessImpl", "FirThisReceiverExpressionImpl", - "FirQualifiedAccessExpressionImpl", + "FirPropertyAccessExpressionImpl", "FirFunctionCallImpl", "FirAnonymousFunctionImpl", "FirWhenExpressionImpl", diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt index 42ba83c201e..dca0d35b717 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt @@ -192,7 +192,7 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild +field("source", sourceElementType, nullable = true, withReplace = true) } - qualifiedAccessExpression.configure { + propertyAccessExpression.configure { +fieldList("nonFatalDiagnostics", coneDiagnosticType) } diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/fir/FirResolveBench.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/fir/FirResolveBench.kt index e07b1e43933..548aeb8a544 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/fir/FirResolveBench.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/fir/FirResolveBench.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.builder.RawFirBuilder import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.diagnostics.ConeStubDiagnostic import org.jetbrains.kotlin.fir.expressions.FirFunctionCall +import org.jetbrains.kotlin.fir.expressions.FirPropertyAccessExpression import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression import org.jetbrains.kotlin.fir.lightTree.LightTree2Fir import org.jetbrains.kotlin.fir.references.FirErrorNamedReference @@ -304,6 +305,10 @@ class FirResolveBench(val withProgress: Boolean, val listener: BenchListener? = visitElement(qualifiedAccessExpression) } + override fun visitPropertyAccessExpression(propertyAccessExpression: FirPropertyAccessExpression) { + visitQualifiedAccessExpression(propertyAccessExpression) + } + override fun visitTypeRef(typeRef: FirTypeRef) { unresolvedTypes++