Prohibit synchronized methods on interface members
#KT-9310 Fixed
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -3,6 +3,7 @@ package
|
||||
@kotlin.jvm.Synchronized public fun gav(): kotlin.Int
|
||||
|
||||
public interface My {
|
||||
@get:kotlin.jvm.Synchronized @set:kotlin.jvm.Synchronized public open var v: kotlin.String
|
||||
@kotlin.jvm.Synchronized public open fun bar(): kotlin.Int
|
||||
@kotlin.jvm.Synchronized public open fun baz(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@@ -13,6 +14,7 @@ public interface My {
|
||||
|
||||
public abstract class Your {
|
||||
public constructor Your()
|
||||
@get:kotlin.jvm.Synchronized @set:kotlin.jvm.Synchronized public final var v: kotlin.String
|
||||
@kotlin.jvm.Synchronized public final fun bar(): kotlin.Int
|
||||
@kotlin.jvm.Synchronized public open fun baz(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
|
||||
Vendored
+23
@@ -0,0 +1,23 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// !LANGUAGE: +JvmStaticInInterface
|
||||
// !JVM_TARGET: 1.8
|
||||
|
||||
interface I {
|
||||
companion object {
|
||||
@Synchronized fun syncFun() {}
|
||||
|
||||
<!SYNCHRONIZED_IN_INTERFACE!>@Synchronized<!> @JvmStatic fun syncFunJvmStatic() {}
|
||||
|
||||
var syncProp: String
|
||||
@Synchronized get() = ""
|
||||
@Synchronized set(value) {}
|
||||
|
||||
@JvmStatic var syncPropJvmStatic: String
|
||||
<!SYNCHRONIZED_IN_INTERFACE!>@Synchronized<!> get() = ""
|
||||
<!SYNCHRONIZED_IN_INTERFACE!>@Synchronized<!> set(value) {}
|
||||
|
||||
var syncPropJvmStaticAccessors: String
|
||||
<!SYNCHRONIZED_IN_INTERFACE!>@Synchronized<!> @JvmStatic get() = ""
|
||||
<!SYNCHRONIZED_IN_INTERFACE!>@Synchronized<!> @JvmStatic set(value) {}
|
||||
}
|
||||
}
|
||||
compiler/testData/diagnostics/testsWithStdLib/annotations/SynchronizedOnInterfaceCompanionMember.txt
Vendored
+19
@@ -0,0 +1,19 @@
|
||||
package
|
||||
|
||||
public interface I {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public companion object Companion {
|
||||
private constructor Companion()
|
||||
@get:kotlin.jvm.Synchronized @set:kotlin.jvm.Synchronized public final var syncProp: kotlin.String
|
||||
@kotlin.jvm.JvmStatic @get:kotlin.jvm.Synchronized @set:kotlin.jvm.Synchronized public final var syncPropJvmStatic: kotlin.String
|
||||
@get:kotlin.jvm.Synchronized @get:kotlin.jvm.JvmStatic @set:kotlin.jvm.Synchronized @set:kotlin.jvm.JvmStatic public final var syncPropJvmStaticAccessors: kotlin.String
|
||||
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.jvm.Synchronized public final fun syncFun(): kotlin.Unit
|
||||
@kotlin.jvm.Synchronized @kotlin.jvm.JvmStatic public final fun syncFunJvmStatic(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -5,7 +5,7 @@ interface Test {
|
||||
<!INAPPLICABLE_JVM_NAME!>@get:JvmName("1")<!>
|
||||
val b: Int
|
||||
|
||||
<!SYNCHRONIZED_ON_ABSTRACT!>@get:Synchronized<!>
|
||||
<!SYNCHRONIZED_IN_INTERFACE!>@get:Synchronized<!>
|
||||
val c: Int
|
||||
|
||||
<!OVERLOADS_INTERFACE, WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@get:JvmOverloads<!>
|
||||
|
||||
Reference in New Issue
Block a user