Add warnings at declaration and call sites of operator 'mod'

This commit is contained in:
Mikhail Zarechenskiy
2016-12-05 22:43:07 +03:00
parent 97ca51381a
commit 5f71f1bcad
18 changed files with 222 additions and 20 deletions
@@ -0,0 +1,37 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
object ModAndRem {
<!DEPRECATED_BINARY_MOD!>operator<!> fun mod(x: Int) {}
operator fun rem(x: Int) {}
}
object OldMod {
<!DEPRECATED_BINARY_MOD!>operator<!> fun mod(x: Int) {}
}
object ModAndRemExtension
<!DEPRECATED_BINARY_MOD!>operator<!> fun ModAndRemExtension.mod(x: Int) {}
operator fun ModAndRemExtension.rem(x: Int) {}
object ModExtension
<!DEPRECATED_BINARY_MOD!>operator<!> fun ModExtension.mod(x: Int) {}
object ModMemberAndRemExtension {
<!DEPRECATED_BINARY_MOD!>operator<!> fun mod(x: Int) {}
}
operator fun ModMemberAndRemExtension.rem(x: Int) {}
fun foo() {
ModAndRem % 1
OldMod <!DEPRECATED_BINARY_MOD_AS_REM!>%<!> 1
ModAndRemExtension % 1
ModExtension <!DEPRECATED_BINARY_MOD_AS_REM!>%<!> 1
ModMemberAndRemExtension % 1
OldMod.mod(1)
ModExtension.mod(1)
}
@@ -0,0 +1,46 @@
package
public fun foo(): kotlin.Unit
public operator fun ModAndRemExtension.mod(/*0*/ x: kotlin.Int): kotlin.Unit
public operator fun ModExtension.mod(/*0*/ x: kotlin.Int): kotlin.Unit
public operator fun ModAndRemExtension.rem(/*0*/ x: kotlin.Int): kotlin.Unit
public operator fun ModMemberAndRemExtension.rem(/*0*/ x: kotlin.Int): kotlin.Unit
public object ModAndRem {
private constructor ModAndRem()
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 final operator fun mod(/*0*/ x: kotlin.Int): kotlin.Unit
public final operator fun rem(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public object ModAndRemExtension {
private constructor ModAndRemExtension()
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 object ModExtension {
private constructor ModExtension()
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 object ModMemberAndRemExtension {
private constructor ModMemberAndRemExtension()
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 final operator fun mod(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public object OldMod {
private constructor OldMod()
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 final operator fun mod(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -0,0 +1,38 @@
// !LANGUAGE: -OperatorRem
// !DIAGNOSTICS: -UNUSED_PARAMETER
object ModAndRem {
operator fun mod(x: Int) {}
<!UNSUPPORTED_FEATURE!>operator<!> fun rem(x: Int) {}
}
object OldMod {
operator fun mod(x: Int) {}
}
object ModAndRemExtension
operator fun ModAndRemExtension.mod(x: Int) {}
<!UNSUPPORTED_FEATURE!>operator<!> fun ModAndRemExtension.rem(x: Int) {}
object ModExtension
operator fun ModExtension.mod(x: Int) {}
object ModMemberAndRemExtension {
operator fun mod(x: Int) {}
}
<!UNSUPPORTED_FEATURE!>operator<!> fun ModMemberAndRemExtension.rem(x: Int) {}
fun foo() {
ModAndRem % 1
OldMod % 1
ModAndRemExtension % 1
ModExtension % 1
ModMemberAndRemExtension % 1
OldMod.mod(1)
ModExtension.mod(1)
}
@@ -0,0 +1,46 @@
package
public fun foo(): kotlin.Unit
public operator fun ModAndRemExtension.mod(/*0*/ x: kotlin.Int): kotlin.Unit
public operator fun ModExtension.mod(/*0*/ x: kotlin.Int): kotlin.Unit
public operator fun ModAndRemExtension.rem(/*0*/ x: kotlin.Int): kotlin.Unit
public operator fun ModMemberAndRemExtension.rem(/*0*/ x: kotlin.Int): kotlin.Unit
public object ModAndRem {
private constructor ModAndRem()
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 final operator fun mod(/*0*/ x: kotlin.Int): kotlin.Unit
public final operator fun rem(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public object ModAndRemExtension {
private constructor ModAndRemExtension()
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 object ModExtension {
private constructor ModExtension()
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 object ModMemberAndRemExtension {
private constructor ModMemberAndRemExtension()
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 final operator fun mod(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public object OldMod {
private constructor OldMod()
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 final operator fun mod(/*0*/ x: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -2,7 +2,7 @@
class Foo {
}
operator fun Foo.mod(x: Int): Foo = Foo()
<!DEPRECATED_BINARY_MOD!>operator<!> fun Foo.mod(x: Int): Foo = Foo()
operator fun Foo.rem(x: Int): Int = 0
fun foo() {
@@ -1,7 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class Foo {
operator fun mod(x: Int): Foo = Foo()
<!DEPRECATED_BINARY_MOD!>operator<!> fun mod(x: Int): Foo = Foo()
operator fun rem(x: Int): Int = 0
}
@@ -1,7 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class Foo {
operator fun mod(x: Int): Foo = Foo()
<!DEPRECATED_BINARY_MOD!>operator<!> fun mod(x: Int): Foo = Foo()
}
operator fun Foo.rem(x: Int): Int = 0