Annotate contract DSL with @SinceKotlin
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user