[FIR] Add FirPropertyAccessExpression that inherits FirQualifiedAccessExpression

This commit is contained in:
Ivan Kochurkin
2021-08-11 19:02:13 +03:00
parent 0fb398d45e
commit 8d764fa50e
56 changed files with 201 additions and 101 deletions
@@ -126,6 +126,11 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
useTypes(stubReferenceType)
}
builder(propertyAccessExpression) {
parents += qualifiedAccessBuilder
defaultNoReceivers()
}
builder(callableReferenceAccess) {
parents += qualifiedAccessBuilder
defaultNull("explicitReceiver")
@@ -188,11 +193,6 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
}
builder(implicitInvokeCall, init = configurationForFunctionCallBuilder)
builder(qualifiedAccessExpression) {
parents += qualifiedAccessBuilder
defaultNoReceivers()
}
builder(getClassCall) {
parents += callBuilder
}
@@ -342,7 +342,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
val elementsWithDefaultTypeRef = listOf(
thisReceiverExpression,
callableReferenceAccess,
qualifiedAccessExpression,
propertyAccessExpression,
functionCall,
anonymousFunction,
whenExpression,
@@ -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)
@@ -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",
@@ -192,7 +192,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
+field("source", sourceElementType, nullable = true, withReplace = true)
}
qualifiedAccessExpression.configure {
propertyAccessExpression.configure {
+fieldList("nonFatalDiagnostics", coneDiagnosticType)
}