[FIR] Remove FirLambdaArgumentExpression
It's not really necessary if the information about if the lambda was a trailing lambda can be directly saved in FirAnonymousFunctionExpression. Removing the FIR node uncovered a couple of bugs (UNINITIALIZED_ENUM_ENTRY, ERROR_IN_CONTRACT_DESCRIPTION) that were caused by assuming that a lambda is always a trailing lambda. #KT-66124
This commit is contained in:
committed by
Space Team
parent
1a5fa8d3f6
commit
03fc0fd381
-1
@@ -143,7 +143,6 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
|
||||
val getClassCall by element(Expression, expression, call)
|
||||
val wrappedExpression by element(Expression, expression)
|
||||
val wrappedArgumentExpression by element(Expression, wrappedExpression)
|
||||
val lambdaArgumentExpression by element(Expression, wrappedArgumentExpression)
|
||||
val spreadArgumentExpression by element(Expression, wrappedArgumentExpression)
|
||||
val namedArgumentExpression by element(Expression, wrappedArgumentExpression)
|
||||
val varargArgumentsExpression by element(Expression, expression)
|
||||
|
||||
-10
@@ -316,16 +316,6 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
||||
}
|
||||
}
|
||||
|
||||
impl(lambdaArgumentExpression) {
|
||||
default("isSpread") {
|
||||
value = "false"
|
||||
withGetter = true
|
||||
}
|
||||
default("coneTypeOrNull") {
|
||||
delegate = "expression"
|
||||
}
|
||||
}
|
||||
|
||||
impl(spreadArgumentExpression) {
|
||||
default("isSpread") {
|
||||
value = "true"
|
||||
|
||||
+1
@@ -331,6 +331,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
|
||||
anonymousFunctionExpression.configure {
|
||||
+field(anonymousFunction).withTransform()
|
||||
+booleanField("isTrailingLambda", withReplace = true)
|
||||
}
|
||||
|
||||
typeParameter.configure {
|
||||
|
||||
Reference in New Issue
Block a user