diff --git a/compiler/fir/analysis-tests/testData/builtIns/kotlin-ranges.txt b/compiler/fir/analysis-tests/testData/builtIns/kotlin-ranges.txt index d2f82ba2d5f..17f1e74197c 100644 --- a/compiler/fir/analysis-tests/testData/builtIns/kotlin-ranges.txt +++ b/compiler/fir/analysis-tests/testData/builtIns/kotlin-ranges.txt @@ -52,7 +52,7 @@ internal final class CharProgressionIterator : R|kotlin/collections/CharIterator } -public final class CharRange : R|kotlin/ranges/CharProgression|, R|kotlin/ranges/ClosedRange| { +public final class CharRange : R|kotlin/ranges/CharProgression|, R|kotlin/ranges/ClosedRange|, R|kotlin/ranges/OpenEndRange| { public final companion object Companion : R|kotlin/Any| { public final val EMPTY: R|kotlin/ranges/CharRange| public get(): R|kotlin/ranges/CharRange| @@ -71,6 +71,9 @@ public final class CharRange : R|kotlin/ranges/CharProgression|, R|kotlin/ranges public open fun toString(): R|kotlin/String| + @PROPERTY:R|kotlin/SinceKotlin|(version = String(1.7)) @PROPERTY:R|kotlin/ExperimentalStdlibApi|() @PROPERTY:R|kotlin/Deprecated|(message = String(Can throw an exception when it's impossible to represent the value with Char type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.)) public open val endExclusive: R|kotlin/Char| + public get(): R|kotlin/Char| + public open val endInclusive: R|kotlin/Char| public get(): R|kotlin/Char| @@ -148,7 +151,7 @@ internal final class IntProgressionIterator : R|kotlin/collections/IntIterator| } -public final class IntRange : R|kotlin/ranges/IntProgression|, R|kotlin/ranges/ClosedRange| { +public final class IntRange : R|kotlin/ranges/IntProgression|, R|kotlin/ranges/ClosedRange|, R|kotlin/ranges/OpenEndRange| { public final companion object Companion : R|kotlin/Any| { public final val EMPTY: R|kotlin/ranges/IntRange| public get(): R|kotlin/ranges/IntRange| @@ -167,6 +170,9 @@ public final class IntRange : R|kotlin/ranges/IntProgression|, R|kotlin/ranges/C public open fun toString(): R|kotlin/String| + @PROPERTY:R|kotlin/SinceKotlin|(version = String(1.7)) @PROPERTY:R|kotlin/ExperimentalStdlibApi|() @PROPERTY:R|kotlin/Deprecated|(message = String(Can throw an exception when it's impossible to represent the value with Int type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.)) public open val endExclusive: R|kotlin/Int| + public get(): R|kotlin/Int| + public open val endInclusive: R|kotlin/Int| public get(): R|kotlin/Int| @@ -231,7 +237,7 @@ internal final class LongProgressionIterator : R|kotlin/collections/LongIterator } -public final class LongRange : R|kotlin/ranges/LongProgression|, R|kotlin/ranges/ClosedRange| { +public final class LongRange : R|kotlin/ranges/LongProgression|, R|kotlin/ranges/ClosedRange|, R|kotlin/ranges/OpenEndRange| { public final companion object Companion : R|kotlin/Any| { public final val EMPTY: R|kotlin/ranges/LongRange| public get(): R|kotlin/ranges/LongRange| @@ -250,6 +256,9 @@ public final class LongRange : R|kotlin/ranges/LongProgression|, R|kotlin/ranges public open fun toString(): R|kotlin/String| + @PROPERTY:R|kotlin/SinceKotlin|(version = String(1.7)) @PROPERTY:R|kotlin/ExperimentalStdlibApi|() @PROPERTY:R|kotlin/Deprecated|(message = String(Can throw an exception when it's impossible to represent the value with Long type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.)) public open val endExclusive: R|kotlin/Long| + public get(): R|kotlin/Long| + public open val endInclusive: R|kotlin/Long| public get(): R|kotlin/Long| @@ -260,3 +269,16 @@ public final class LongRange : R|kotlin/ranges/LongProgression|, R|kotlin/ranges } +@R|kotlin/SinceKotlin|(version = String(1.7)) @R|kotlin/ExperimentalStdlibApi|() public abstract interface OpenEndRange|> : R|kotlin/Any| { + public open operator fun contains(value: R|T|): R|kotlin/Boolean| + + public open fun isEmpty(): R|kotlin/Boolean| + + public abstract val endExclusive: R|T| + public get(): R|T| + + public abstract val start: R|T| + public get(): R|T| + +} + diff --git a/compiler/fir/analysis-tests/testData/builtIns/kotlin.txt b/compiler/fir/analysis-tests/testData/builtIns/kotlin.txt index 78bbfafe0f7..20947d5d413 100644 --- a/compiler/fir/analysis-tests/testData/builtIns/kotlin.txt +++ b/compiler/fir/analysis-tests/testData/builtIns/kotlin.txt @@ -579,6 +579,11 @@ public abstract class Enum|> : R|kotlin/Comparable|, R|j } +@R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.BINARY|()) @R|kotlin/annotation/Target|(allowedTargets = (R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.ANNOTATION_CLASS|(), R|kotlin/annotation/AnnotationTarget.PROPERTY|(), R|kotlin/annotation/AnnotationTarget.FIELD|(), R|kotlin/annotation/AnnotationTarget.LOCAL_VARIABLE|(), R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|(), R|kotlin/annotation/AnnotationTarget.CONSTRUCTOR|(), R|kotlin/annotation/AnnotationTarget.FUNCTION|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|(), R|kotlin/annotation/AnnotationTarget.TYPEALIAS|())) @R|kotlin/annotation/MustBeDocumented|() @R|kotlin/SinceKotlin|(version = String(1.3)) public final annotation class ExperimentalStdlibApi : R|kotlin/Annotation| { + public constructor(): R|kotlin/ExperimentalStdlibApi| + +} + @R|kotlin/annotation/Target|(allowedTargets = (R|kotlin/annotation/AnnotationTarget.TYPE|())) @R|kotlin/annotation/MustBeDocumented|() public final annotation class ExtensionFunctionType : R|kotlin/Annotation| { public constructor(): R|kotlin/ExtensionFunctionType| diff --git a/compiler/testData/builtin-classes/default/kotlin-ranges.txt b/compiler/testData/builtin-classes/default/kotlin-ranges.txt index 2a6821baf50..4636fee282a 100644 --- a/compiler/testData/builtin-classes/default/kotlin-ranges.txt +++ b/compiler/testData/builtin-classes/default/kotlin-ranges.txt @@ -34,20 +34,22 @@ internal final class CharProgressionIterator : kotlin.collections.CharIterator { public open override /*1*/ fun nextChar(): kotlin.Char } -public final class CharRange : kotlin.ranges.CharProgression, kotlin.ranges.ClosedRange { +public final class CharRange : kotlin.ranges.CharProgression, kotlin.ranges.ClosedRange, kotlin.ranges.OpenEndRange { /*primary*/ public constructor CharRange(/*0*/ start: kotlin.Char, /*1*/ endInclusive: kotlin.Char) + @kotlin.SinceKotlin(version = "1.7") @kotlin.ExperimentalStdlibApi @kotlin.Deprecated(message = "Can throw an exception when it's impossible to represent the value with Char type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.") public open override /*1*/ val endExclusive: kotlin.Char + public open override /*1*/ fun ``(): kotlin.Char public open override /*1*/ val endInclusive: kotlin.Char public open override /*1*/ fun ``(): kotlin.Char public final override /*1*/ /*fake_override*/ val first: kotlin.Char public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Char public final override /*1*/ /*fake_override*/ val last: kotlin.Char public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Char - public open override /*1*/ val start: kotlin.Char - public open override /*1*/ fun ``(): kotlin.Char + public open override /*2*/ val start: kotlin.Char + public open override /*2*/ fun ``(): kotlin.Char public final override /*1*/ /*fake_override*/ val step: kotlin.Int public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Int - public open override /*1*/ fun contains(/*0*/ value: kotlin.Char): kotlin.Boolean - public open override /*2*/ fun isEmpty(): kotlin.Boolean + public open override /*2*/ fun contains(/*0*/ value: kotlin.Char): kotlin.Boolean + public open override /*3*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.CharIterator public companion object Companion { @@ -100,20 +102,22 @@ internal final class IntProgressionIterator : kotlin.collections.IntIterator { public open override /*1*/ fun nextInt(): kotlin.Int } -public final class IntRange : kotlin.ranges.IntProgression, kotlin.ranges.ClosedRange { +public final class IntRange : kotlin.ranges.IntProgression, kotlin.ranges.ClosedRange, kotlin.ranges.OpenEndRange { /*primary*/ public constructor IntRange(/*0*/ start: kotlin.Int, /*1*/ endInclusive: kotlin.Int) + @kotlin.SinceKotlin(version = "1.7") @kotlin.ExperimentalStdlibApi @kotlin.Deprecated(message = "Can throw an exception when it's impossible to represent the value with Int type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.") public open override /*1*/ val endExclusive: kotlin.Int + public open override /*1*/ fun ``(): kotlin.Int public open override /*1*/ val endInclusive: kotlin.Int public open override /*1*/ fun ``(): kotlin.Int public final override /*1*/ /*fake_override*/ val first: kotlin.Int public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Int public final override /*1*/ /*fake_override*/ val last: kotlin.Int public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Int - public open override /*1*/ val start: kotlin.Int - public open override /*1*/ fun ``(): kotlin.Int + public open override /*2*/ val start: kotlin.Int + public open override /*2*/ fun ``(): kotlin.Int public final override /*1*/ /*fake_override*/ val step: kotlin.Int public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Int - public open override /*1*/ fun contains(/*0*/ value: kotlin.Int): kotlin.Boolean - public open override /*2*/ fun isEmpty(): kotlin.Boolean + public open override /*2*/ fun contains(/*0*/ value: kotlin.Int): kotlin.Boolean + public open override /*3*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.IntIterator public companion object Companion { @@ -157,20 +161,22 @@ internal final class LongProgressionIterator : kotlin.collections.LongIterator { public open override /*1*/ fun nextLong(): kotlin.Long } -public final class LongRange : kotlin.ranges.LongProgression, kotlin.ranges.ClosedRange { +public final class LongRange : kotlin.ranges.LongProgression, kotlin.ranges.ClosedRange, kotlin.ranges.OpenEndRange { /*primary*/ public constructor LongRange(/*0*/ start: kotlin.Long, /*1*/ endInclusive: kotlin.Long) + @kotlin.SinceKotlin(version = "1.7") @kotlin.ExperimentalStdlibApi @kotlin.Deprecated(message = "Can throw an exception when it's impossible to represent the value with Long type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.") public open override /*1*/ val endExclusive: kotlin.Long + public open override /*1*/ fun ``(): kotlin.Long public open override /*1*/ val endInclusive: kotlin.Long public open override /*1*/ fun ``(): kotlin.Long public final override /*1*/ /*fake_override*/ val first: kotlin.Long public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Long public final override /*1*/ /*fake_override*/ val last: kotlin.Long public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Long - public open override /*1*/ val start: kotlin.Long - public open override /*1*/ fun ``(): kotlin.Long + public open override /*2*/ val start: kotlin.Long + public open override /*2*/ fun ``(): kotlin.Long public final override /*1*/ /*fake_override*/ val step: kotlin.Long public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Long - public open override /*1*/ fun contains(/*0*/ value: kotlin.Long): kotlin.Boolean - public open override /*2*/ fun isEmpty(): kotlin.Boolean + public open override /*2*/ fun contains(/*0*/ value: kotlin.Long): kotlin.Boolean + public open override /*3*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.LongIterator public companion object Companion { @@ -179,3 +185,12 @@ public final class LongRange : kotlin.ranges.LongProgression, kotlin.ranges.Clos public final fun ``(): kotlin.ranges.LongRange } } + +@kotlin.SinceKotlin(version = "1.7") @kotlin.ExperimentalStdlibApi public interface OpenEndRange> { + public abstract val endExclusive: T + public abstract fun ``(): T + public abstract val start: T + public abstract fun ``(): T + public open operator fun contains(/*0*/ value: T): kotlin.Boolean + public open fun isEmpty(): kotlin.Boolean +} diff --git a/compiler/testData/builtin-classes/default/kotlin.txt b/compiler/testData/builtin-classes/default/kotlin.txt index d625e62a6b4..bb9426d2526 100644 --- a/compiler/testData/builtin-classes/default/kotlin.txt +++ b/compiler/testData/builtin-classes/default/kotlin.txt @@ -338,6 +338,10 @@ public abstract class Enum> : kotlin.Comparable { } } +@kotlin.annotation.Retention(value = AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets = {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}) @kotlin.annotation.MustBeDocumented @kotlin.SinceKotlin(version = "1.3") public final annotation class ExperimentalStdlibApi : kotlin.Annotation { + /*primary*/ public constructor ExperimentalStdlibApi() +} + @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) @kotlin.annotation.MustBeDocumented public final annotation class ExtensionFunctionType : kotlin.Annotation { /*primary*/ public constructor ExtensionFunctionType() } diff --git a/compiler/testData/builtin-classes/java6/kotlin-ranges.txt b/compiler/testData/builtin-classes/java6/kotlin-ranges.txt index 2a6821baf50..4636fee282a 100644 --- a/compiler/testData/builtin-classes/java6/kotlin-ranges.txt +++ b/compiler/testData/builtin-classes/java6/kotlin-ranges.txt @@ -34,20 +34,22 @@ internal final class CharProgressionIterator : kotlin.collections.CharIterator { public open override /*1*/ fun nextChar(): kotlin.Char } -public final class CharRange : kotlin.ranges.CharProgression, kotlin.ranges.ClosedRange { +public final class CharRange : kotlin.ranges.CharProgression, kotlin.ranges.ClosedRange, kotlin.ranges.OpenEndRange { /*primary*/ public constructor CharRange(/*0*/ start: kotlin.Char, /*1*/ endInclusive: kotlin.Char) + @kotlin.SinceKotlin(version = "1.7") @kotlin.ExperimentalStdlibApi @kotlin.Deprecated(message = "Can throw an exception when it's impossible to represent the value with Char type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.") public open override /*1*/ val endExclusive: kotlin.Char + public open override /*1*/ fun ``(): kotlin.Char public open override /*1*/ val endInclusive: kotlin.Char public open override /*1*/ fun ``(): kotlin.Char public final override /*1*/ /*fake_override*/ val first: kotlin.Char public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Char public final override /*1*/ /*fake_override*/ val last: kotlin.Char public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Char - public open override /*1*/ val start: kotlin.Char - public open override /*1*/ fun ``(): kotlin.Char + public open override /*2*/ val start: kotlin.Char + public open override /*2*/ fun ``(): kotlin.Char public final override /*1*/ /*fake_override*/ val step: kotlin.Int public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Int - public open override /*1*/ fun contains(/*0*/ value: kotlin.Char): kotlin.Boolean - public open override /*2*/ fun isEmpty(): kotlin.Boolean + public open override /*2*/ fun contains(/*0*/ value: kotlin.Char): kotlin.Boolean + public open override /*3*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.CharIterator public companion object Companion { @@ -100,20 +102,22 @@ internal final class IntProgressionIterator : kotlin.collections.IntIterator { public open override /*1*/ fun nextInt(): kotlin.Int } -public final class IntRange : kotlin.ranges.IntProgression, kotlin.ranges.ClosedRange { +public final class IntRange : kotlin.ranges.IntProgression, kotlin.ranges.ClosedRange, kotlin.ranges.OpenEndRange { /*primary*/ public constructor IntRange(/*0*/ start: kotlin.Int, /*1*/ endInclusive: kotlin.Int) + @kotlin.SinceKotlin(version = "1.7") @kotlin.ExperimentalStdlibApi @kotlin.Deprecated(message = "Can throw an exception when it's impossible to represent the value with Int type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.") public open override /*1*/ val endExclusive: kotlin.Int + public open override /*1*/ fun ``(): kotlin.Int public open override /*1*/ val endInclusive: kotlin.Int public open override /*1*/ fun ``(): kotlin.Int public final override /*1*/ /*fake_override*/ val first: kotlin.Int public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Int public final override /*1*/ /*fake_override*/ val last: kotlin.Int public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Int - public open override /*1*/ val start: kotlin.Int - public open override /*1*/ fun ``(): kotlin.Int + public open override /*2*/ val start: kotlin.Int + public open override /*2*/ fun ``(): kotlin.Int public final override /*1*/ /*fake_override*/ val step: kotlin.Int public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Int - public open override /*1*/ fun contains(/*0*/ value: kotlin.Int): kotlin.Boolean - public open override /*2*/ fun isEmpty(): kotlin.Boolean + public open override /*2*/ fun contains(/*0*/ value: kotlin.Int): kotlin.Boolean + public open override /*3*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.IntIterator public companion object Companion { @@ -157,20 +161,22 @@ internal final class LongProgressionIterator : kotlin.collections.LongIterator { public open override /*1*/ fun nextLong(): kotlin.Long } -public final class LongRange : kotlin.ranges.LongProgression, kotlin.ranges.ClosedRange { +public final class LongRange : kotlin.ranges.LongProgression, kotlin.ranges.ClosedRange, kotlin.ranges.OpenEndRange { /*primary*/ public constructor LongRange(/*0*/ start: kotlin.Long, /*1*/ endInclusive: kotlin.Long) + @kotlin.SinceKotlin(version = "1.7") @kotlin.ExperimentalStdlibApi @kotlin.Deprecated(message = "Can throw an exception when it's impossible to represent the value with Long type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.") public open override /*1*/ val endExclusive: kotlin.Long + public open override /*1*/ fun ``(): kotlin.Long public open override /*1*/ val endInclusive: kotlin.Long public open override /*1*/ fun ``(): kotlin.Long public final override /*1*/ /*fake_override*/ val first: kotlin.Long public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Long public final override /*1*/ /*fake_override*/ val last: kotlin.Long public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Long - public open override /*1*/ val start: kotlin.Long - public open override /*1*/ fun ``(): kotlin.Long + public open override /*2*/ val start: kotlin.Long + public open override /*2*/ fun ``(): kotlin.Long public final override /*1*/ /*fake_override*/ val step: kotlin.Long public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Long - public open override /*1*/ fun contains(/*0*/ value: kotlin.Long): kotlin.Boolean - public open override /*2*/ fun isEmpty(): kotlin.Boolean + public open override /*2*/ fun contains(/*0*/ value: kotlin.Long): kotlin.Boolean + public open override /*3*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.LongIterator public companion object Companion { @@ -179,3 +185,12 @@ public final class LongRange : kotlin.ranges.LongProgression, kotlin.ranges.Clos public final fun ``(): kotlin.ranges.LongRange } } + +@kotlin.SinceKotlin(version = "1.7") @kotlin.ExperimentalStdlibApi public interface OpenEndRange> { + public abstract val endExclusive: T + public abstract fun ``(): T + public abstract val start: T + public abstract fun ``(): T + public open operator fun contains(/*0*/ value: T): kotlin.Boolean + public open fun isEmpty(): kotlin.Boolean +} diff --git a/compiler/testData/builtin-classes/java6/kotlin.txt b/compiler/testData/builtin-classes/java6/kotlin.txt index 85f98fdba5d..2c592292804 100644 --- a/compiler/testData/builtin-classes/java6/kotlin.txt +++ b/compiler/testData/builtin-classes/java6/kotlin.txt @@ -351,6 +351,10 @@ public abstract class Enum> : kotlin.Comparable, jav } } +@kotlin.annotation.Retention(value = AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets = {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}) @kotlin.annotation.MustBeDocumented @kotlin.SinceKotlin(version = "1.3") public final annotation class ExperimentalStdlibApi : kotlin.Annotation { + /*primary*/ public constructor ExperimentalStdlibApi() +} + @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) @kotlin.annotation.MustBeDocumented public final annotation class ExtensionFunctionType : kotlin.Annotation { /*primary*/ public constructor ExtensionFunctionType() } diff --git a/compiler/testData/builtin-classes/java8/kotlin-ranges.txt b/compiler/testData/builtin-classes/java8/kotlin-ranges.txt index ce47eb87f8b..be8a550ab96 100644 --- a/compiler/testData/builtin-classes/java8/kotlin-ranges.txt +++ b/compiler/testData/builtin-classes/java8/kotlin-ranges.txt @@ -37,21 +37,23 @@ internal final class CharProgressionIterator : kotlin.collections.CharIterator { public open override /*1*/ fun nextChar(): kotlin.Char } -public final class CharRange : kotlin.ranges.CharProgression, kotlin.ranges.ClosedRange { +public final class CharRange : kotlin.ranges.CharProgression, kotlin.ranges.ClosedRange, kotlin.ranges.OpenEndRange { /*primary*/ public constructor CharRange(/*0*/ start: kotlin.Char, /*1*/ endInclusive: kotlin.Char) + @kotlin.SinceKotlin(version = "1.7") @kotlin.ExperimentalStdlibApi @kotlin.Deprecated(message = "Can throw an exception when it's impossible to represent the value with Char type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.") public open override /*1*/ val endExclusive: kotlin.Char + public open override /*1*/ fun ``(): kotlin.Char public open override /*1*/ val endInclusive: kotlin.Char public open override /*1*/ fun ``(): kotlin.Char public final override /*1*/ /*fake_override*/ val first: kotlin.Char public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Char public final override /*1*/ /*fake_override*/ val last: kotlin.Char public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Char - public open override /*1*/ val start: kotlin.Char - public open override /*1*/ fun ``(): kotlin.Char + public open override /*2*/ val start: kotlin.Char + public open override /*2*/ fun ``(): kotlin.Char public final override /*1*/ /*fake_override*/ val step: kotlin.Int public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Int - public open override /*1*/ fun contains(/*0*/ value: kotlin.Char): kotlin.Boolean + public open override /*2*/ fun contains(/*0*/ value: kotlin.Char): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer!): kotlin.Unit - public open override /*2*/ fun isEmpty(): kotlin.Boolean + public open override /*3*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.CharIterator public open override /*1*/ /*fake_override*/ fun spliterator(): java.util.Spliterator @@ -108,21 +110,23 @@ internal final class IntProgressionIterator : kotlin.collections.IntIterator { public open override /*1*/ fun nextInt(): kotlin.Int } -public final class IntRange : kotlin.ranges.IntProgression, kotlin.ranges.ClosedRange { +public final class IntRange : kotlin.ranges.IntProgression, kotlin.ranges.ClosedRange, kotlin.ranges.OpenEndRange { /*primary*/ public constructor IntRange(/*0*/ start: kotlin.Int, /*1*/ endInclusive: kotlin.Int) + @kotlin.SinceKotlin(version = "1.7") @kotlin.ExperimentalStdlibApi @kotlin.Deprecated(message = "Can throw an exception when it's impossible to represent the value with Int type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.") public open override /*1*/ val endExclusive: kotlin.Int + public open override /*1*/ fun ``(): kotlin.Int public open override /*1*/ val endInclusive: kotlin.Int public open override /*1*/ fun ``(): kotlin.Int public final override /*1*/ /*fake_override*/ val first: kotlin.Int public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Int public final override /*1*/ /*fake_override*/ val last: kotlin.Int public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Int - public open override /*1*/ val start: kotlin.Int - public open override /*1*/ fun ``(): kotlin.Int + public open override /*2*/ val start: kotlin.Int + public open override /*2*/ fun ``(): kotlin.Int public final override /*1*/ /*fake_override*/ val step: kotlin.Int public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Int - public open override /*1*/ fun contains(/*0*/ value: kotlin.Int): kotlin.Boolean + public open override /*2*/ fun contains(/*0*/ value: kotlin.Int): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer!): kotlin.Unit - public open override /*2*/ fun isEmpty(): kotlin.Boolean + public open override /*3*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.IntIterator public open override /*1*/ /*fake_override*/ fun spliterator(): java.util.Spliterator @@ -170,21 +174,23 @@ internal final class LongProgressionIterator : kotlin.collections.LongIterator { public open override /*1*/ fun nextLong(): kotlin.Long } -public final class LongRange : kotlin.ranges.LongProgression, kotlin.ranges.ClosedRange { +public final class LongRange : kotlin.ranges.LongProgression, kotlin.ranges.ClosedRange, kotlin.ranges.OpenEndRange { /*primary*/ public constructor LongRange(/*0*/ start: kotlin.Long, /*1*/ endInclusive: kotlin.Long) + @kotlin.SinceKotlin(version = "1.7") @kotlin.ExperimentalStdlibApi @kotlin.Deprecated(message = "Can throw an exception when it's impossible to represent the value with Long type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.") public open override /*1*/ val endExclusive: kotlin.Long + public open override /*1*/ fun ``(): kotlin.Long public open override /*1*/ val endInclusive: kotlin.Long public open override /*1*/ fun ``(): kotlin.Long public final override /*1*/ /*fake_override*/ val first: kotlin.Long public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Long public final override /*1*/ /*fake_override*/ val last: kotlin.Long public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Long - public open override /*1*/ val start: kotlin.Long - public open override /*1*/ fun ``(): kotlin.Long + public open override /*2*/ val start: kotlin.Long + public open override /*2*/ fun ``(): kotlin.Long public final override /*1*/ /*fake_override*/ val step: kotlin.Long public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Long - public open override /*1*/ fun contains(/*0*/ value: kotlin.Long): kotlin.Boolean + public open override /*2*/ fun contains(/*0*/ value: kotlin.Long): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun forEach(/*0*/ p0: java.util.function.Consumer!): kotlin.Unit - public open override /*2*/ fun isEmpty(): kotlin.Boolean + public open override /*3*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.LongIterator public open override /*1*/ /*fake_override*/ fun spliterator(): java.util.Spliterator @@ -194,3 +200,12 @@ public final class LongRange : kotlin.ranges.LongProgression, kotlin.ranges.Clos public final fun ``(): kotlin.ranges.LongRange } } + +@kotlin.SinceKotlin(version = "1.7") @kotlin.ExperimentalStdlibApi public interface OpenEndRange> { + public abstract val endExclusive: T + public abstract fun ``(): T + public abstract val start: T + public abstract fun ``(): T + public open operator fun contains(/*0*/ value: T): kotlin.Boolean + public open fun isEmpty(): kotlin.Boolean +} diff --git a/compiler/testData/builtin-classes/java8/kotlin.txt b/compiler/testData/builtin-classes/java8/kotlin.txt index 9370589638d..58015f69981 100644 --- a/compiler/testData/builtin-classes/java8/kotlin.txt +++ b/compiler/testData/builtin-classes/java8/kotlin.txt @@ -353,6 +353,10 @@ public abstract class Enum> : kotlin.Comparable, jav } } +@kotlin.annotation.Retention(value = AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets = {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}) @kotlin.annotation.MustBeDocumented @kotlin.SinceKotlin(version = "1.3") public final annotation class ExperimentalStdlibApi : kotlin.Annotation { + /*primary*/ public constructor ExperimentalStdlibApi() +} + @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) @kotlin.annotation.MustBeDocumented public final annotation class ExtensionFunctionType : kotlin.Annotation { /*primary*/ public constructor ExtensionFunctionType() } diff --git a/compiler/testData/builtin-classes/newMethods/kotlin-ranges.txt b/compiler/testData/builtin-classes/newMethods/kotlin-ranges.txt index 2a6821baf50..4636fee282a 100644 --- a/compiler/testData/builtin-classes/newMethods/kotlin-ranges.txt +++ b/compiler/testData/builtin-classes/newMethods/kotlin-ranges.txt @@ -34,20 +34,22 @@ internal final class CharProgressionIterator : kotlin.collections.CharIterator { public open override /*1*/ fun nextChar(): kotlin.Char } -public final class CharRange : kotlin.ranges.CharProgression, kotlin.ranges.ClosedRange { +public final class CharRange : kotlin.ranges.CharProgression, kotlin.ranges.ClosedRange, kotlin.ranges.OpenEndRange { /*primary*/ public constructor CharRange(/*0*/ start: kotlin.Char, /*1*/ endInclusive: kotlin.Char) + @kotlin.SinceKotlin(version = "1.7") @kotlin.ExperimentalStdlibApi @kotlin.Deprecated(message = "Can throw an exception when it's impossible to represent the value with Char type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.") public open override /*1*/ val endExclusive: kotlin.Char + public open override /*1*/ fun ``(): kotlin.Char public open override /*1*/ val endInclusive: kotlin.Char public open override /*1*/ fun ``(): kotlin.Char public final override /*1*/ /*fake_override*/ val first: kotlin.Char public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Char public final override /*1*/ /*fake_override*/ val last: kotlin.Char public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Char - public open override /*1*/ val start: kotlin.Char - public open override /*1*/ fun ``(): kotlin.Char + public open override /*2*/ val start: kotlin.Char + public open override /*2*/ fun ``(): kotlin.Char public final override /*1*/ /*fake_override*/ val step: kotlin.Int public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Int - public open override /*1*/ fun contains(/*0*/ value: kotlin.Char): kotlin.Boolean - public open override /*2*/ fun isEmpty(): kotlin.Boolean + public open override /*2*/ fun contains(/*0*/ value: kotlin.Char): kotlin.Boolean + public open override /*3*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.CharIterator public companion object Companion { @@ -100,20 +102,22 @@ internal final class IntProgressionIterator : kotlin.collections.IntIterator { public open override /*1*/ fun nextInt(): kotlin.Int } -public final class IntRange : kotlin.ranges.IntProgression, kotlin.ranges.ClosedRange { +public final class IntRange : kotlin.ranges.IntProgression, kotlin.ranges.ClosedRange, kotlin.ranges.OpenEndRange { /*primary*/ public constructor IntRange(/*0*/ start: kotlin.Int, /*1*/ endInclusive: kotlin.Int) + @kotlin.SinceKotlin(version = "1.7") @kotlin.ExperimentalStdlibApi @kotlin.Deprecated(message = "Can throw an exception when it's impossible to represent the value with Int type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.") public open override /*1*/ val endExclusive: kotlin.Int + public open override /*1*/ fun ``(): kotlin.Int public open override /*1*/ val endInclusive: kotlin.Int public open override /*1*/ fun ``(): kotlin.Int public final override /*1*/ /*fake_override*/ val first: kotlin.Int public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Int public final override /*1*/ /*fake_override*/ val last: kotlin.Int public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Int - public open override /*1*/ val start: kotlin.Int - public open override /*1*/ fun ``(): kotlin.Int + public open override /*2*/ val start: kotlin.Int + public open override /*2*/ fun ``(): kotlin.Int public final override /*1*/ /*fake_override*/ val step: kotlin.Int public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Int - public open override /*1*/ fun contains(/*0*/ value: kotlin.Int): kotlin.Boolean - public open override /*2*/ fun isEmpty(): kotlin.Boolean + public open override /*2*/ fun contains(/*0*/ value: kotlin.Int): kotlin.Boolean + public open override /*3*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.IntIterator public companion object Companion { @@ -157,20 +161,22 @@ internal final class LongProgressionIterator : kotlin.collections.LongIterator { public open override /*1*/ fun nextLong(): kotlin.Long } -public final class LongRange : kotlin.ranges.LongProgression, kotlin.ranges.ClosedRange { +public final class LongRange : kotlin.ranges.LongProgression, kotlin.ranges.ClosedRange, kotlin.ranges.OpenEndRange { /*primary*/ public constructor LongRange(/*0*/ start: kotlin.Long, /*1*/ endInclusive: kotlin.Long) + @kotlin.SinceKotlin(version = "1.7") @kotlin.ExperimentalStdlibApi @kotlin.Deprecated(message = "Can throw an exception when it's impossible to represent the value with Long type, for example, when the range includes MAX_VALUE. It's recommended to use 'endInclusive' property that doesn't throw.") public open override /*1*/ val endExclusive: kotlin.Long + public open override /*1*/ fun ``(): kotlin.Long public open override /*1*/ val endInclusive: kotlin.Long public open override /*1*/ fun ``(): kotlin.Long public final override /*1*/ /*fake_override*/ val first: kotlin.Long public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Long public final override /*1*/ /*fake_override*/ val last: kotlin.Long public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Long - public open override /*1*/ val start: kotlin.Long - public open override /*1*/ fun ``(): kotlin.Long + public open override /*2*/ val start: kotlin.Long + public open override /*2*/ fun ``(): kotlin.Long public final override /*1*/ /*fake_override*/ val step: kotlin.Long public final override /*1*/ /*fake_override*/ fun ``(): kotlin.Long - public open override /*1*/ fun contains(/*0*/ value: kotlin.Long): kotlin.Boolean - public open override /*2*/ fun isEmpty(): kotlin.Boolean + public open override /*2*/ fun contains(/*0*/ value: kotlin.Long): kotlin.Boolean + public open override /*3*/ fun isEmpty(): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.LongIterator public companion object Companion { @@ -179,3 +185,12 @@ public final class LongRange : kotlin.ranges.LongProgression, kotlin.ranges.Clos public final fun ``(): kotlin.ranges.LongRange } } + +@kotlin.SinceKotlin(version = "1.7") @kotlin.ExperimentalStdlibApi public interface OpenEndRange> { + public abstract val endExclusive: T + public abstract fun ``(): T + public abstract val start: T + public abstract fun ``(): T + public open operator fun contains(/*0*/ value: T): kotlin.Boolean + public open fun isEmpty(): kotlin.Boolean +} diff --git a/compiler/testData/builtin-classes/newMethods/kotlin.txt b/compiler/testData/builtin-classes/newMethods/kotlin.txt index 6f892720857..b39e96623c1 100644 --- a/compiler/testData/builtin-classes/newMethods/kotlin.txt +++ b/compiler/testData/builtin-classes/newMethods/kotlin.txt @@ -351,6 +351,10 @@ public abstract class Enum> : kotlin.Comparable, jav } } +@kotlin.annotation.Retention(value = AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets = {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}) @kotlin.annotation.MustBeDocumented @kotlin.SinceKotlin(version = "1.3") public final annotation class ExperimentalStdlibApi : kotlin.Annotation { + /*primary*/ public constructor ExperimentalStdlibApi() +} + @kotlin.annotation.Target(allowedTargets = {AnnotationTarget.TYPE}) @kotlin.annotation.MustBeDocumented public final annotation class ExtensionFunctionType : kotlin.Annotation { /*primary*/ public constructor ExtensionFunctionType() }