[K/N] Make assert functions experimental with ExperimentalNativeApi
This commit is contained in:
committed by
Space Team
parent
245ef256bd
commit
b6c2ce2dc8
@@ -5,11 +5,14 @@
|
|||||||
|
|
||||||
package kotlin
|
package kotlin
|
||||||
|
|
||||||
|
import kotlin.experimental.ExperimentalNativeApi
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Throws an [AssertionError] if the [value] is false
|
* Throws an [AssertionError] if the [value] is false
|
||||||
* and runtime assertions have been enabled during compilation.
|
* and runtime assertions have been enabled during compilation.
|
||||||
*/
|
*/
|
||||||
@Suppress("NOTHING_TO_INLINE")
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
@ExperimentalNativeApi
|
||||||
public inline fun assert(value: Boolean) {
|
public inline fun assert(value: Boolean) {
|
||||||
assert(value) { "Assertion failed" }
|
assert(value) { "Assertion failed" }
|
||||||
}
|
}
|
||||||
@@ -18,6 +21,7 @@ public inline fun assert(value: Boolean) {
|
|||||||
* Throws an [AssertionError] calculated by [lazyMessage] if the [value] is false
|
* Throws an [AssertionError] calculated by [lazyMessage] if the [value] is false
|
||||||
* and runtime assertions have been enabled during compilation.
|
* and runtime assertions have been enabled during compilation.
|
||||||
*/
|
*/
|
||||||
|
@ExperimentalNativeApi
|
||||||
public inline fun assert(value: Boolean, lazyMessage: () -> Any) {
|
public inline fun assert(value: Boolean, lazyMessage: () -> Any) {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
val message = lazyMessage()
|
val message = lazyMessage()
|
||||||
|
|||||||
@@ -5,10 +5,11 @@
|
|||||||
|
|
||||||
package kotlin.native.concurrent
|
package kotlin.native.concurrent
|
||||||
|
|
||||||
|
import kotlin.experimental.ExperimentalNativeApi
|
||||||
import kotlin.native.internal.*
|
import kotlin.native.internal.*
|
||||||
import kotlinx.cinterop.*
|
import kotlinx.cinterop.*
|
||||||
|
|
||||||
@OptIn(FreezingIsDeprecated::class)
|
@OptIn(FreezingIsDeprecated::class, ExperimentalNativeApi::class)
|
||||||
public class Continuation0(block: () -> Unit,
|
public class Continuation0(block: () -> Unit,
|
||||||
private val invoker: CPointer<CFunction<(COpaquePointer?) -> Unit>>,
|
private val invoker: CPointer<CFunction<(COpaquePointer?) -> Unit>>,
|
||||||
private val singleShot: Boolean = false): Function0<Unit> {
|
private val singleShot: Boolean = false): Function0<Unit> {
|
||||||
@@ -32,7 +33,7 @@ public class Continuation0(block: () -> Unit,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(FreezingIsDeprecated::class)
|
@OptIn(FreezingIsDeprecated::class, ExperimentalNativeApi::class)
|
||||||
public class Continuation1<T1>(
|
public class Continuation1<T1>(
|
||||||
block: (p1: T1) -> Unit,
|
block: (p1: T1) -> Unit,
|
||||||
private val invoker: CPointer<CFunction<(COpaquePointer?) -> Unit>>,
|
private val invoker: CPointer<CFunction<(COpaquePointer?) -> Unit>>,
|
||||||
@@ -64,7 +65,7 @@ public class Continuation1<T1>(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(FreezingIsDeprecated::class)
|
@OptIn(FreezingIsDeprecated::class, ExperimentalNativeApi::class)
|
||||||
public class Continuation2<T1, T2>(
|
public class Continuation2<T1, T2>(
|
||||||
block: (p1: T1, p2: T2) -> Unit,
|
block: (p1: T1, p2: T2) -> Unit,
|
||||||
private val invoker: CPointer<CFunction<(COpaquePointer?) -> Unit>>,
|
private val invoker: CPointer<CFunction<(COpaquePointer?) -> Unit>>,
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package kotlin.native.concurrent
|
package kotlin.native.concurrent
|
||||||
|
|
||||||
|
import kotlin.experimental.ExperimentalNativeApi
|
||||||
import kotlin.native.internal.Frozen
|
import kotlin.native.internal.Frozen
|
||||||
|
|
||||||
@FreezingIsDeprecated
|
@FreezingIsDeprecated
|
||||||
@@ -84,6 +85,7 @@ internal object INITIALIZING {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@OptIn(ExperimentalNativeApi::class)
|
||||||
@FreezingIsDeprecated
|
@FreezingIsDeprecated
|
||||||
@Frozen
|
@Frozen
|
||||||
internal class AtomicLazyImpl<out T>(initializer: () -> T) : Lazy<T> {
|
internal class AtomicLazyImpl<out T>(initializer: () -> T) : Lazy<T> {
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package kotlin.native.concurrent
|
package kotlin.native.concurrent
|
||||||
|
|
||||||
|
import kotlin.experimental.ExperimentalNativeApi
|
||||||
import kotlin.native.internal.Frozen
|
import kotlin.native.internal.Frozen
|
||||||
|
|
||||||
@ThreadLocal
|
@ThreadLocal
|
||||||
@@ -14,7 +15,7 @@ private object CurrentThread {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Frozen
|
@Frozen
|
||||||
@OptIn(FreezingIsDeprecated::class)
|
@OptIn(FreezingIsDeprecated::class, ExperimentalNativeApi::class)
|
||||||
internal class Lock {
|
internal class Lock {
|
||||||
private val locker_ = AtomicInt(0)
|
private val locker_ = AtomicInt(0)
|
||||||
private val reenterCount_ = AtomicInt(0)
|
private val reenterCount_ = AtomicInt(0)
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package kotlin.native.concurrent
|
package kotlin.native.concurrent
|
||||||
|
|
||||||
|
import kotlin.experimental.ExperimentalNativeApi
|
||||||
import kotlin.native.internal.*
|
import kotlin.native.internal.*
|
||||||
import kotlinx.cinterop.*
|
import kotlinx.cinterop.*
|
||||||
|
|
||||||
@@ -42,6 +43,7 @@ public class MutableData constructor(capacity: Int = 16) {
|
|||||||
private val lock = Lock()
|
private val lock = Lock()
|
||||||
|
|
||||||
private fun resizeDataLocked(newSize: Int): Int {
|
private fun resizeDataLocked(newSize: Int): Int {
|
||||||
|
@OptIn(ExperimentalNativeApi::class)
|
||||||
assert(newSize >= size)
|
assert(newSize >= size)
|
||||||
if (newSize > buffer.size) {
|
if (newSize > buffer.size) {
|
||||||
val actualSize = maxOf(buffer.size * 3 / 2 + 1, newSize)
|
val actualSize = maxOf(buffer.size * 3 / 2 + 1, newSize)
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
@file:Suppress("DEPRECATION") // Char.toInt()
|
@file:Suppress("DEPRECATION") // Char.toInt()
|
||||||
package kotlin.text.regex
|
package kotlin.text.regex
|
||||||
|
|
||||||
|
import kotlin.experimental.ExperimentalNativeApi
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is base class for special tokens like character classes and quantifiers.
|
* This is base class for special tokens like character classes and quantifiers.
|
||||||
*/
|
*/
|
||||||
@@ -516,6 +518,7 @@ internal class Lexer(val patternString: String, flags: Int) {
|
|||||||
|
|
||||||
/** Process [lookAhead] in assumption that it's quantifier. */
|
/** Process [lookAhead] in assumption that it's quantifier. */
|
||||||
private fun processQuantifier(): Quantifier {
|
private fun processQuantifier(): Quantifier {
|
||||||
|
@OptIn(ExperimentalNativeApi::class)
|
||||||
assert(lookAhead == '{'.toInt())
|
assert(lookAhead == '{'.toInt())
|
||||||
val sb = StringBuilder(4)
|
val sb = StringBuilder(4)
|
||||||
var min = -1
|
var min = -1
|
||||||
|
|||||||
@@ -22,6 +22,8 @@
|
|||||||
|
|
||||||
package kotlin.text.regex
|
package kotlin.text.regex
|
||||||
|
|
||||||
|
import kotlin.experimental.ExperimentalNativeApi
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The node which marks end of the particular group.
|
* The node which marks end of the particular group.
|
||||||
*/
|
*/
|
||||||
@@ -45,6 +47,7 @@ open internal class FSet(val groupIndex: Int) : SimpleSet() {
|
|||||||
|
|
||||||
override fun processSecondPass(): FSet {
|
override fun processSecondPass(): FSet {
|
||||||
val result = super.processSecondPass()
|
val result = super.processSecondPass()
|
||||||
|
@OptIn(ExperimentalNativeApi::class)
|
||||||
assert(result == this)
|
assert(result == this)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,8 @@
|
|||||||
|
|
||||||
package kotlin.text.regex
|
package kotlin.text.regex
|
||||||
|
|
||||||
|
import kotlin.experimental.ExperimentalNativeApi
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents group, which is alternation of other subexpression.
|
* Represents group, which is alternation of other subexpression.
|
||||||
* One should think about "group" in this model as JointSet opening group and corresponding FSet closing group.
|
* One should think about "group" in this model as JointSet opening group and corresponding FSet closing group.
|
||||||
@@ -73,6 +75,7 @@ open internal class JointSet(children: List<AbstractSet>, fSet: FSet) : Abstract
|
|||||||
val fSet = this.fSet
|
val fSet = this.fSet
|
||||||
if (!fSet.secondPassVisited) {
|
if (!fSet.secondPassVisited) {
|
||||||
val newFSet = fSet.processSecondPass()
|
val newFSet = fSet.processSecondPass()
|
||||||
|
@OptIn(ExperimentalNativeApi::class)
|
||||||
assert(newFSet == fSet)
|
assert(newFSet == fSet)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,8 @@
|
|||||||
|
|
||||||
package kotlin.text.regex
|
package kotlin.text.regex
|
||||||
|
|
||||||
|
import kotlin.experimental.ExperimentalNativeApi
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Group node over subexpression without alternations.
|
* Group node over subexpression without alternations.
|
||||||
*/
|
*/
|
||||||
@@ -86,6 +88,7 @@ open internal class SingleSet(var kid: AbstractSet, fSet: FSet) : JointSet(listO
|
|||||||
override fun processSecondPass(): AbstractSet {
|
override fun processSecondPass(): AbstractSet {
|
||||||
if (secondPassVisited) {
|
if (secondPassVisited) {
|
||||||
if (fSet.isBackReferenced) {
|
if (fSet.isBackReferenced) {
|
||||||
|
@OptIn(ExperimentalNativeApi::class)
|
||||||
assert(backReferencedSet != null) // secondPassVisited
|
assert(backReferencedSet != null) // secondPassVisited
|
||||||
return backReferencedSet!!
|
return backReferencedSet!!
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user