Annotate contract DSL with @SinceKotlin

This commit is contained in:
Dmitry Savvinov
2017-10-13 18:34:58 +03:00
parent 5f775497e2
commit 0b88e7cfd0
3 changed files with 10 additions and 0 deletions
@@ -116,4 +116,5 @@ internal enum class RequireKotlinVersionKind {
* Specifies that this declaration is a part of special DSL, used for constructing function's contract.
*/
@Retention(AnnotationRetention.BINARY)
@SinceKotlin("1.2")
internal annotation class ContractsDsl
@@ -20,6 +20,7 @@ import kotlin.internal.ContractsDsl
import kotlin.internal.InlineOnly
@ContractsDsl
@SinceKotlin("1.2")
internal interface ContractBuilder {
@ContractsDsl fun returns(): Returns
@ContractsDsl fun returns(value: Any?): Returns
@@ -28,6 +29,7 @@ internal interface ContractBuilder {
}
@ContractsDsl
@SinceKotlin("1.2")
internal enum class InvocationKind {
@ContractsDsl AT_MOST_ONCE,
@ContractsDsl AT_LEAST_ONCE,
@@ -37,4 +39,5 @@ internal enum class InvocationKind {
@ContractsDsl
@InlineOnly
@SinceKotlin("1.2")
internal inline fun contract(builder: ContractBuilder.() -> Unit) { }
@@ -19,12 +19,15 @@ package kotlin.internal.contracts
import kotlin.internal.ContractsDsl
@ContractsDsl
@SinceKotlin("1.2")
internal interface Effect
@ContractsDsl
@SinceKotlin("1.2")
internal interface ConditionalEffect : Effect
@ContractsDsl
@SinceKotlin("1.2")
internal interface SimpleEffect {
@ContractsDsl
infix fun implies(booleanExpression: Boolean): ConditionalEffect
@@ -32,10 +35,13 @@ internal interface SimpleEffect {
@ContractsDsl
@SinceKotlin("1.2")
internal interface Returns : SimpleEffect
@ContractsDsl
@SinceKotlin("1.2")
internal interface ReturnsNotNull : SimpleEffect
@ContractsDsl
@SinceKotlin("1.2")
internal interface CallsInPlace : SimpleEffect