Extract InvocationKind class into separate file

This commit is contained in:
Dmitriy Novozhilov
2018-09-24 14:08:32 +03:00
parent 44ae7a19e6
commit ba71bbde6a
2 changed files with 18 additions and 11 deletions
@@ -56,14 +56,4 @@ class ReturnsEffectDeclaration(val value: ConstantReference) : EffectDeclaration
class CallsEffectDeclaration(val variableReference: VariableReference, val kind: InvocationKind) : EffectDeclaration {
override fun <R, D> accept(contractDescriptionVisitor: ContractDescriptionVisitor<R, D>, data: D): R =
contractDescriptionVisitor.visitCallsEffectDeclaration(this, data)
}
enum class InvocationKind {
AT_MOST_ONCE,
EXACTLY_ONCE,
AT_LEAST_ONCE,
UNKNOWN
}
fun InvocationKind.isDefinitelyVisited(): Boolean = this == InvocationKind.EXACTLY_ONCE || this == InvocationKind.AT_LEAST_ONCE
fun InvocationKind.canBeRevisited(): Boolean = this == InvocationKind.UNKNOWN || this == InvocationKind.AT_LEAST_ONCE
}
@@ -0,0 +1,17 @@
/*
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.contracts.description
enum class InvocationKind {
AT_MOST_ONCE,
EXACTLY_ONCE,
AT_LEAST_ONCE,
UNKNOWN
}
fun InvocationKind.isDefinitelyVisited(): Boolean = this == InvocationKind.EXACTLY_ONCE || this == InvocationKind.AT_LEAST_ONCE
fun InvocationKind.canBeRevisited(): Boolean = this == InvocationKind.UNKNOWN || this == InvocationKind.AT_LEAST_ONCE