From cef6cd765ce9da05fa06bcd16bcc82759051a2f1 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Fri, 10 Apr 2020 12:22:50 +0300 Subject: [PATCH] [FIR] Make ConeEffectDeclaration an abstract class --- .../fir/contracts/description/ConeContractDescription.kt | 2 +- .../kotlin/fir/contracts/description/ConeEffects.kt | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) 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