[FIR] Fix Disappeared CONTRACT_NOT_ALLOWED
https://youtrack.jetbrains.com/issue/KT-60004/K2-Disappeared-CONTRACTNOTALLOWED Merge-request: KT-MR-12613 Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
834927a901
commit
0fb853a995
+2
@@ -10,6 +10,7 @@ package org.jetbrains.kotlin.fir.contracts
|
||||
|
||||
import org.jetbrains.kotlin.KtSourceElement
|
||||
import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
|
||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
@@ -20,6 +21,7 @@ import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
abstract class FirLegacyRawContractDescription : FirContractDescription() {
|
||||
abstract override val source: KtSourceElement?
|
||||
abstract val contractCall: FirFunctionCall
|
||||
abstract val diagnostic: ConeDiagnostic?
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitLegacyRawContractDescription(this, data)
|
||||
|
||||
+2
@@ -10,6 +10,7 @@ package org.jetbrains.kotlin.fir.contracts
|
||||
|
||||
import org.jetbrains.kotlin.KtSourceElement
|
||||
import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
@@ -20,6 +21,7 @@ abstract class FirResolvedContractDescription : FirContractDescription() {
|
||||
abstract override val source: KtSourceElement?
|
||||
abstract val effects: List<FirEffectDeclaration>
|
||||
abstract val unresolvedEffects: List<FirContractElementDeclaration>
|
||||
abstract val diagnostic: ConeDiagnostic?
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitResolvedContractDescription(this, data)
|
||||
|
||||
+3
@@ -15,17 +15,20 @@ import org.jetbrains.kotlin.KtSourceElement
|
||||
import org.jetbrains.kotlin.fir.builder.FirBuilderDsl
|
||||
import org.jetbrains.kotlin.fir.contracts.FirLegacyRawContractDescription
|
||||
import org.jetbrains.kotlin.fir.contracts.impl.FirLegacyRawContractDescriptionImpl
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
|
||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||
|
||||
@FirBuilderDsl
|
||||
class FirLegacyRawContractDescriptionBuilder {
|
||||
var source: KtSourceElement? = null
|
||||
lateinit var contractCall: FirFunctionCall
|
||||
var diagnostic: ConeDiagnostic? = null
|
||||
|
||||
fun build(): FirLegacyRawContractDescription {
|
||||
return FirLegacyRawContractDescriptionImpl(
|
||||
source,
|
||||
contractCall,
|
||||
diagnostic,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+3
@@ -17,18 +17,21 @@ import org.jetbrains.kotlin.fir.contracts.FirContractElementDeclaration
|
||||
import org.jetbrains.kotlin.fir.contracts.FirEffectDeclaration
|
||||
import org.jetbrains.kotlin.fir.contracts.FirResolvedContractDescription
|
||||
import org.jetbrains.kotlin.fir.contracts.impl.FirResolvedContractDescriptionImpl
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
|
||||
|
||||
@FirBuilderDsl
|
||||
class FirResolvedContractDescriptionBuilder {
|
||||
var source: KtSourceElement? = null
|
||||
val effects: MutableList<FirEffectDeclaration> = mutableListOf()
|
||||
val unresolvedEffects: MutableList<FirContractElementDeclaration> = mutableListOf()
|
||||
var diagnostic: ConeDiagnostic? = null
|
||||
|
||||
fun build(): FirResolvedContractDescription {
|
||||
return FirResolvedContractDescriptionImpl(
|
||||
source,
|
||||
effects,
|
||||
unresolvedEffects,
|
||||
diagnostic,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -12,6 +12,7 @@ package org.jetbrains.kotlin.fir.contracts.impl
|
||||
|
||||
import org.jetbrains.kotlin.KtSourceElement
|
||||
import org.jetbrains.kotlin.fir.contracts.FirLegacyRawContractDescription
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
|
||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
@@ -19,6 +20,7 @@ import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
internal class FirLegacyRawContractDescriptionImpl(
|
||||
override val source: KtSourceElement?,
|
||||
override var contractCall: FirFunctionCall,
|
||||
override val diagnostic: ConeDiagnostic?,
|
||||
) : FirLegacyRawContractDescription() {
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
contractCall.accept(visitor, data)
|
||||
|
||||
+2
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.KtSourceElement
|
||||
import org.jetbrains.kotlin.fir.contracts.FirContractElementDeclaration
|
||||
import org.jetbrains.kotlin.fir.contracts.FirEffectDeclaration
|
||||
import org.jetbrains.kotlin.fir.contracts.FirResolvedContractDescription
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
import org.jetbrains.kotlin.fir.visitors.transformInplace
|
||||
@@ -22,6 +23,7 @@ internal class FirResolvedContractDescriptionImpl(
|
||||
override val source: KtSourceElement?,
|
||||
override val effects: MutableList<FirEffectDeclaration>,
|
||||
override val unresolvedEffects: MutableList<FirContractElementDeclaration>,
|
||||
override val diagnostic: ConeDiagnostic?,
|
||||
) : FirResolvedContractDescription() {
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
effects.forEach { it.accept(visitor, data) }
|
||||
|
||||
Reference in New Issue
Block a user