Deprecate inlineOption in favor of crossinline modifier

This commit is contained in:
Denis Zharkov
2015-09-09 12:35:19 +03:00
parent 9b8540543f
commit c449c0d080
41 changed files with 68 additions and 40 deletions
+5 -1
View File
@@ -1252,6 +1252,10 @@ public object Unit {
/*primary*/ private constructor Unit()
}
kotlin.annotation.Target(allowedTargets = {AnnotationTarget.VALUE_PARAMETER}) kotlin.annotation.Retention(value = AnnotationRetention.RUNTIME) kotlin.annotation.MustBeDocumented() kotlin.annotation.annotation() public final class crossinline : kotlin.Annotation {
/*primary*/ public constructor crossinline()
}
kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASSIFIER}) kotlin.annotation.MustBeDocumented() kotlin.annotation.annotation() public final class data : kotlin.Annotation {
/*primary*/ public constructor data()
}
@@ -1264,7 +1268,7 @@ kotlin.annotation.Target(allowedTargets = {AnnotationTarget.FUNCTION, Annotation
/*primary*/ public constructor inline()
}
kotlin.annotation.Target(allowedTargets = {AnnotationTarget.VALUE_PARAMETER}) kotlin.annotation.Retention(value = AnnotationRetention.RUNTIME) kotlin.annotation.MustBeDocumented() kotlin.annotation.annotation() public final class inlineOptions : kotlin.Annotation {
kotlin.annotation.Target(allowedTargets = {AnnotationTarget.VALUE_PARAMETER}) kotlin.annotation.Retention(value = AnnotationRetention.RUNTIME) kotlin.annotation.MustBeDocumented() kotlin.Deprecated(value = "Use 'crossinline' modifier instead of 'inlineOptions(InlineOption.ONLY_LOCAL_RETURN)'") kotlin.annotation.annotation() public final class inlineOptions : kotlin.Annotation {
/*primary*/ public constructor inlineOptions(/*0*/ vararg value: kotlin.InlineOption /*kotlin.Array<out kotlin.InlineOption>*/)
public final val value: kotlin.Array<out kotlin.InlineOption>
public final fun <get-value>(): kotlin.Array<out kotlin.InlineOption>
@@ -1,7 +1,7 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
import kotlin.InlineOption.*
inline fun <R> inlineFunOnlyLocal(@inlineOptions(ONLY_LOCAL_RETURN)p: () -> R) {
inline fun <R> inlineFunOnlyLocal(crossinline p: () -> R) {
val s = object {
val z = p()
@@ -21,4 +21,4 @@ inline fun <R> inlineFun(p: () -> R) {
<!NON_LOCAL_RETURN_NOT_ALLOWED!>p<!>()
}
}
}
}
@@ -1,4 +1,4 @@
package
kotlin.inline() public fun </*0*/ R> inlineFun(/*0*/ p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> inlineFunOnlyLocal(/*0*/ kotlin.inlineOptions(value = {InlineOption.ONLY_LOCAL_RETURN}) p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> inlineFunOnlyLocal(/*0*/ kotlin.crossinline() p: () -> R): kotlin.Unit
@@ -1,7 +1,7 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
import kotlin.InlineOption.*
inline fun <R> inlineFunOnlyLocal(@inlineOptions(ONLY_LOCAL_RETURN)p: () -> R) {
inline fun <R> inlineFunOnlyLocal(crossinline p: () -> R) {
val s = object {
val z = p();
@@ -46,4 +46,4 @@ inline fun <R> inlineFun(p: () -> R) {
inline fun <R> doCall(p: () -> R) {
p()
}
}
@@ -2,4 +2,4 @@ package
kotlin.inline() public fun </*0*/ R> doCall(/*0*/ p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> inlineFun(/*0*/ p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> inlineFunOnlyLocal(/*0*/ kotlin.inlineOptions(value = {InlineOption.ONLY_LOCAL_RETURN}) p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> inlineFunOnlyLocal(/*0*/ kotlin.crossinline() p: () -> R): kotlin.Unit
@@ -1,9 +1,9 @@
import kotlin.InlineOption.*
inline fun <R> onlyLocal(@inlineOptions(ONLY_LOCAL_RETURN)p: () -> R) {
inline fun <R> onlyLocal(crossinline p: () -> R) {
inlineAll(p)
}
inline fun <R> inlineAll(p: () -> R) {
p()
}
}
@@ -1,4 +1,4 @@
package
kotlin.inline() public fun </*0*/ R> inlineAll(/*0*/ p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> onlyLocal(/*0*/ kotlin.inlineOptions(value = {InlineOption.ONLY_LOCAL_RETURN}) p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> onlyLocal(/*0*/ kotlin.crossinline() p: () -> R): kotlin.Unit
@@ -1,6 +1,6 @@
import kotlin.InlineOption.*
inline fun <R> inlineFunWithAnnotation(@inlineOptions(ONLY_LOCAL_RETURN) p: () -> R) {
inline fun <R> inlineFunWithAnnotation(crossinline p: () -> R) {
inlineFun {
p()
}
@@ -14,4 +14,4 @@ inline fun <R> inlineFun2(p: () -> R) {
inline fun <R> inlineFun(p: () -> R) {
p()
}
}
@@ -2,4 +2,4 @@ package
kotlin.inline() public fun </*0*/ R> inlineFun(/*0*/ p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> inlineFun2(/*0*/ p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> inlineFunWithAnnotation(/*0*/ kotlin.inlineOptions(value = {InlineOption.ONLY_LOCAL_RETURN}) p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> inlineFunWithAnnotation(/*0*/ kotlin.crossinline() p: () -> R): kotlin.Unit
@@ -5,6 +5,6 @@ inline fun testSameCaptured(lambdaWithResultCaptured: () -> Unit) : String {
return "OK"
}
inline fun <R> doWork(@inlineOptions(ONLY_LOCAL_RETURN) job: ()-> R) : R {
inline fun <R> doWork(crossinline job: ()-> R) : R {
return job()
}
}
@@ -1,4 +1,4 @@
package
kotlin.inline() public fun </*0*/ R> doWork(/*0*/ kotlin.inlineOptions(value = {InlineOption.ONLY_LOCAL_RETURN}) job: () -> R): R
kotlin.inline() public fun </*0*/ R> doWork(/*0*/ kotlin.crossinline() job: () -> R): R
kotlin.inline() public fun testSameCaptured(/*0*/ lambdaWithResultCaptured: () -> kotlin.Unit): kotlin.String
@@ -1,7 +1,7 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
import kotlin.InlineOption.*
inline fun <R> inlineFunOnlyLocal(@inlineOptions(ONLY_LOCAL_RETURN)p: () -> R) {
inline fun <R> inlineFunOnlyLocal(crossinline p: () -> R) {
<!NOT_YET_SUPPORTED_IN_INLINE!>fun a() {
val z = p()
}<!>
@@ -13,4 +13,4 @@ inline fun <R> inlineFun(p: () -> R) {
<!NON_LOCAL_RETURN_NOT_ALLOWED!>p<!>()
}<!>
a()
}
}
@@ -1,4 +1,4 @@
package
kotlin.inline() public fun </*0*/ R> inlineFun(/*0*/ p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> inlineFunOnlyLocal(/*0*/ kotlin.inlineOptions(value = {InlineOption.ONLY_LOCAL_RETURN}) p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> inlineFunOnlyLocal(/*0*/ kotlin.crossinline() p: () -> R): kotlin.Unit
@@ -1,7 +1,7 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
import kotlin.InlineOption.*
inline fun <R> inlineFunOnlyLocal(@inlineOptions(ONLY_LOCAL_RETURN)p: () -> R) {
inline fun <R> inlineFunOnlyLocal(crossinline p: () -> R) {
{
p()
}()
@@ -11,4 +11,4 @@ inline fun <R> inlineFun(p: () -> R) {
{
<!NON_LOCAL_RETURN_NOT_ALLOWED!>p<!>()
}()
}
}
@@ -1,4 +1,4 @@
package
kotlin.inline() public fun </*0*/ R> inlineFun(/*0*/ p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> inlineFunOnlyLocal(/*0*/ kotlin.inlineOptions(value = {InlineOption.ONLY_LOCAL_RETURN}) p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> inlineFunOnlyLocal(/*0*/ kotlin.crossinline() p: () -> R): kotlin.Unit
@@ -1,7 +1,7 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
import kotlin.InlineOption.*
inline fun <R> inlineFunOnlyLocal(@inlineOptions(ONLY_LOCAL_RETURN)p: () -> R) {
inline fun <R> inlineFunOnlyLocal(crossinline p: () -> R) {
<!NOT_YET_SUPPORTED_IN_INLINE!>class A {
val z = p()
@@ -21,4 +21,4 @@ inline fun <R> inlineFun(p: () -> R) {
<!NON_LOCAL_RETURN_NOT_ALLOWED!>p<!>()
}
}<!>
}
}
@@ -1,4 +1,4 @@
package
kotlin.inline() public fun </*0*/ R> inlineFun(/*0*/ p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> inlineFunOnlyLocal(/*0*/ kotlin.inlineOptions(value = {InlineOption.ONLY_LOCAL_RETURN}) p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> inlineFunOnlyLocal(/*0*/ kotlin.crossinline() p: () -> R): kotlin.Unit
@@ -39,6 +39,6 @@ fun <R> fun4ValueArgument(p: () -> R) {
}
inline fun <R> inlineFun(@inlineOptions(ONLY_LOCAL_RETURN) p: () -> R) {
inline fun <R> inlineFun(crossinline p: () -> R) {
p()
}
}
@@ -6,4 +6,4 @@ public fun </*0*/ R> fun3(/*0*/ p: () -> R): kotlin.Unit
public fun </*0*/ R> fun3ValueArgument(/*0*/ p: () -> R): kotlin.Unit
public fun </*0*/ R> fun4(/*0*/ p: () -> R): kotlin.Unit
public fun </*0*/ R> fun4ValueArgument(/*0*/ p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> inlineFun(/*0*/ kotlin.inlineOptions(value = {InlineOption.ONLY_LOCAL_RETURN}) p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> inlineFun(/*0*/ kotlin.crossinline() p: () -> R): kotlin.Unit
@@ -2,7 +2,7 @@
import kotlin.InlineOption.*
class Z {
inline fun <R> inlineFun(@inlineOptions(ONLY_LOCAL_RETURN) p: () -> R) {
inline fun <R> inlineFun(crossinline p: () -> R) {
p()
}
}
@@ -23,4 +23,4 @@ fun <R> fun4(p: () -> R) {
Z() inlineFun lambda@ {
return@lambda p();
}
}
}
@@ -8,6 +8,6 @@ public final class Z {
public constructor Z()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
kotlin.inline() public final fun </*0*/ R> inlineFun(/*0*/ kotlin.inlineOptions(value = {InlineOption.ONLY_LOCAL_RETURN}) p: () -> R): kotlin.Unit
kotlin.inline() public final fun </*0*/ R> inlineFun(/*0*/ kotlin.crossinline() p: () -> R): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -1,6 +1,6 @@
import kotlin.InlineOption.*
inline fun <R> toOnlyLocal(@inlineOptions(ONLY_LOCAL_RETURN) p: () -> R) {
inline fun <R> toOnlyLocal(crossinline p: () -> R) {
p()
}
@@ -1,4 +1,4 @@
package
kotlin.inline() public fun </*0*/ R> inlineAll(/*0*/ p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> toOnlyLocal(/*0*/ kotlin.inlineOptions(value = {InlineOption.ONLY_LOCAL_RETURN}) p: () -> R): kotlin.Unit
kotlin.inline() public fun </*0*/ R> toOnlyLocal(/*0*/ kotlin.crossinline() p: () -> R): kotlin.Unit