FIR: add & use hasExplicitParameterList to anonymous functions
#KT-49134 Fixed
This commit is contained in:
committed by
teamcityserver
parent
9307757bb4
commit
29e4c299e7
@@ -45,6 +45,7 @@ abstract class FirAnonymousFunction : FirFunction(), FirTypeParametersOwner {
|
||||
abstract val invocationKind: EventOccurrencesRange?
|
||||
abstract val inlineStatus: InlineStatus
|
||||
abstract val isLambda: Boolean
|
||||
abstract val hasExplicitParameterList: Boolean
|
||||
abstract override val typeParameters: List<FirTypeParameter>
|
||||
abstract val typeRef: FirTypeRef
|
||||
|
||||
|
||||
+2
@@ -59,6 +59,7 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu
|
||||
var invocationKind: EventOccurrencesRange? = null
|
||||
var inlineStatus: InlineStatus = InlineStatus.Unknown
|
||||
var isLambda: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
|
||||
var hasExplicitParameterList: Boolean by kotlin.properties.Delegates.notNull<Boolean>()
|
||||
val typeParameters: MutableList<FirTypeParameter> = mutableListOf()
|
||||
var typeRef: FirTypeRef = FirImplicitTypeRefImpl(null)
|
||||
|
||||
@@ -82,6 +83,7 @@ class FirAnonymousFunctionBuilder : FirFunctionBuilder, FirAnnotationContainerBu
|
||||
invocationKind,
|
||||
inlineStatus,
|
||||
isLambda,
|
||||
hasExplicitParameterList,
|
||||
typeParameters,
|
||||
typeRef,
|
||||
)
|
||||
|
||||
+1
@@ -52,6 +52,7 @@ internal class FirAnonymousFunctionImpl(
|
||||
override var invocationKind: EventOccurrencesRange?,
|
||||
override var inlineStatus: InlineStatus,
|
||||
override val isLambda: Boolean,
|
||||
override val hasExplicitParameterList: Boolean,
|
||||
override val typeParameters: MutableList<FirTypeParameter>,
|
||||
override var typeRef: FirTypeRef,
|
||||
) : FirAnonymousFunction() {
|
||||
|
||||
@@ -626,6 +626,12 @@ open class FirRenderer(builder: StringBuilder, protected val mode: RenderMode =
|
||||
print(".")
|
||||
}
|
||||
print("<anonymous>")
|
||||
if (anonymousFunction.valueParameters.isEmpty() &&
|
||||
anonymousFunction.hasExplicitParameterList &&
|
||||
anonymousFunction.returnTypeRef is FirImplicitTypeRef
|
||||
) {
|
||||
print("(<no-parameters>)")
|
||||
}
|
||||
anonymousFunction.valueParameters.renderParameters()
|
||||
print(": ")
|
||||
anonymousFunction.returnTypeRef.accept(this)
|
||||
|
||||
+1
@@ -282,6 +282,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
isMutable = true
|
||||
}
|
||||
+booleanField("isLambda")
|
||||
+booleanField("hasExplicitParameterList")
|
||||
+typeParameters
|
||||
+field(typeRef, withReplace = true)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user