Forbid @Synchronized annotation on suspend functions
and lambdas. With warning for now. #KT-27333
This commit is contained in:
+24
@@ -0,0 +1,24 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
@Synchronized
|
||||
suspend fun foo(f: () -> Unit): Unit = f()
|
||||
|
||||
fun builder(c: suspend () -> Unit) {}
|
||||
|
||||
val a: suspend () -> Unit
|
||||
get() = @Synchronized {}
|
||||
val b: suspend () -> Unit = @Synchronized {}
|
||||
val c = builder (@Synchronized {})
|
||||
val d = suspend @Synchronized {}
|
||||
val e = <!WRONG_ANNOTATION_TARGET!>@Synchronized<!> suspend {}
|
||||
|
||||
fun test() {
|
||||
@Synchronized
|
||||
suspend fun foo(f: () -> Unit): Unit = f()
|
||||
|
||||
val b: suspend () -> Unit = @Synchronized {}
|
||||
val c = builder (@Synchronized {})
|
||||
val d = suspend @Synchronized {}
|
||||
val e = <!WRONG_ANNOTATION_TARGET!>@Synchronized<!> suspend {}
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
<!SYNCHRONIZED_ON_SUSPEND!>@Synchronized<!>
|
||||
suspend fun foo(f: () -> Unit): Unit = f()
|
||||
|
||||
fun builder(c: suspend () -> Unit) {}
|
||||
|
||||
val a: suspend () -> Unit
|
||||
get() = <!SYNCHRONIZED_ON_SUSPEND!>@Synchronized<!> {}
|
||||
val b: suspend () -> Unit = <!SYNCHRONIZED_ON_SUSPEND!>@Synchronized<!> {}
|
||||
val c = builder (<!SYNCHRONIZED_ON_SUSPEND!>@Synchronized<!> {})
|
||||
val d = suspend <!SYNCHRONIZED_ON_SUSPEND!>@Synchronized<!> {}
|
||||
val e = <!WRONG_ANNOTATION_TARGET!>@Synchronized<!> suspend {}
|
||||
|
||||
fun test() {
|
||||
<!SYNCHRONIZED_ON_SUSPEND!>@Synchronized<!>
|
||||
suspend fun foo(f: () -> Unit): Unit = f()
|
||||
|
||||
val b: suspend () -> Unit = <!SYNCHRONIZED_ON_SUSPEND!>@Synchronized<!> {}
|
||||
val c = builder (<!SYNCHRONIZED_ON_SUSPEND!>@Synchronized<!> {})
|
||||
val d = suspend <!SYNCHRONIZED_ON_SUSPEND!>@Synchronized<!> {}
|
||||
val e = <!WRONG_ANNOTATION_TARGET!>@Synchronized<!> suspend {}
|
||||
}
|
||||
Reference in New Issue
Block a user