diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/contracts/description/ConeContractDescription.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/contracts/description/ConeContractDescription.kt index d405769c4d8..7769571aa34 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/contracts/description/ConeContractDescription.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/contracts/description/ConeContractDescription.kt @@ -9,7 +9,7 @@ interface ConeContractDescriptionElement { fun accept(contractDescriptionVisitor: ConeContractDescriptionVisitor, data: D): R } -interface ConeEffectDeclaration : ConeContractDescriptionElement { +abstract class ConeEffectDeclaration : ConeContractDescriptionElement { override fun accept(contractDescriptionVisitor: ConeContractDescriptionVisitor, data: D): R = contractDescriptionVisitor.visitEffectDeclaration(this, data) } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/contracts/description/ConeEffects.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/contracts/description/ConeEffects.kt index e81096b73af..eb37a89e326 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/contracts/description/ConeEffects.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/contracts/description/ConeEffects.kt @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.contracts.description.InvocationKind * - if [effect] wasn't observed, we *can't* reason that [condition] is false * - if [condition] is true, we *can't* reason that [effect] will be observed. */ -class ConeConditionalEffectDeclaration(val effect: ConeEffectDeclaration, val condition: ConeBooleanExpression) : ConeEffectDeclaration { +class ConeConditionalEffectDeclaration(val effect: ConeEffectDeclaration, val condition: ConeBooleanExpression) : ConeEffectDeclaration() { override fun accept(contractDescriptionVisitor: ConeContractDescriptionVisitor, data: D): R = contractDescriptionVisitor.visitConditionalEffectDeclaration(this, data) } @@ -30,7 +30,7 @@ class ConeConditionalEffectDeclaration(val effect: ConeEffectDeclaration, val co /** * Effect which specifies that subroutine returns some particular value */ -class ConeReturnsEffectDeclaration(val value: ConeConstantReference) : ConeEffectDeclaration { +class ConeReturnsEffectDeclaration(val value: ConeConstantReference) : ConeEffectDeclaration() { override fun accept(contractDescriptionVisitor: ConeContractDescriptionVisitor, data: D): R = contractDescriptionVisitor.visitReturnsEffectDeclaration(this, data) @@ -41,7 +41,7 @@ class ConeReturnsEffectDeclaration(val value: ConeConstantReference) : ConeEffec * Effect which specifies, that during execution of subroutine, callable [valueParameterReference] will be invoked * [kind] amount of times, and will never be invoked after subroutine call is finished. */ -class ConeCallsEffectDeclaration(val valueParameterReference: ConeValueParameterReference, val kind: InvocationKind) : ConeEffectDeclaration { +class ConeCallsEffectDeclaration(val valueParameterReference: ConeValueParameterReference, val kind: InvocationKind) : ConeEffectDeclaration() { override fun accept(contractDescriptionVisitor: ConeContractDescriptionVisitor, data: D): R = contractDescriptionVisitor.visitCallsEffectDeclaration(this, data) } \ No newline at end of file