[FIR] Move check for INSTANCE_ACCESS_BEFORE_SUPER_CALL from resolution stage to checker

^KT-48870
This commit is contained in:
Dmitriy Novozhilov
2023-06-07 13:31:28 +03:00
committed by Space Team
parent 4a501a257e
commit c745ef09d1
25 changed files with 290 additions and 40 deletions
@@ -133,6 +133,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
val componentCall by element(Expression, functionCall)
val callableReferenceAccess by element(Expression, qualifiedAccessExpression)
val thisReceiverExpression by element(Expression, qualifiedAccessExpression)
val inaccessibleReceiverExpression by element(Expression, expression, resolvable)
val smartCastExpression by element(Expression, expression)
val safeCallExpression by element(Expression, expression)
@@ -666,7 +666,8 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
"FirReceiverParameterImpl",
"FirClassReferenceExpressionImpl",
"FirGetClassCallImpl",
"FirSmartCastExpressionImpl"
"FirSmartCastExpressionImpl",
"FirInaccessibleReceiverExpressionImpl"
)
configureFieldInAllImplementations(
field = "typeRef",
@@ -727,6 +727,10 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+booleanField("isImplicit")
}
inaccessibleReceiverExpression.configure {
+field("calleeReference", thisReference)
}
whenExpression.configure {
+field("subject", expression, nullable = true).withTransform()
+field("subjectVariable", variable.withArgs("E" to "*"), nullable = true)