[FIR] KT-55747: Report error for operator fun mod
^KT-55747 Fixed Merge-request: KT-MR-8522 Merged-by: Nikolay Lunyak <Nikolay.Lunyak@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
37a7044e74
commit
e2403c801f
Vendored
+4
-4
@@ -2,12 +2,12 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class OldAndNew {
|
||||
operator fun modAssign(x: Int) {}
|
||||
<!DEPRECATED_BINARY_MOD!>operator<!> fun modAssign(x: Int) {}
|
||||
operator fun remAssign(x: Int) {}
|
||||
}
|
||||
|
||||
class OnlyOld {
|
||||
operator fun modAssign(x: Int) {}
|
||||
<!DEPRECATED_BINARY_MOD!>operator<!> fun modAssign(x: Int) {}
|
||||
}
|
||||
|
||||
class OnlyNew {
|
||||
@@ -16,11 +16,11 @@ class OnlyNew {
|
||||
|
||||
class Sample
|
||||
|
||||
operator fun Sample.modAssign(x: Int) {}
|
||||
<!DEPRECATED_BINARY_MOD!>operator<!> fun Sample.modAssign(x: Int) {}
|
||||
operator fun Sample.remAssign(x: Int) {}
|
||||
|
||||
class ModAndRemAssign {
|
||||
operator fun mod(x: Int): ModAndRemAssign = ModAndRemAssign()
|
||||
<!DEPRECATED_BINARY_MOD!>operator<!> fun mod(x: Int): ModAndRemAssign = ModAndRemAssign()
|
||||
operator fun remAssign(x: Int) {}
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -2,12 +2,12 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class OldAndNew {
|
||||
operator fun mod(x: Int) {}
|
||||
<!DEPRECATED_BINARY_MOD!>operator<!> fun mod(x: Int) {}
|
||||
operator fun rem(x: Int) {}
|
||||
}
|
||||
|
||||
class OnlyOld {
|
||||
operator fun mod(x: Int) {}
|
||||
<!DEPRECATED_BINARY_MOD!>operator<!> fun mod(x: Int) {}
|
||||
}
|
||||
|
||||
class OnlyNew {
|
||||
@@ -16,11 +16,11 @@ class OnlyNew {
|
||||
|
||||
class Sample
|
||||
|
||||
operator fun Sample.mod(x: Int) {}
|
||||
<!DEPRECATED_BINARY_MOD!>operator<!> fun Sample.mod(x: Int) {}
|
||||
operator fun Sample.rem(x: Int) {}
|
||||
|
||||
class IntAndUnit {
|
||||
operator fun mod(x: Int) = 0
|
||||
<!DEPRECATED_BINARY_MOD!>operator<!> fun mod(x: Int) = 0
|
||||
operator fun rem(x: Int): Int = 0
|
||||
}
|
||||
|
||||
|
||||
+5
-5
@@ -2,23 +2,23 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
object ModAndRem {
|
||||
operator fun mod(x: Int) {}
|
||||
<!DEPRECATED_BINARY_MOD!>operator<!> fun mod(x: Int) {}
|
||||
operator fun rem(x: Int) {}
|
||||
}
|
||||
|
||||
object OldMod {
|
||||
operator fun mod(x: Int) {}
|
||||
<!DEPRECATED_BINARY_MOD!>operator<!> fun mod(x: Int) {}
|
||||
}
|
||||
|
||||
object ModAndRemExtension
|
||||
operator fun ModAndRemExtension.mod(x: Int) {}
|
||||
<!DEPRECATED_BINARY_MOD!>operator<!> fun ModAndRemExtension.mod(x: Int) {}
|
||||
operator fun ModAndRemExtension.rem(x: Int) {}
|
||||
|
||||
object ModExtension
|
||||
operator fun ModExtension.mod(x: Int) {}
|
||||
<!DEPRECATED_BINARY_MOD!>operator<!> fun ModExtension.mod(x: Int) {}
|
||||
|
||||
object ModMemberAndRemExtension {
|
||||
operator fun mod(x: Int) {}
|
||||
<!DEPRECATED_BINARY_MOD!>operator<!> fun mod(x: Int) {}
|
||||
}
|
||||
|
||||
operator fun ModMemberAndRemExtension.rem(x: Int) {}
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
object OldMod {
|
||||
operator fun mod(x: Int) {}
|
||||
<!DEPRECATED_BINARY_MOD!>operator<!> fun mod(x: Int) {}
|
||||
}
|
||||
|
||||
object RemExtension
|
||||
|
||||
+4
-4
@@ -2,16 +2,16 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
object ModAndRem {
|
||||
operator fun mod(x: Int) {}
|
||||
<!FORBIDDEN_BINARY_MOD!>operator<!> fun mod(x: Int) {}
|
||||
operator fun rem(x: Int) {}
|
||||
|
||||
operator fun modAssign(x: Int) {}
|
||||
<!FORBIDDEN_BINARY_MOD!>operator<!> fun modAssign(x: Int) {}
|
||||
operator fun remAssign(x: Int) {}
|
||||
}
|
||||
|
||||
object JustMod {
|
||||
operator fun mod(x: Int) {}
|
||||
operator fun modAssign(x: Int) {}
|
||||
<!FORBIDDEN_BINARY_MOD!>operator<!> fun mod(x: Int) {}
|
||||
<!FORBIDDEN_BINARY_MOD!>operator<!> fun modAssign(x: Int) {}
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER, -EXTENSION_SHADOWED_BY_MEMBER
|
||||
|
||||
class ModAndRemAssign {
|
||||
operator fun mod(x: Int) = ModAndRemAssign()
|
||||
operator fun mod(x: String) = ModAndRemAssign()
|
||||
operator fun modAssign(x: String) {}
|
||||
operator fun remAssign(x: Int) {}
|
||||
}
|
||||
|
||||
operator fun ModAndRemAssign.mod(x: String) = ModAndRemAssign()
|
||||
operator fun ModAndRemAssign.modAssign(x: String) {}
|
||||
|
||||
fun test() {
|
||||
val modAndRemAssign = ModAndRemAssign()
|
||||
modAndRemAssign %= 1
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER, -EXTENSION_SHADOWED_BY_MEMBER
|
||||
|
||||
|
||||
-13
@@ -1,13 +0,0 @@
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class Foo {
|
||||
}
|
||||
operator fun Foo.mod(x: Int): Foo = Foo()
|
||||
operator fun Foo.rem(x: Int): Int = 0
|
||||
|
||||
fun foo() {
|
||||
takeInt(Foo() % 1)
|
||||
}
|
||||
|
||||
fun takeInt(x: Int) {}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
|
||||
-13
@@ -1,13 +0,0 @@
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class Foo {
|
||||
operator fun mod(x: Int): Foo = Foo()
|
||||
operator fun rem(x: Int): Int = 0
|
||||
}
|
||||
|
||||
fun foo() {
|
||||
takeInt(Foo() % 1)
|
||||
}
|
||||
|
||||
fun takeInt(x: Int) {}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class A {
|
||||
companion object {
|
||||
operator fun A.rem(x: Int) = 0
|
||||
}
|
||||
|
||||
fun test() {
|
||||
operator fun A.mod(x: Int) = ""
|
||||
|
||||
takeInt(A() % 123)
|
||||
}
|
||||
}
|
||||
|
||||
fun takeInt(x: Int) {}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
|
||||
-30
@@ -1,30 +0,0 @@
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
object B
|
||||
|
||||
class A {
|
||||
operator fun B.rem(x: Int) = 0
|
||||
}
|
||||
|
||||
fun test1() {
|
||||
operator fun B.mod(x: Int) = ""
|
||||
|
||||
with(A()) {
|
||||
takeInt(B % 10)
|
||||
}
|
||||
}
|
||||
|
||||
class C {
|
||||
operator fun B.mod(x: Int) = ""
|
||||
}
|
||||
|
||||
fun test2() {
|
||||
operator fun B.rem(x: Int) = 0
|
||||
|
||||
with(C()) {
|
||||
takeInt(B % 10)
|
||||
}
|
||||
}
|
||||
|
||||
fun takeInt(x: Int) {}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class A {
|
||||
operator fun Int.mod(s: String) = 4
|
||||
}
|
||||
|
||||
class B {
|
||||
operator fun Int.rem(s: String) = ""
|
||||
}
|
||||
|
||||
fun test() {
|
||||
with(B()) {
|
||||
with(A()) {
|
||||
takeString(1 % "")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun takeString(s: String) {}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class Foo {
|
||||
operator fun mod(x: Int): Foo = Foo()
|
||||
}
|
||||
|
||||
operator fun Foo.rem(x: Int): Int = 0
|
||||
|
||||
|
||||
fun foo() {
|
||||
takeInt(Foo() % 1)
|
||||
}
|
||||
|
||||
fun takeInt(x: Int) {}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
|
||||
-17
@@ -1,17 +0,0 @@
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER, -EXTENSION_SHADOWED_BY_MEMBER
|
||||
|
||||
class ModAndRemAssign {
|
||||
operator fun mod(x: Int) = ModAndRemAssign()
|
||||
operator fun mod(x: String) = ModAndRemAssign()
|
||||
operator fun modAssign(x: String) {}
|
||||
operator fun rem(x: Int) = ModAndRemAssign()
|
||||
}
|
||||
|
||||
operator fun ModAndRemAssign.mod(x: String) = ModAndRemAssign()
|
||||
operator fun ModAndRemAssign.modAssign(x: String) {}
|
||||
|
||||
fun test() {
|
||||
var modAndRemAssign = ModAndRemAssign()
|
||||
modAndRemAssign %= 1
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER, -EXTENSION_SHADOWED_BY_MEMBER
|
||||
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
object RemAndModAssign {
|
||||
operator fun modAssign(x: String) {}
|
||||
operator fun rem(x: Int) = RemAndModAssign
|
||||
}
|
||||
|
||||
fun test2() {
|
||||
var c = RemAndModAssign
|
||||
c %= 123
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: -ProhibitOperatorMod
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ object A {
|
||||
@Deprecated("Use mod instead", ReplaceWith("mod"), DeprecationLevel.HIDDEN)
|
||||
operator fun rem(x: Int) = 0
|
||||
|
||||
operator fun mod(x: Int) = ""
|
||||
<!DEPRECATED_BINARY_MOD!>operator<!> fun mod(x: Int) = ""
|
||||
}
|
||||
|
||||
fun test() {
|
||||
|
||||
Reference in New Issue
Block a user