diff --git a/libraries/stdlib/src/kotlin/internal/Annotations.kt b/libraries/stdlib/src/kotlin/internal/Annotations.kt index 76c49b9f836..dcbfc25cc6b 100644 --- a/libraries/stdlib/src/kotlin/internal/Annotations.kt +++ b/libraries/stdlib/src/kotlin/internal/Annotations.kt @@ -95,6 +95,7 @@ internal annotation class AccessibleLateinitPropertyLiteral */ @Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.TYPEALIAS) @Retention(AnnotationRetention.SOURCE) +@SinceKotlin("1.2") internal annotation class RequireKotlin( val version: String, val message: String = "", @@ -106,6 +107,7 @@ internal annotation class RequireKotlin( /** * The kind of the version that is required by [RequireKotlin]. */ +@SinceKotlin("1.2") internal enum class RequireKotlinVersionKind { LANGUAGE_VERSION, COMPILER_VERSION, diff --git a/libraries/stdlib/src/kotlin/internal/PlatformImplementations.kt b/libraries/stdlib/src/kotlin/internal/PlatformImplementations.kt index d53f02588b2..f50047e4d7d 100644 --- a/libraries/stdlib/src/kotlin/internal/PlatformImplementations.kt +++ b/libraries/stdlib/src/kotlin/internal/PlatformImplementations.kt @@ -72,6 +72,6 @@ private fun getJavaVersion(): Int { * The function usages are validated to have literal argument values. */ @PublishedApi -@RequireKotlin("1.2", versionKind = RequireKotlinVersionKind.COMPILER_VERSION) +@SinceKotlin("1.2") internal fun apiVersionIsAtLeast(major: Int, minor: Int, patch: Int) = KotlinVersion.CURRENT.isAtLeast(major, minor, patch) \ No newline at end of file diff --git a/libraries/stdlib/src/kotlin/io/Closeable.kt b/libraries/stdlib/src/kotlin/io/Closeable.kt index d2a2acbfdbb..ba02b69a753 100644 --- a/libraries/stdlib/src/kotlin/io/Closeable.kt +++ b/libraries/stdlib/src/kotlin/io/Closeable.kt @@ -29,7 +29,7 @@ import kotlin.internal.* * @return the result of [block] function invoked on this resource. */ @InlineOnly -@RequireKotlin("1.2", versionKind = RequireKotlinVersionKind.COMPILER_VERSION) +@RequireKotlin("1.2", versionKind = RequireKotlinVersionKind.COMPILER_VERSION, message = "Requires newer compiler version to be inlined correctly.") public inline fun T.use(block: (T) -> R): R { var exception: Throwable? = null try { diff --git a/libraries/stdlib/src/kotlin/io/FileReadWrite.kt b/libraries/stdlib/src/kotlin/io/FileReadWrite.kt index b52f865f9b6..426b5b05896 100644 --- a/libraries/stdlib/src/kotlin/io/FileReadWrite.kt +++ b/libraries/stdlib/src/kotlin/io/FileReadWrite.kt @@ -196,6 +196,6 @@ public fun File.readLines(charset: Charset = Charsets.UTF_8): List { * @param charset character set to use. By default uses UTF-8 charset. * @return the value returned by [block]. */ -@RequireKotlin("1.2", versionKind = RequireKotlinVersionKind.COMPILER_VERSION) +@RequireKotlin("1.2", versionKind = RequireKotlinVersionKind.COMPILER_VERSION, message = "Requires newer compiler version to be inlined correctly.") public inline fun File.useLines(charset: Charset = Charsets.UTF_8, block: (Sequence) -> T): T = bufferedReader(charset).use { block(it.lineSequence()) } diff --git a/libraries/stdlib/src/kotlin/io/ReadWrite.kt b/libraries/stdlib/src/kotlin/io/ReadWrite.kt index d74a930c09a..e30d0068c73 100644 --- a/libraries/stdlib/src/kotlin/io/ReadWrite.kt +++ b/libraries/stdlib/src/kotlin/io/ReadWrite.kt @@ -43,7 +43,7 @@ public fun Reader.readLines(): List { * the processing is complete. * @return the value returned by [block]. */ -@RequireKotlin("1.2", versionKind = RequireKotlinVersionKind.COMPILER_VERSION) +@RequireKotlin("1.2", versionKind = RequireKotlinVersionKind.COMPILER_VERSION, message = "Requires newer compiler version to be inlined correctly.") public inline fun Reader.useLines(block: (Sequence) -> T): T = buffered().use { block(it.lineSequence()) }