[FIR] introduce FirReceiverParameter
^KT-54417
This commit is contained in:
committed by
Space Team
parent
e6801abce8
commit
be7d282974
+18
-3
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2022 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.
|
||||
*/
|
||||
|
||||
@@ -60,7 +60,13 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
||||
val functionBuilder by builder {
|
||||
parents += declarationBuilder
|
||||
parents += annotationContainerBuilder
|
||||
fields from function without listOf("symbol", "resolvePhase", "controlFlowGraphReference", "receiverTypeRef", "typeParameters")
|
||||
fields from function without listOf(
|
||||
"symbol",
|
||||
"resolvePhase",
|
||||
"controlFlowGraphReference",
|
||||
"receiverParameter",
|
||||
"typeParameters",
|
||||
)
|
||||
}
|
||||
|
||||
val loopJumpBuilder by builder {
|
||||
@@ -112,6 +118,14 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
||||
withCopy()
|
||||
}
|
||||
|
||||
builder(annotation) {
|
||||
withCopy()
|
||||
}
|
||||
|
||||
builder(receiverParameter) {
|
||||
withCopy()
|
||||
}
|
||||
|
||||
builder(annotationCall) {
|
||||
parents += callBuilder
|
||||
default("argumentList") {
|
||||
@@ -120,6 +134,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
||||
default("argumentMapping", "FirEmptyAnnotationArgumentMapping")
|
||||
default("annotationTypeRef", "FirImplicitTypeRefImpl(null)")
|
||||
useTypes(emptyArgumentListType, emptyAnnotationArgumentMappingType, implicitTypeRefType)
|
||||
withCopy()
|
||||
}
|
||||
|
||||
builder(errorAnnotationCall) {
|
||||
@@ -303,7 +318,7 @@ object BuilderConfigurator : AbstractBuilderConfigurator<FirTreeBuilder>(FirTree
|
||||
}
|
||||
|
||||
builder(valueParameter, type = "FirDefaultSetterValueParameter") {
|
||||
defaultNull("defaultValue", "initializer", "delegate", "receiverTypeRef", "getter", "setter")
|
||||
defaultNull("defaultValue", "initializer", "delegate", "receiverParameter", "getter", "setter")
|
||||
defaultFalse("isCrossinline", "isNoinline", "isVararg", "isVar")
|
||||
defaultTrue("isVal")
|
||||
}
|
||||
|
||||
+1
-3
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2022 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.
|
||||
*/
|
||||
|
||||
@@ -53,8 +53,6 @@ object FieldSets {
|
||||
|
||||
val typeRefField = field(typeRef, withReplace = true)
|
||||
|
||||
fun receiverTypeRef(nullable: Boolean = false) = field("receiverTypeRef", typeRef, nullable)
|
||||
|
||||
val valueParameters by lazy { fieldList(valueParameter) }
|
||||
|
||||
val typeParameters by lazy { fieldList("typeParameters", typeParameter) }
|
||||
|
||||
+2
-1
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2022 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.
|
||||
*/
|
||||
|
||||
@@ -40,6 +40,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
|
||||
|
||||
val variable by sealedElement(Declaration, callableDeclaration, statement)
|
||||
val valueParameter by element(Declaration, variable, controlFlowGraphOwner)
|
||||
val receiverParameter by element(Declaration, annotationContainer)
|
||||
val property by element(Declaration, variable, typeParametersOwner, controlFlowGraphOwner)
|
||||
val field by element(Declaration, variable, controlFlowGraphOwner)
|
||||
val enumEntry by element(Declaration, variable)
|
||||
|
||||
+7
-7
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2022 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.
|
||||
*/
|
||||
|
||||
@@ -219,7 +219,7 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
||||
defaultFalse("isVar", withGetter = true)
|
||||
|
||||
defaultNull(
|
||||
"receiverTypeRef",
|
||||
"receiverParameter",
|
||||
"initializer",
|
||||
"delegate",
|
||||
"getter", "setter",
|
||||
@@ -236,13 +236,13 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
||||
}
|
||||
publicImplementation()
|
||||
|
||||
defaultNull("receiverTypeRef", "delegate", "getter", "setter", withGetter = true)
|
||||
defaultNull("receiverParameter", "delegate", "getter", "setter", withGetter = true)
|
||||
}
|
||||
|
||||
impl(enumEntry) {
|
||||
defaultTrue("isVal", withGetter = true)
|
||||
defaultFalse("isVar", withGetter = true)
|
||||
defaultNull("receiverTypeRef", "delegate", "getter", "setter", withGetter = true)
|
||||
defaultNull("receiverParameter", "delegate", "getter", "setter", withGetter = true)
|
||||
}
|
||||
|
||||
impl(namedArgumentExpression) {
|
||||
@@ -331,7 +331,7 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
||||
noImpl(anonymousFunctionExpression)
|
||||
|
||||
impl(propertyAccessor) {
|
||||
default("receiverTypeRef") {
|
||||
default("receiverParameter") {
|
||||
value = "null"
|
||||
withGetter = true
|
||||
}
|
||||
@@ -434,7 +434,7 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
||||
}
|
||||
|
||||
impl(errorFunction) {
|
||||
defaultNull("receiverTypeRef", "body", withGetter = true)
|
||||
defaultNull("receiverParameter", "body", withGetter = true)
|
||||
default("returnTypeRef", "FirErrorTypeRefImpl(null, null, diagnostic, false)")
|
||||
useTypes(errorTypeRefImplType)
|
||||
}
|
||||
@@ -469,7 +469,7 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
||||
impl(valueParameter) {
|
||||
defaultTrue("isVal", withGetter = true)
|
||||
defaultFalse("isVar", withGetter = true)
|
||||
defaultNull("getter", "setter", "initializer", "delegate", "receiverTypeRef", withGetter = true)
|
||||
defaultNull("getter", "setter", "initializer", "delegate", "receiverParameter", withGetter = true)
|
||||
}
|
||||
|
||||
impl(valueParameter, "FirDefaultSetterValueParameter") {
|
||||
|
||||
+6
-1
@@ -88,7 +88,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
|
||||
callableDeclaration.configure {
|
||||
+field("returnTypeRef", typeRef, withReplace = true).withTransform()
|
||||
+field("receiverTypeRef", typeRef, nullable = true, withReplace = true).withTransform()
|
||||
+field("receiverParameter", receiverParameter, nullable = true, withReplace = true).withTransform()
|
||||
+field("deprecationsProvider", deprecationsProviderType).withReplace().apply { isMutable = true }
|
||||
+symbol("FirCallableSymbol", "out FirCallableDeclaration")
|
||||
|
||||
@@ -393,6 +393,11 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
||||
generateBooleanFields("crossinline", "noinline", "vararg")
|
||||
}
|
||||
|
||||
receiverParameter.configure {
|
||||
+field("type", typeRef).withTransform()
|
||||
+annotations
|
||||
}
|
||||
|
||||
variable.configure {
|
||||
+name
|
||||
+symbol("FirVariableSymbol", "out FirVariable")
|
||||
|
||||
Reference in New Issue
Block a user