diff --git a/kotlin-native/backend.native/tests/runtime/collections/BitSet.kt b/kotlin-native/backend.native/tests/runtime/collections/BitSet.kt index 98abcad5db8..1ab65069c48 100644 --- a/kotlin-native/backend.native/tests/runtime/collections/BitSet.kt +++ b/kotlin-native/backend.native/tests/runtime/collections/BitSet.kt @@ -3,6 +3,8 @@ * that can be found in the LICENSE file. */ +@file:OptIn(kotlin.native.ObsoleteNativeApi::class) + package runtime.collections.BitSet import kotlin.test.* diff --git a/libraries/stdlib/native-wasm/src/kotlin/text/regex/AbstractCharClass.kt b/libraries/stdlib/native-wasm/src/kotlin/text/regex/AbstractCharClass.kt index 7a43eb51a9d..26ae7b06676 100644 --- a/libraries/stdlib/native-wasm/src/kotlin/text/regex/AbstractCharClass.kt +++ b/libraries/stdlib/native-wasm/src/kotlin/text/regex/AbstractCharClass.kt @@ -28,6 +28,7 @@ import kotlin.native.concurrent.AtomicReference import kotlin.native.concurrent.freeze import kotlin.native.BitSet import kotlin.native.FreezingIsDeprecated +import kotlin.native.ObsoleteNativeApi /** * Unicode category (i.e. Ll, Lu). @@ -49,7 +50,7 @@ internal class UnicodeCategoryScope(category: Int) : UnicodeCategory(category) { * This class represents character classes, i.e. sets of character either predefined or user defined. * Note: this class represent a token, not node, so being constructed by lexer. */ -@OptIn(FreezingIsDeprecated::class) +@OptIn(FreezingIsDeprecated::class, ObsoleteNativeApi::class) internal abstract class AbstractCharClass : SpecialToken() { /** * Show if the class has alternative meaning: diff --git a/libraries/stdlib/native-wasm/src/kotlin/text/regex/CharClass.kt b/libraries/stdlib/native-wasm/src/kotlin/text/regex/CharClass.kt index 5a65d8525b1..7a5cad20825 100644 --- a/libraries/stdlib/native-wasm/src/kotlin/text/regex/CharClass.kt +++ b/libraries/stdlib/native-wasm/src/kotlin/text/regex/CharClass.kt @@ -23,11 +23,13 @@ package kotlin.text.regex import kotlin.native.BitSet +import kotlin.native.ObsoleteNativeApi /** * User defined character classes (e.g. [abef]). */ // TODO: replace the implementation with one using BitSet for first 256 symbols and a hash table / tree for the rest of UTF. +@OptIn(ObsoleteNativeApi::class) internal class CharClass(val ignoreCase: Boolean = false, negative: Boolean = false) : AbstractCharClass() { var invertedSurrogates = false diff --git a/libraries/stdlib/wasm/src/kotlin/text/regex/ObsoleteNativeApi.kt b/libraries/stdlib/wasm/src/kotlin/text/regex/ObsoleteNativeApi.kt new file mode 100644 index 00000000000..3100aabeba7 --- /dev/null +++ b/libraries/stdlib/wasm/src/kotlin/text/regex/ObsoleteNativeApi.kt @@ -0,0 +1,33 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package kotlin.native + +import kotlin.annotation.AnnotationTarget.* + +/** + * This annotation marks the Kotlin/Native standard library API that is considered obsolete and is being phased out. + * + * This is an internal copy of the public K/N annotation. + * It is used to [OptIn] obsolete K/N API used in the shared native-wasm directory. + */ +@RequiresOptIn(message = "This API is obsolete and subject to removal in a future release.", level = RequiresOptIn.Level.WARNING) +@Retention(AnnotationRetention.BINARY) +@Target( + AnnotationTarget.CLASS, + AnnotationTarget.ANNOTATION_CLASS, + AnnotationTarget.PROPERTY, + AnnotationTarget.FIELD, + AnnotationTarget.LOCAL_VARIABLE, + AnnotationTarget.VALUE_PARAMETER, + AnnotationTarget.CONSTRUCTOR, + AnnotationTarget.FUNCTION, + AnnotationTarget.PROPERTY_GETTER, + AnnotationTarget.PROPERTY_SETTER, + AnnotationTarget.TYPEALIAS +) +@MustBeDocumented +@SinceKotlin("1.9") +internal annotation class ObsoleteNativeApi \ No newline at end of file