[TMP] Make context in inference components universal
This commit is contained in:
@@ -112,4 +112,8 @@ class FirJavaConstructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override var containerSource: DeserializedContainerSource? = null
|
override var containerSource: DeserializedContainerSource? = null
|
||||||
|
|
||||||
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
|
returnTypeRef = newReturnTypeRef
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -97,6 +97,10 @@ class FirJavaField(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
|
returnTypeRef = newReturnTypeRef
|
||||||
|
}
|
||||||
|
|
||||||
override val delegate: FirExpression?
|
override val delegate: FirExpression?
|
||||||
get() = null
|
get() = null
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.fir.FirSession
|
|||||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator
|
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.UniversalConeInferenceContext
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintIncorporator
|
import org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintIncorporator
|
||||||
@@ -19,7 +20,6 @@ import org.jetbrains.kotlin.resolve.calls.inference.model.NewConstraintSystemImp
|
|||||||
import org.jetbrains.kotlin.types.AbstractTypeApproximator
|
import org.jetbrains.kotlin.types.AbstractTypeApproximator
|
||||||
import org.jetbrains.kotlin.types.checker.KotlinTypeRefiner
|
import org.jetbrains.kotlin.types.checker.KotlinTypeRefiner
|
||||||
import org.jetbrains.kotlin.types.model.SimpleTypeMarker
|
import org.jetbrains.kotlin.types.model.SimpleTypeMarker
|
||||||
import org.jetbrains.kotlin.types.model.TypeSystemInferenceExtensionContextDelegate
|
|
||||||
|
|
||||||
fun ConeTypeContext.hasNullableSuperType(type: ConeKotlinType): Boolean {
|
fun ConeTypeContext.hasNullableSuperType(type: ConeKotlinType): Boolean {
|
||||||
if (type is ConeClassLikeType) return false
|
if (type is ConeClassLikeType) return false
|
||||||
@@ -41,7 +41,7 @@ class TypeParameterBasedTypeVariable(val typeParameterSymbol: FirTypeParameterSy
|
|||||||
ConeTypeVariable(typeParameterSymbol.name.identifier)
|
ConeTypeVariable(typeParameterSymbol.name.identifier)
|
||||||
|
|
||||||
class InferenceComponents(
|
class InferenceComponents(
|
||||||
val ctx: TypeSystemInferenceExtensionContextDelegate,
|
val ctx: UniversalConeInferenceContext,
|
||||||
val session: FirSession,
|
val session: FirSession,
|
||||||
val returnTypeCalculator: ReturnTypeCalculator,
|
val returnTypeCalculator: ReturnTypeCalculator,
|
||||||
val scopeSession: ScopeSession
|
val scopeSession: ScopeSession
|
||||||
|
|||||||
+1
-6
@@ -15,12 +15,7 @@ import org.jetbrains.kotlin.fir.resolve.calls.InferenceComponents
|
|||||||
import org.jetbrains.kotlin.fir.resolve.dfa.DataFlowInferenceContext
|
import org.jetbrains.kotlin.fir.resolve.dfa.DataFlowInferenceContext
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator
|
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.ConeClassErrorType
|
|
||||||
import org.jetbrains.kotlin.fir.types.ErrorTypeConstructor
|
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
import org.jetbrains.kotlin.types.model.KotlinTypeMarker
|
|
||||||
import org.jetbrains.kotlin.types.model.SimpleTypeMarker
|
|
||||||
import org.jetbrains.kotlin.types.model.TypeConstructorMarker
|
|
||||||
import org.jetbrains.kotlin.types.model.TypeSystemInferenceExtensionContextDelegate
|
import org.jetbrains.kotlin.types.model.TypeSystemInferenceExtensionContextDelegate
|
||||||
|
|
||||||
inline fun <reified T : FirElement> FirBasedSymbol<*>.firUnsafe(): T {
|
inline fun <reified T : FirElement> FirBasedSymbol<*>.firUnsafe(): T {
|
||||||
@@ -37,7 +32,7 @@ internal inline var FirExpression.resultType: FirTypeRef
|
|||||||
replaceTypeRef(type)
|
replaceTypeRef(type)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal interface UniversalConeInferenceContext :
|
interface UniversalConeInferenceContext :
|
||||||
ConeInferenceContext, TypeSystemInferenceExtensionContextDelegate, DataFlowInferenceContext
|
ConeInferenceContext, TypeSystemInferenceExtensionContextDelegate, DataFlowInferenceContext
|
||||||
|
|
||||||
internal fun FirSession.inferenceContext(): UniversalConeInferenceContext {
|
internal fun FirSession.inferenceContext(): UniversalConeInferenceContext {
|
||||||
|
|||||||
+6
-4
@@ -12,12 +12,15 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyAccessor
|
|||||||
import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl
|
import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl
|
||||||
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
|
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
|
||||||
import org.jetbrains.kotlin.fir.diagnostics.FirSimpleDiagnostic
|
import org.jetbrains.kotlin.fir.diagnostics.FirSimpleDiagnostic
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirStatement
|
import org.jetbrains.kotlin.fir.expressions.FirStatement
|
||||||
import org.jetbrains.kotlin.fir.resolve.*
|
import org.jetbrains.kotlin.fir.resolve.*
|
||||||
import org.jetbrains.kotlin.fir.resolve.calls.ImplicitDispatchReceiverValue
|
import org.jetbrains.kotlin.fir.resolve.calls.ImplicitDispatchReceiverValue
|
||||||
import org.jetbrains.kotlin.fir.resolve.calls.ImplicitExtensionReceiverValue
|
import org.jetbrains.kotlin.fir.resolve.calls.ImplicitExtensionReceiverValue
|
||||||
import org.jetbrains.kotlin.fir.resolve.calls.extractLambdaInfoFromFunctionalType
|
import org.jetbrains.kotlin.fir.resolve.calls.extractLambdaInfoFromFunctionalType
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.ControlFlowGraphReferenceTransformer
|
import org.jetbrains.kotlin.fir.resolve.transformers.ControlFlowGraphReferenceTransformer
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirCallCompletionResultsWriterTransformer
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirStatusResolveTransformer.Companion.resolveStatus
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirStatusResolveTransformer.Companion.resolveStatus
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.StoreType
|
import org.jetbrains.kotlin.fir.resolve.transformers.StoreType
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.transformVarargTypeToArrayType
|
import org.jetbrains.kotlin.fir.resolve.transformers.transformVarargTypeToArrayType
|
||||||
@@ -32,6 +35,7 @@ import org.jetbrains.kotlin.fir.types.impl.FirResolvedTypeRefImpl
|
|||||||
import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult
|
import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||||
import org.jetbrains.kotlin.fir.visitors.compose
|
import org.jetbrains.kotlin.fir.visitors.compose
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.transformSingle
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||||
|
|
||||||
@@ -460,11 +464,9 @@ class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransformer)
|
|||||||
session,
|
session,
|
||||||
ConeSubstitutor.Empty,
|
ConeSubstitutor.Empty,
|
||||||
returnTypeCalculator,
|
returnTypeCalculator,
|
||||||
inferenceComponents.approximator,
|
inferenceComponents.approximator
|
||||||
integerOperatorsTypeUpdater,
|
|
||||||
integerLiteralTypeApproximator
|
|
||||||
)
|
)
|
||||||
af.transformSingle(writer, data.expectedTypeRef.coneTypeSafe<ConeKotlinType>()?.toExpectedType())
|
af.transformSingle(writer, null)
|
||||||
val returnTypes = dataFlowAnalyzer.returnExpressionsOfAnonymousFunction(af).mapNotNull { (it as? FirExpression)?.resultType?.coneTypeUnsafe() }
|
val returnTypes = dataFlowAnalyzer.returnExpressionsOfAnonymousFunction(af).mapNotNull { (it as? FirExpression)?.resultType?.coneTypeUnsafe() }
|
||||||
af.replaceReturnTypeRef(af.returnTypeRef.resolvedTypeFromPrototype(inferenceComponents.ctx.commonSuperTypeOrNull(returnTypes) ?: session.builtinTypes.unitType.coneTypeUnsafe()))
|
af.replaceReturnTypeRef(af.returnTypeRef.resolvedTypeFromPrototype(inferenceComponents.ctx.commonSuperTypeOrNull(returnTypes) ?: session.builtinTypes.unitType.coneTypeUnsafe()))
|
||||||
af.replaceTypeRef(af.constructFunctionalTypeRef(session))
|
af.replaceTypeRef(af.constructFunctionalTypeRef(session))
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ FILE: complex.kt
|
|||||||
@R|kotlin/jvm/Throws|(<getClass>(<Unresolved name: IOException>#), <getClass>(<Unresolved name: ResponseParseException>#)) public final fun fetchPluginReleaseDate(pluginId: R|class error: Symbol not found, for `PluginId`|, version: R|kotlin/String|, channel: R|kotlin/String?|): R|class error: Symbol not found, for `LocalDate?`| {
|
@R|kotlin/jvm/Throws|(<getClass>(<Unresolved name: IOException>#), <getClass>(<Unresolved name: ResponseParseException>#)) public final fun fetchPluginReleaseDate(pluginId: R|class error: Symbol not found, for `PluginId`|, version: R|kotlin/String|, channel: R|kotlin/String?|): R|class error: Symbol not found, for `LocalDate?`| {
|
||||||
lval url: R|kotlin/String| = <strcat>(String(https://plugins.jetbrains.com/api/plugins/), R|<local>/pluginId|.<Unresolved name: idString>#.R|kotlin/toString|(), String(/updates?version=), R|<local>/version|.R|kotlin/Any.toString|())
|
lval url: R|kotlin/String| = <strcat>(String(https://plugins.jetbrains.com/api/plugins/), R|<local>/pluginId|.<Unresolved name: idString>#.R|kotlin/toString|(), String(/updates?version=), R|<local>/version|.R|kotlin/Any.toString|())
|
||||||
lval pluginDTOs: R|kotlin/Array<class error: Symbol not found, for `PluginDTO`>| = try {
|
lval pluginDTOs: R|kotlin/Array<class error: Symbol not found, for `PluginDTO`>| = try {
|
||||||
<Unresolved name: HttpRequests>#.<Unresolved name: request>#(R|<local>/url|).<Unresolved name: connect>#(<L> = connect@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: fromJson> {
|
<Unresolved name: HttpRequests>#.<Unresolved name: request>#(R|<local>/url|).<Unresolved name: connect>#(<L> = connect@fun <anonymous>(): R|class error: Unresolved name: fromJson| {
|
||||||
<Unresolved name: GsonBuilder>#().<Unresolved name: create>#().<Unresolved name: fromJson>#(<Unresolved name: it>#.<Unresolved name: inputStream>#.<Ambiguity: reader, [kotlin/io/reader, kotlin/io/reader, kotlin/io/reader]>#(), <getClass>(Q|kotlin/Array|).R|kotlin/jvm/java|)
|
<Unresolved name: GsonBuilder>#().<Unresolved name: create>#().<Unresolved name: fromJson>#(<Unresolved name: it>#.<Unresolved name: inputStream>#.<Ambiguity: reader, [kotlin/io/reader, kotlin/io/reader, kotlin/io/reader]>#(), <getClass>(Q|kotlin/Array|).R|kotlin/jvm/java|)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
FILE: main.kt
|
FILE: main.kt
|
||||||
public final fun test(): R|kotlin/Unit| {
|
public final fun test(): R|kotlin/Unit| {
|
||||||
<Inapplicable(INAPPLICABLE): [/Foo.Foo]>#(<L> = Foo@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: it> {
|
<Inapplicable(INAPPLICABLE): [/Foo.Foo]>#(<L> = Foo@fun <anonymous>(): R|class error: Unresolved name: it| {
|
||||||
<Unresolved name: it>#
|
<Unresolved name: it>#
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -26,5 +26,7 @@ interface FirTypedDeclaration : FirDeclaration, FirAnnotationContainer {
|
|||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitTypedDeclaration(this, data)
|
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
|
fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirTypedDeclaration
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -99,6 +99,10 @@ class FirAnonymousFunctionImpl(
|
|||||||
resolvePhase = newResolvePhase
|
resolvePhase = newResolvePhase
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
|
returnTypeRef = newReturnTypeRef
|
||||||
|
}
|
||||||
|
|
||||||
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
override fun replaceTypeRef(newTypeRef: FirTypeRef) {
|
||||||
typeRef = newTypeRef
|
typeRef = newTypeRef
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,4 +103,8 @@ open class FirConstructorImpl(
|
|||||||
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
||||||
resolvePhase = newResolvePhase
|
resolvePhase = newResolvePhase
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
|
returnTypeRef = newReturnTypeRef
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -102,4 +102,8 @@ class FirDefaultSetterValueParameter(
|
|||||||
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
||||||
resolvePhase = newResolvePhase
|
resolvePhase = newResolvePhase
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
|
returnTypeRef = newReturnTypeRef
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -85,4 +85,8 @@ class FirErrorFunctionImpl(
|
|||||||
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
||||||
resolvePhase = newResolvePhase
|
resolvePhase = newResolvePhase
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
|
returnTypeRef = newReturnTypeRef
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,4 +98,8 @@ class FirFieldImpl(
|
|||||||
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
||||||
resolvePhase = newResolvePhase
|
resolvePhase = newResolvePhase
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
|
returnTypeRef = newReturnTypeRef
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -60,4 +60,6 @@ abstract class FirModifiableConstructor : FirPureAbstractElement(), FirConstruct
|
|||||||
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirModifiableConstructor
|
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirModifiableConstructor
|
||||||
|
|
||||||
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
||||||
|
|
||||||
|
abstract override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -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 <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirModifiableFunction<F>
|
||||||
|
|
||||||
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
||||||
|
|
||||||
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -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 <D> transformOtherChildren(transformer: FirTransformer<D>, data: D): FirModifiableVariable<F>
|
||||||
|
|
||||||
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
||||||
|
|
||||||
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -109,4 +109,8 @@ open class FirPropertyAccessorImpl(
|
|||||||
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
||||||
resolvePhase = newResolvePhase
|
resolvePhase = newResolvePhase
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
|
returnTypeRef = newReturnTypeRef
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -125,4 +125,8 @@ class FirPropertyImpl(
|
|||||||
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
||||||
resolvePhase = newResolvePhase
|
resolvePhase = newResolvePhase
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
|
returnTypeRef = newReturnTypeRef
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -110,4 +110,8 @@ open class FirSimpleFunctionImpl(
|
|||||||
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
||||||
resolvePhase = newResolvePhase
|
resolvePhase = newResolvePhase
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
|
returnTypeRef = newReturnTypeRef
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -102,4 +102,8 @@ open class FirValueParameterImpl(
|
|||||||
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) {
|
||||||
resolvePhase = newResolvePhase
|
resolvePhase = newResolvePhase
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) {
|
||||||
|
returnTypeRef = newReturnTypeRef
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-2
@@ -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.annotations
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.arguments
|
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.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.classKind
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.controlFlowGraphReferenceField
|
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.controlFlowGraphReferenceField
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.declarations
|
import org.jetbrains.kotlin.fir.tree.generator.FieldSets.declarations
|
||||||
@@ -69,7 +68,7 @@ object NodeConfigurator : AbstractFieldConfigurator() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
typedDeclaration.configure {
|
typedDeclaration.configure {
|
||||||
+field("returnTypeRef", typeRef).withTransform()
|
+field("returnTypeRef", typeRef, withReplace = true).withTransform()
|
||||||
}
|
}
|
||||||
|
|
||||||
callableDeclaration.configure {
|
callableDeclaration.configure {
|
||||||
|
|||||||
Reference in New Issue
Block a user