[TMP] Make context in inference components universal

This commit is contained in:
Dmitriy Novozhilov
2019-12-09 15:14:45 +03:00
parent 4f3ff84d30
commit 5577f0f8cb
21 changed files with 64 additions and 16 deletions
@@ -26,5 +26,7 @@ interface FirTypedDeclaration : FirDeclaration, FirAnnotationContainer {
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitTypedDeclaration(this, data)
fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirTypedDeclaration
}
@@ -99,6 +99,10 @@ class FirAnonymousFunctionImpl(
resolvePhase = newResolvePhase
}
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
returnTypeRef = newReturnTypeRef
}
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
typeRef = newTypeRef
}
@@ -103,4 +103,8 @@ open class FirConstructorImpl(
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
resolvePhase = newResolvePhase
}
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
returnTypeRef = newReturnTypeRef
}
}
@@ -102,4 +102,8 @@ class FirDefaultSetterValueParameter(
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
resolvePhase = newResolvePhase
}
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
returnTypeRef = newReturnTypeRef
}
}
@@ -85,4 +85,8 @@ class FirErrorFunctionImpl(
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
resolvePhase = newResolvePhase
}
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
returnTypeRef = newReturnTypeRef
}
}
@@ -98,4 +98,8 @@ class FirFieldImpl(
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
resolvePhase = newResolvePhase
}
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
returnTypeRef = newReturnTypeRef
}
}
@@ -60,4 +60,6 @@ abstract class FirModifiableConstructor : FirPureAbstractElement(), FirConstruct
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirModifiableConstructor
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
abstract override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
}
@@ -48,4 +48,6 @@ interface FirModifiableFunction<F : FirFunction<F>> : FirFunction<F>, FirAbstra
override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirModifiableFunction<F>
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
}
@@ -53,4 +53,6 @@ interface FirModifiableVariable<F : FirVariable<F>> : FirVariable<F>, FirAbstra
override fun <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirModifiableVariable<F>
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
}
@@ -109,4 +109,8 @@ open class FirPropertyAccessorImpl(
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
resolvePhase = newResolvePhase
}
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
returnTypeRef = newReturnTypeRef
}
}
@@ -125,4 +125,8 @@ class FirPropertyImpl(
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
resolvePhase = newResolvePhase
}
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
returnTypeRef = newReturnTypeRef
}
}
@@ -110,4 +110,8 @@ open class FirSimpleFunctionImpl(
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
resolvePhase = newResolvePhase
}
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
returnTypeRef = newReturnTypeRef
}
}
@@ -102,4 +102,8 @@ open class FirValueParameterImpl(
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
resolvePhase = newResolvePhase
}
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
returnTypeRef = newReturnTypeRef
}
}
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.fir.tree.generator
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.annotations
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.arguments
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.body
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.calleeReference
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.classKind
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.controlFlowGraphReferenceField
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.declarations
@@ -69,7 +68,7 @@ object NodeConfigurator : AbstractFieldConfigurator() {
}
typedDeclaration.configure {
+field("returnTypeRef", typeRef).withTransform()
+field("returnTypeRef", typeRef, withReplace = true).withTransform()
}
callableDeclaration.configure {