From 2f55a3fa0dd3af278229a36bf5521400e071ad8d Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Wed, 17 Jun 2020 19:37:44 +0300 Subject: [PATCH] Add various test for `DeprecatedSinceKotlin` annotation --- ...irOldFrontendDiagnosticsTestGenerated.java | 10 ++++++++ .../deprecatedSinceKotlinWithoutArguments.kt | 9 ++++++++ .../deprecatedSinceKotlinWithoutArguments.txt | 4 ++++ .../messageFromDeprecatedAnnotation.fir.kt | 7 ++++++ .../messageFromDeprecatedAnnotation.kt | 7 ++++++ .../messageFromDeprecatedAnnotation.txt | 4 ++++ .../deprecatedFlag/deprecatedSinceKotlin.kt | 23 +++++++++++++++++++ .../checkers/DiagnosticsTestGenerated.java | 10 ++++++++ .../DiagnosticsUsingJavacTestGenerated.java | 10 ++++++++ .../flags/WriteFlagsTestGenerated.java | 5 ++++ .../codegen/ir/IrWriteFlagsTestGenerated.java | 5 ++++ .../deprecatedSinceKotlinAndReplaceWith.kt | 13 +++++++++++ ...precatedSinceKotlinAndReplaceWith.kt.after | 13 +++++++++++ .../idea/quickfix/QuickFixTestGenerated.java | 5 ++++ 14 files changed, 125 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/deprecatedSinceKotlinWithoutArguments.kt create mode 100644 compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/deprecatedSinceKotlinWithoutArguments.txt create mode 100644 compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/messageFromDeprecatedAnnotation.fir.kt create mode 100644 compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/messageFromDeprecatedAnnotation.kt create mode 100644 compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/messageFromDeprecatedAnnotation.txt create mode 100644 compiler/testData/writeFlags/function/deprecatedFlag/deprecatedSinceKotlin.kt create mode 100644 idea/testData/quickfix/deprecatedSymbolUsage/deprecatedSinceKotlinAndReplaceWith.kt create mode 100644 idea/testData/quickfix/deprecatedSymbolUsage/deprecatedSinceKotlinAndReplaceWith.kt.after diff --git a/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestGenerated.java index 62f93f29628..02f99b04515 100644 --- a/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests/org/jetbrains/kotlin/fir/FirOldFrontendDiagnosticsTestGenerated.java @@ -6662,6 +6662,11 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirOldFronte runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/deprecatedSinceKotlinDeclaration.kt"); } + @TestMetadata("deprecatedSinceKotlinWithoutArguments.kt") + public void testDeprecatedSinceKotlinWithoutArguments() throws Exception { + runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/deprecatedSinceKotlinWithoutArguments.kt"); + } + @TestMetadata("error.kt") public void testError() throws Exception { runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/error.kt"); @@ -6672,6 +6677,11 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirOldFronte runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/hidden.kt"); } + @TestMetadata("messageFromDeprecatedAnnotation.kt") + public void testMessageFromDeprecatedAnnotation() throws Exception { + runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/messageFromDeprecatedAnnotation.kt"); + } + @TestMetadata("warning.kt") public void testWarning() throws Exception { runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/warning.kt"); diff --git a/compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/deprecatedSinceKotlinWithoutArguments.kt b/compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/deprecatedSinceKotlinWithoutArguments.kt new file mode 100644 index 00000000000..3c42ca900ac --- /dev/null +++ b/compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/deprecatedSinceKotlinWithoutArguments.kt @@ -0,0 +1,9 @@ +// FIR_IDENTICAL + +@Deprecated("") +@DeprecatedSinceKotlin +fun foo() {} + +fun test() { + foo() +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/deprecatedSinceKotlinWithoutArguments.txt b/compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/deprecatedSinceKotlinWithoutArguments.txt new file mode 100644 index 00000000000..28645e720ac --- /dev/null +++ b/compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/deprecatedSinceKotlinWithoutArguments.txt @@ -0,0 +1,4 @@ +package + +@kotlin.Deprecated(message = "") @kotlin.DeprecatedSinceKotlin public fun foo(): kotlin.Unit +public fun test(): kotlin.Unit diff --git a/compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/messageFromDeprecatedAnnotation.fir.kt b/compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/messageFromDeprecatedAnnotation.fir.kt new file mode 100644 index 00000000000..fa0d2bfe666 --- /dev/null +++ b/compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/messageFromDeprecatedAnnotation.fir.kt @@ -0,0 +1,7 @@ +@Deprecated("foo test") +@DeprecatedSinceKotlin(warningSince = "1.0") +fun foo() {} + +fun test() { + foo() +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/messageFromDeprecatedAnnotation.kt b/compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/messageFromDeprecatedAnnotation.kt new file mode 100644 index 00000000000..a36a27dc8e4 --- /dev/null +++ b/compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/messageFromDeprecatedAnnotation.kt @@ -0,0 +1,7 @@ +@Deprecated("foo test") +@DeprecatedSinceKotlin(warningSince = "1.0") +fun foo() {} + +fun test() { + foo() +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/messageFromDeprecatedAnnotation.txt b/compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/messageFromDeprecatedAnnotation.txt new file mode 100644 index 00000000000..2923acffd94 --- /dev/null +++ b/compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/messageFromDeprecatedAnnotation.txt @@ -0,0 +1,4 @@ +package + +@kotlin.Deprecated(message = "foo test") @kotlin.DeprecatedSinceKotlin(warningSince = "1.0") public fun foo(): kotlin.Unit +public fun test(): kotlin.Unit diff --git a/compiler/testData/writeFlags/function/deprecatedFlag/deprecatedSinceKotlin.kt b/compiler/testData/writeFlags/function/deprecatedFlag/deprecatedSinceKotlin.kt new file mode 100644 index 00000000000..f5c0a38e2d8 --- /dev/null +++ b/compiler/testData/writeFlags/function/deprecatedFlag/deprecatedSinceKotlin.kt @@ -0,0 +1,23 @@ +@Deprecated("") +@DeprecatedSinceKotlin(warningSince = "1.0") +fun test1() {} + +@Deprecated("") +@DeprecatedSinceKotlin(warningSince = "1.9") +fun test2() {} + +@Deprecated("") +@DeprecatedSinceKotlin +fun test3() {} + +// TESTED_OBJECT_KIND: function +// TESTED_OBJECTS: DeprecatedSinceKotlinKt, test1 +// FLAGS: ACC_DEPRECATED, ACC_PUBLIC, ACC_FINAL, ACC_STATIC + +// TESTED_OBJECT_KIND: function +// TESTED_OBJECTS: DeprecatedSinceKotlinKt, test2 +// FLAGS: ACC_DEPRECATED, ACC_PUBLIC, ACC_FINAL, ACC_STATIC + +// TESTED_OBJECT_KIND: function +// TESTED_OBJECTS: DeprecatedSinceKotlinKt, test3 +// FLAGS: ACC_DEPRECATED, ACC_PUBLIC, ACC_FINAL, ACC_STATIC diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java index 449146b0820..acda3ef9e74 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java @@ -6669,6 +6669,11 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTestWithFirVali runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/deprecatedSinceKotlinDeclaration.kt"); } + @TestMetadata("deprecatedSinceKotlinWithoutArguments.kt") + public void testDeprecatedSinceKotlinWithoutArguments() throws Exception { + runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/deprecatedSinceKotlinWithoutArguments.kt"); + } + @TestMetadata("error.kt") public void testError() throws Exception { runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/error.kt"); @@ -6679,6 +6684,11 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTestWithFirVali runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/hidden.kt"); } + @TestMetadata("messageFromDeprecatedAnnotation.kt") + public void testMessageFromDeprecatedAnnotation() throws Exception { + runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/messageFromDeprecatedAnnotation.kt"); + } + @TestMetadata("warning.kt") public void testWarning() throws Exception { runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/warning.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java index c2631f5fe48..8ccc05b769c 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java @@ -6664,6 +6664,11 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/deprecatedSinceKotlinDeclaration.kt"); } + @TestMetadata("deprecatedSinceKotlinWithoutArguments.kt") + public void testDeprecatedSinceKotlinWithoutArguments() throws Exception { + runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/deprecatedSinceKotlinWithoutArguments.kt"); + } + @TestMetadata("error.kt") public void testError() throws Exception { runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/error.kt"); @@ -6674,6 +6679,11 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/hidden.kt"); } + @TestMetadata("messageFromDeprecatedAnnotation.kt") + public void testMessageFromDeprecatedAnnotation() throws Exception { + runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/messageFromDeprecatedAnnotation.kt"); + } + @TestMetadata("warning.kt") public void testWarning() throws Exception { runTest("compiler/testData/diagnostics/tests/deprecated/deprecatedSinceKotlin/warning.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/flags/WriteFlagsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/flags/WriteFlagsTestGenerated.java index bfeaa809453..184bb0e2a2d 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/flags/WriteFlagsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/flags/WriteFlagsTestGenerated.java @@ -515,6 +515,11 @@ public class WriteFlagsTestGenerated extends AbstractWriteFlagsTest { KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/writeFlags/function/deprecatedFlag"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); } + @TestMetadata("deprecatedSinceKotlin.kt") + public void testDeprecatedSinceKotlin() throws Exception { + runTest("compiler/testData/writeFlags/function/deprecatedFlag/deprecatedSinceKotlin.kt"); + } + @TestMetadata("emptyGetter.kt") public void testEmptyGetter() throws Exception { runTest("compiler/testData/writeFlags/function/deprecatedFlag/emptyGetter.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrWriteFlagsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrWriteFlagsTestGenerated.java index acd0fcf9953..9bed820bd69 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrWriteFlagsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrWriteFlagsTestGenerated.java @@ -515,6 +515,11 @@ public class IrWriteFlagsTestGenerated extends AbstractIrWriteFlagsTest { KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/writeFlags/function/deprecatedFlag"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @TestMetadata("deprecatedSinceKotlin.kt") + public void testDeprecatedSinceKotlin() throws Exception { + runTest("compiler/testData/writeFlags/function/deprecatedFlag/deprecatedSinceKotlin.kt"); + } + @TestMetadata("emptyGetter.kt") public void testEmptyGetter() throws Exception { runTest("compiler/testData/writeFlags/function/deprecatedFlag/emptyGetter.kt"); diff --git a/idea/testData/quickfix/deprecatedSymbolUsage/deprecatedSinceKotlinAndReplaceWith.kt b/idea/testData/quickfix/deprecatedSymbolUsage/deprecatedSinceKotlinAndReplaceWith.kt new file mode 100644 index 00000000000..e4880e3735f --- /dev/null +++ b/idea/testData/quickfix/deprecatedSymbolUsage/deprecatedSinceKotlinAndReplaceWith.kt @@ -0,0 +1,13 @@ +// "Replace with 'newFun()'" "true" + +@Deprecated("", ReplaceWith("newFun()")) +@DeprecatedSinceKotlin(warningSince = "1.0") +fun oldFun() { + newFun() +} + +fun newFun() {} + +fun foo() { + oldFun() +} diff --git a/idea/testData/quickfix/deprecatedSymbolUsage/deprecatedSinceKotlinAndReplaceWith.kt.after b/idea/testData/quickfix/deprecatedSymbolUsage/deprecatedSinceKotlinAndReplaceWith.kt.after new file mode 100644 index 00000000000..c9b8e8d041d --- /dev/null +++ b/idea/testData/quickfix/deprecatedSymbolUsage/deprecatedSinceKotlinAndReplaceWith.kt.after @@ -0,0 +1,13 @@ +// "Replace with 'newFun()'" "true" + +@Deprecated("", ReplaceWith("newFun()")) +@DeprecatedSinceKotlin(warningSince = "1.0") +fun oldFun() { + newFun() +} + +fun newFun() {} + +fun foo() { + newFun() +} diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index 760bbac4d6a..992f87a35f9 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -6220,6 +6220,11 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { runTest("idea/testData/quickfix/deprecatedSymbolUsage/classLiteralAndTypeArgsRuntime.kt"); } + @TestMetadata("deprecatedSinceKotlinAndReplaceWith.kt") + public void testDeprecatedSinceKotlinAndReplaceWith() throws Exception { + runTest("idea/testData/quickfix/deprecatedSymbolUsage/deprecatedSinceKotlinAndReplaceWith.kt"); + } + @TestMetadata("deprecationLevel.kt") public void testDeprecationLevel() throws Exception { runTest("idea/testData/quickfix/deprecatedSymbolUsage/deprecationLevel.kt");