From e2c287c77e22af39010a3576949625a01e392730 Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Tue, 3 Jul 2018 15:48:05 +0300 Subject: [PATCH] Fix language feature for mod/rem tests for migration to 1.3 version After 2e88f5c47dd4c30728697781d8243903f955ee87 --- .../DeprecatedModAssignOperatorConventions.kt | 1 + .../DeprecatedModOperatorConventions.kt | 1 + .../operatorRem/deprecatedModConvention.kt | 1 + .../doNotResolveToInapplicableRem.kt | 1 + .../tests/operatorRem/modWithRemAssign.kt | 1 + ...rningForModFromBuiltinsWhenApi1_0_after.kt | 48 +++++++++++++++++++ ...ingForModFromBuiltinsWhenApi1_0_after.txt} | 0 ...ingForModFromBuiltinsWhenApi1_0_before.kt} | 1 + ...ingForModFromBuiltinsWhenApi1_0_before.txt | 47 ++++++++++++++++++ .../preferRemAsExtentionOverMod.kt | 1 + .../operatorRem/preferRemAsMemberOverMod.kt | 1 + .../preferRemFromCompanionObjectOverRem.kt | 1 + .../preferRemOverModInLocalFunctions.kt | 1 + .../preferRemWithImplicitReceivers.kt | 1 + .../prefereRemAsExtensionOverMemberMod.kt | 1 + .../operatorRem/remWithModAndModAssign.kt | 1 + .../tests/operatorRem/remWithModAssign.kt | 1 + .../operatorRem/resolveModIfRemIsHidden.kt | 1 + .../checkers/DiagnosticsTestGenerated.java | 11 +++-- .../DiagnosticsUsingJavacTestGenerated.java | 11 +++-- 20 files changed, 126 insertions(+), 6 deletions(-) create mode 100644 compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0_after.kt rename compiler/testData/diagnostics/tests/operatorRem/{noWarningForModFromBuiltinsWhenApi1_0.txt => noWarningForModFromBuiltinsWhenApi1_0_after.txt} (100%) rename compiler/testData/diagnostics/tests/operatorRem/{noWarningForModFromBuiltinsWhenApi1_0.kt => noWarningForModFromBuiltinsWhenApi1_0_before.kt} (96%) create mode 100644 compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0_before.txt diff --git a/compiler/testData/diagnostics/tests/operatorRem/DeprecatedModAssignOperatorConventions.kt b/compiler/testData/diagnostics/tests/operatorRem/DeprecatedModAssignOperatorConventions.kt index e4e261566c7..0f9024d6b6f 100644 --- a/compiler/testData/diagnostics/tests/operatorRem/DeprecatedModAssignOperatorConventions.kt +++ b/compiler/testData/diagnostics/tests/operatorRem/DeprecatedModAssignOperatorConventions.kt @@ -1,3 +1,4 @@ +// !LANGUAGE: -ProhibitOperatorMod // !WITH_NEW_INFERENCE // !DIAGNOSTICS: -UNUSED_PARAMETER diff --git a/compiler/testData/diagnostics/tests/operatorRem/DeprecatedModOperatorConventions.kt b/compiler/testData/diagnostics/tests/operatorRem/DeprecatedModOperatorConventions.kt index 6121e479c2b..f1d3d0d89af 100644 --- a/compiler/testData/diagnostics/tests/operatorRem/DeprecatedModOperatorConventions.kt +++ b/compiler/testData/diagnostics/tests/operatorRem/DeprecatedModOperatorConventions.kt @@ -1,3 +1,4 @@ +// !LANGUAGE: -ProhibitOperatorMod // !WITH_NEW_INFERENCE // !DIAGNOSTICS: -UNUSED_PARAMETER diff --git a/compiler/testData/diagnostics/tests/operatorRem/deprecatedModConvention.kt b/compiler/testData/diagnostics/tests/operatorRem/deprecatedModConvention.kt index cab83732480..d25e4468d83 100644 --- a/compiler/testData/diagnostics/tests/operatorRem/deprecatedModConvention.kt +++ b/compiler/testData/diagnostics/tests/operatorRem/deprecatedModConvention.kt @@ -1,3 +1,4 @@ +// !LANGUAGE: -ProhibitOperatorMod // !DIAGNOSTICS: -UNUSED_PARAMETER object ModAndRem { diff --git a/compiler/testData/diagnostics/tests/operatorRem/doNotResolveToInapplicableRem.kt b/compiler/testData/diagnostics/tests/operatorRem/doNotResolveToInapplicableRem.kt index 23470239e12..2f120bfaa69 100644 --- a/compiler/testData/diagnostics/tests/operatorRem/doNotResolveToInapplicableRem.kt +++ b/compiler/testData/diagnostics/tests/operatorRem/doNotResolveToInapplicableRem.kt @@ -1,3 +1,4 @@ +// !LANGUAGE: -ProhibitOperatorMod // !WITH_NEW_INFERENCE // !DIAGNOSTICS: -UNUSED_PARAMETER diff --git a/compiler/testData/diagnostics/tests/operatorRem/modWithRemAssign.kt b/compiler/testData/diagnostics/tests/operatorRem/modWithRemAssign.kt index c190b101aec..2f6fdefd0a6 100644 --- a/compiler/testData/diagnostics/tests/operatorRem/modWithRemAssign.kt +++ b/compiler/testData/diagnostics/tests/operatorRem/modWithRemAssign.kt @@ -1,3 +1,4 @@ +// !LANGUAGE: -ProhibitOperatorMod // !DIAGNOSTICS: -UNUSED_PARAMETER, -EXTENSION_SHADOWED_BY_MEMBER class ModAndRemAssign { diff --git a/compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0_after.kt b/compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0_after.kt new file mode 100644 index 00000000000..74e040d2fff --- /dev/null +++ b/compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0_after.kt @@ -0,0 +1,48 @@ +// !LANGUAGE: +ProhibitOperatorMod +// !WITH_NEW_INFERENCE +// !API_VERSION: 1.0 +// !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_VARIABLE, -EXTENSION_SHADOWED_BY_MEMBER + +class Foo { + operator fun rem(x: Int): Foo = Foo() +} + +class Bar { + operator fun remAssign(x: Int) {} +} + +class Baz { + companion object { + operator fun rem(x: Int) {} + operator fun Int.rem(x: Int) {} + } +} + +operator fun Baz.rem(x: Int) {} + +fun local() { + operator fun Int.rem(x: Int) {} + operator fun String.remAssign(x: Int) {} +} + +class WithMod { + operator fun mod(other: WithMod) = this + + fun test() { + val a = this % this + var b = this.mod(this) + b %= this + } +} + +fun noOverflow() { + (-1).mod(5) +} + +fun builtIns(b: Byte, s: Short) { + var a = 1 % 2 + a %= 3 + 1.mod(2) + b % s + 1.0 % 2.0 +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0.txt b/compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0_after.txt similarity index 100% rename from compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0.txt rename to compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0_after.txt diff --git a/compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0.kt b/compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0_before.kt similarity index 96% rename from compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0.kt rename to compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0_before.kt index 69e155445d6..26591343801 100644 --- a/compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0.kt +++ b/compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0_before.kt @@ -1,3 +1,4 @@ +// !LANGUAGE: -ProhibitOperatorMod // !WITH_NEW_INFERENCE // !API_VERSION: 1.0 // !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_VARIABLE, -EXTENSION_SHADOWED_BY_MEMBER diff --git a/compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0_before.txt b/compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0_before.txt new file mode 100644 index 00000000000..8e9c74eeea6 --- /dev/null +++ b/compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0_before.txt @@ -0,0 +1,47 @@ +package + +public fun builtIns(/*0*/ b: kotlin.Byte, /*1*/ s: kotlin.Short): kotlin.Unit +public fun local(): kotlin.Unit +public fun noOverflow(): kotlin.Unit +public operator fun Baz.rem(/*0*/ x: kotlin.Int): kotlin.Unit + +public final class Bar { + public constructor Bar() + 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 remAssign(/*0*/ x: kotlin.Int): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +public final class Baz { + public constructor Baz() + 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() + 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 rem(/*0*/ x: kotlin.Int): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + public final operator fun kotlin.Int.rem(/*0*/ x: kotlin.Int): kotlin.Unit + } +} + +public final class Foo { + public constructor Foo() + 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 rem(/*0*/ x: kotlin.Int): Foo + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} + +public final class WithMod { + public constructor WithMod() + 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*/ other: WithMod): WithMod + public final fun test(): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String +} diff --git a/compiler/testData/diagnostics/tests/operatorRem/preferRemAsExtentionOverMod.kt b/compiler/testData/diagnostics/tests/operatorRem/preferRemAsExtentionOverMod.kt index cd52302413d..56c6a556d5a 100644 --- a/compiler/testData/diagnostics/tests/operatorRem/preferRemAsExtentionOverMod.kt +++ b/compiler/testData/diagnostics/tests/operatorRem/preferRemAsExtentionOverMod.kt @@ -1,3 +1,4 @@ +// !LANGUAGE: -ProhibitOperatorMod // !DIAGNOSTICS: -UNUSED_PARAMETER class Foo { diff --git a/compiler/testData/diagnostics/tests/operatorRem/preferRemAsMemberOverMod.kt b/compiler/testData/diagnostics/tests/operatorRem/preferRemAsMemberOverMod.kt index f95d48cb00c..1adf05b139c 100644 --- a/compiler/testData/diagnostics/tests/operatorRem/preferRemAsMemberOverMod.kt +++ b/compiler/testData/diagnostics/tests/operatorRem/preferRemAsMemberOverMod.kt @@ -1,3 +1,4 @@ +// !LANGUAGE: -ProhibitOperatorMod // !DIAGNOSTICS: -UNUSED_PARAMETER class Foo { diff --git a/compiler/testData/diagnostics/tests/operatorRem/preferRemFromCompanionObjectOverRem.kt b/compiler/testData/diagnostics/tests/operatorRem/preferRemFromCompanionObjectOverRem.kt index d632737f7b7..17a7880e80c 100644 --- a/compiler/testData/diagnostics/tests/operatorRem/preferRemFromCompanionObjectOverRem.kt +++ b/compiler/testData/diagnostics/tests/operatorRem/preferRemFromCompanionObjectOverRem.kt @@ -1,3 +1,4 @@ +// !LANGUAGE: -ProhibitOperatorMod // !DIAGNOSTICS: -UNUSED_PARAMETER class A { diff --git a/compiler/testData/diagnostics/tests/operatorRem/preferRemOverModInLocalFunctions.kt b/compiler/testData/diagnostics/tests/operatorRem/preferRemOverModInLocalFunctions.kt index 979621c5153..0e7f7d3fd06 100644 --- a/compiler/testData/diagnostics/tests/operatorRem/preferRemOverModInLocalFunctions.kt +++ b/compiler/testData/diagnostics/tests/operatorRem/preferRemOverModInLocalFunctions.kt @@ -1,3 +1,4 @@ +// !LANGUAGE: -ProhibitOperatorMod // !DIAGNOSTICS: -UNUSED_PARAMETER object B diff --git a/compiler/testData/diagnostics/tests/operatorRem/preferRemWithImplicitReceivers.kt b/compiler/testData/diagnostics/tests/operatorRem/preferRemWithImplicitReceivers.kt index a68c2ca89d9..cd1b40ce8df 100644 --- a/compiler/testData/diagnostics/tests/operatorRem/preferRemWithImplicitReceivers.kt +++ b/compiler/testData/diagnostics/tests/operatorRem/preferRemWithImplicitReceivers.kt @@ -1,3 +1,4 @@ +// !LANGUAGE: -ProhibitOperatorMod // !DIAGNOSTICS: -UNUSED_PARAMETER class A { diff --git a/compiler/testData/diagnostics/tests/operatorRem/prefereRemAsExtensionOverMemberMod.kt b/compiler/testData/diagnostics/tests/operatorRem/prefereRemAsExtensionOverMemberMod.kt index 156e65e2e3e..78fa07fb91d 100644 --- a/compiler/testData/diagnostics/tests/operatorRem/prefereRemAsExtensionOverMemberMod.kt +++ b/compiler/testData/diagnostics/tests/operatorRem/prefereRemAsExtensionOverMemberMod.kt @@ -1,3 +1,4 @@ +// !LANGUAGE: -ProhibitOperatorMod // !DIAGNOSTICS: -UNUSED_PARAMETER class Foo { diff --git a/compiler/testData/diagnostics/tests/operatorRem/remWithModAndModAssign.kt b/compiler/testData/diagnostics/tests/operatorRem/remWithModAndModAssign.kt index c401be2e4a7..38b40fff591 100644 --- a/compiler/testData/diagnostics/tests/operatorRem/remWithModAndModAssign.kt +++ b/compiler/testData/diagnostics/tests/operatorRem/remWithModAndModAssign.kt @@ -1,3 +1,4 @@ +// !LANGUAGE: -ProhibitOperatorMod // !DIAGNOSTICS: -UNUSED_PARAMETER, -EXTENSION_SHADOWED_BY_MEMBER class ModAndRemAssign { diff --git a/compiler/testData/diagnostics/tests/operatorRem/remWithModAssign.kt b/compiler/testData/diagnostics/tests/operatorRem/remWithModAssign.kt index 54e18151cec..3ff810b944c 100644 --- a/compiler/testData/diagnostics/tests/operatorRem/remWithModAssign.kt +++ b/compiler/testData/diagnostics/tests/operatorRem/remWithModAssign.kt @@ -1,3 +1,4 @@ +// !LANGUAGE: -ProhibitOperatorMod // !DIAGNOSTICS: -UNUSED_PARAMETER object RemAndModAssign { diff --git a/compiler/testData/diagnostics/tests/operatorRem/resolveModIfRemIsHidden.kt b/compiler/testData/diagnostics/tests/operatorRem/resolveModIfRemIsHidden.kt index 4ed361ee4be..94ca4b1be82 100644 --- a/compiler/testData/diagnostics/tests/operatorRem/resolveModIfRemIsHidden.kt +++ b/compiler/testData/diagnostics/tests/operatorRem/resolveModIfRemIsHidden.kt @@ -1,3 +1,4 @@ +// !LANGUAGE: -ProhibitOperatorMod // !DIAGNOSTICS: -UNUSED_PARAMETER object A { diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java index ba6e2fc7667..8afed55a72f 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java @@ -13833,9 +13833,14 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest { runTest("compiler/testData/diagnostics/tests/operatorRem/noOperatorRemFeature.kt"); } - @TestMetadata("noWarningForModFromBuiltinsWhenApi1_0.kt") - public void testNoWarningForModFromBuiltinsWhenApi1_0() throws Exception { - runTest("compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0.kt"); + @TestMetadata("noWarningForModFromBuiltinsWhenApi1_0_after.kt") + public void testNoWarningForModFromBuiltinsWhenApi1_0_after() throws Exception { + runTest("compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0_after.kt"); + } + + @TestMetadata("noWarningForModFromBuiltinsWhenApi1_0_before.kt") + public void testNoWarningForModFromBuiltinsWhenApi1_0_before() throws Exception { + runTest("compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0_before.kt"); } @TestMetadata("numberRemConversions.kt") diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java index eb7e3f3219f..637c4fb2f13 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java @@ -13833,9 +13833,14 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing runTest("compiler/testData/diagnostics/tests/operatorRem/noOperatorRemFeature.kt"); } - @TestMetadata("noWarningForModFromBuiltinsWhenApi1_0.kt") - public void testNoWarningForModFromBuiltinsWhenApi1_0() throws Exception { - runTest("compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0.kt"); + @TestMetadata("noWarningForModFromBuiltinsWhenApi1_0_after.kt") + public void testNoWarningForModFromBuiltinsWhenApi1_0_after() throws Exception { + runTest("compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0_after.kt"); + } + + @TestMetadata("noWarningForModFromBuiltinsWhenApi1_0_before.kt") + public void testNoWarningForModFromBuiltinsWhenApi1_0_before() throws Exception { + runTest("compiler/testData/diagnostics/tests/operatorRem/noWarningForModFromBuiltinsWhenApi1_0_before.kt"); } @TestMetadata("numberRemConversions.kt")