Prohibit synchronized methods on interface members

#KT-9310 Fixed
This commit is contained in:
Alexander Udalov
2019-08-13 10:05:11 +02:00
parent 815ff3c860
commit 312205f376
11 changed files with 88 additions and 16 deletions
@@ -1,13 +1,17 @@
import kotlin.jvm.Synchronized
interface My {
<!SYNCHRONIZED_ON_ABSTRACT!>@Synchronized<!> fun foo()
<!SYNCHRONIZED_IN_INTERFACE!>@Synchronized<!> fun foo()
@Synchronized fun bar() = 1
<!SYNCHRONIZED_IN_INTERFACE!>@Synchronized<!> fun bar() = 1
@Synchronized fun baz(): String {
<!SYNCHRONIZED_IN_INTERFACE!>@Synchronized<!> fun baz(): String {
return "abc"
}
var v: String
<!SYNCHRONIZED_IN_INTERFACE!>@Synchronized<!> get() = ""
<!SYNCHRONIZED_IN_INTERFACE!>@Synchronized<!> set(<!UNUSED_PARAMETER!>value<!>) {}
}
abstract class Your {
@@ -18,6 +22,10 @@ abstract class Your {
@Synchronized open fun baz(): String {
return "xyz"
}
var v: String
@Synchronized get() = ""
@Synchronized set(<!UNUSED_PARAMETER!>value<!>) {}
}
@Synchronized fun gav() = 1