From 47d2a914bc73e63a4b1ac8144d5150c547ef4a2f Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 18 Mar 2021 10:08:05 +0300 Subject: [PATCH] FIR: add bad test data changes related to not implemented checker --- .../box/collections/inheritFromHashtable.kt | 1 + .../irrelevantImplCharSequence.fir.kt | 25 +++++++++++++++++ .../irrelevantImplCharSequence.kt | 1 - .../irrelevantImplCharSequenceKotlin.fir.kt | 28 +++++++++++++++++++ .../irrelevantImplCharSequenceKotlin.kt | 1 - .../irrelevantImplMutableList.fir.kt | 2 +- .../j+k/kt1730_implementCharSequence.fir.kt | 24 ++++++++++++++++ .../tests/j+k/kt1730_implementCharSequence.kt | 1 - .../hashtableInheritance.fir.kt | 6 ++++ .../specialBuiltIns/hashtableInheritance.kt | 1 - .../specialBuiltIns/securityProvider.fir.kt | 5 ++++ .../j+k/specialBuiltIns/securityProvider.kt | 1 - 12 files changed, 90 insertions(+), 6 deletions(-) create mode 100644 compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplCharSequence.fir.kt create mode 100644 compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplCharSequenceKotlin.fir.kt create mode 100644 compiler/testData/diagnostics/tests/j+k/kt1730_implementCharSequence.fir.kt create mode 100644 compiler/testData/diagnostics/tests/j+k/specialBuiltIns/hashtableInheritance.fir.kt create mode 100644 compiler/testData/diagnostics/tests/j+k/specialBuiltIns/securityProvider.fir.kt diff --git a/compiler/testData/codegen/box/collections/inheritFromHashtable.kt b/compiler/testData/codegen/box/collections/inheritFromHashtable.kt index ae42962f28c..1880b44d06f 100644 --- a/compiler/testData/codegen/box/collections/inheritFromHashtable.kt +++ b/compiler/testData/codegen/box/collections/inheritFromHashtable.kt @@ -1,3 +1,4 @@ +// IGNORE_BACKEND_FIR: JVM_IR // TARGET_BACKEND: JVM // WITH_RUNTIME // FULL_JDK diff --git a/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplCharSequence.fir.kt b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplCharSequence.fir.kt new file mode 100644 index 00000000000..57c713db1dd --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplCharSequence.fir.kt @@ -0,0 +1,25 @@ +// FILE: AImpl.java + +abstract public class AImpl { + public char charAt(int index) { + return '1'; + } + + public final int length() { return 1; } +} + +// FILE: A.java +public class A extends AImpl implements CharSequence { + public CharSequence subSequence(int start, int end) { + return null; + } +} + +// FILE: X.kt +class X : A() + +fun main() { + val x = X() + x[0] + x.length +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplCharSequence.kt b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplCharSequence.kt index 1bafe6c0180..e544b2be1c8 100644 --- a/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplCharSequence.kt +++ b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplCharSequence.kt @@ -1,4 +1,3 @@ -// FIR_IDENTICAL // FILE: AImpl.java abstract public class AImpl { diff --git a/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplCharSequenceKotlin.fir.kt b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplCharSequenceKotlin.fir.kt new file mode 100644 index 00000000000..5dde51a675e --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplCharSequenceKotlin.fir.kt @@ -0,0 +1,28 @@ +// !DIAGNOSTICS: -UNUSED_PARAMETER +// FILE: AImpl.kt + +abstract class AImpl { + fun charAt(index: Int): Char { + return '1' + } + + fun length(): Int { + return 1 + } +} + +// FILE: A.java +public class A extends AImpl implements CharSequence { + public CharSequence subSequence(int start, int end) { + return null; + } +} + +// FILE: X.kt +class X : A() + +fun main() { + val x = X() + x[0] + x.length +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplCharSequenceKotlin.kt b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplCharSequenceKotlin.kt index 7110f89949b..65a03831ee2 100644 --- a/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplCharSequenceKotlin.kt +++ b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplCharSequenceKotlin.kt @@ -1,4 +1,3 @@ -// FIR_IDENTICAL // !DIAGNOSTICS: -UNUSED_PARAMETER // FILE: AImpl.kt diff --git a/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplMutableList.fir.kt b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplMutableList.fir.kt index a05a08eca6a..014849f0c5d 100644 --- a/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplMutableList.fir.kt +++ b/compiler/testData/diagnostics/tests/j+k/collectionOverrides/irrelevantImplMutableList.fir.kt @@ -108,7 +108,7 @@ public class A extends AImpl implements List { } // FILE: X.kt -class X : A() +class X : A() fun main() { val x = X() diff --git a/compiler/testData/diagnostics/tests/j+k/kt1730_implementCharSequence.fir.kt b/compiler/testData/diagnostics/tests/j+k/kt1730_implementCharSequence.fir.kt new file mode 100644 index 00000000000..44e6aaa4666 --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/kt1730_implementCharSequence.fir.kt @@ -0,0 +1,24 @@ +// KT-1730 Method which has been implemented by Java is recognized to be abstract. + +// FILE: C.java +public class C implements java.lang.CharSequence { + @Override + public int length() { + return 3; + } + @Override + public char charAt(int index) { + return 48; + } + @Override + public CharSequence subSequence(int start, int end) { + return "ab"; + } + @Override + public String toString() { + return "abc"; + } +} + +// FILE: T.kt +class T : C() diff --git a/compiler/testData/diagnostics/tests/j+k/kt1730_implementCharSequence.kt b/compiler/testData/diagnostics/tests/j+k/kt1730_implementCharSequence.kt index 5ff49bd9058..7efe604a0e4 100644 --- a/compiler/testData/diagnostics/tests/j+k/kt1730_implementCharSequence.kt +++ b/compiler/testData/diagnostics/tests/j+k/kt1730_implementCharSequence.kt @@ -1,4 +1,3 @@ -// FIR_IDENTICAL // KT-1730 Method which has been implemented by Java is recognized to be abstract. // FILE: C.java diff --git a/compiler/testData/diagnostics/tests/j+k/specialBuiltIns/hashtableInheritance.fir.kt b/compiler/testData/diagnostics/tests/j+k/specialBuiltIns/hashtableInheritance.fir.kt new file mode 100644 index 00000000000..7ddd0df668f --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/specialBuiltIns/hashtableInheritance.fir.kt @@ -0,0 +1,6 @@ +// FULL_JDK + +class C1 : java.util.Hashtable() +class C2 : java.util.Hashtable() { + override fun get(key: String) = 123 +} diff --git a/compiler/testData/diagnostics/tests/j+k/specialBuiltIns/hashtableInheritance.kt b/compiler/testData/diagnostics/tests/j+k/specialBuiltIns/hashtableInheritance.kt index 6e915ccf91e..3fb99cd2976 100644 --- a/compiler/testData/diagnostics/tests/j+k/specialBuiltIns/hashtableInheritance.kt +++ b/compiler/testData/diagnostics/tests/j+k/specialBuiltIns/hashtableInheritance.kt @@ -1,4 +1,3 @@ -// FIR_IDENTICAL // FULL_JDK class C1 : java.util.Hashtable() diff --git a/compiler/testData/diagnostics/tests/j+k/specialBuiltIns/securityProvider.fir.kt b/compiler/testData/diagnostics/tests/j+k/specialBuiltIns/securityProvider.fir.kt new file mode 100644 index 00000000000..7208e1f0612 --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/specialBuiltIns/securityProvider.fir.kt @@ -0,0 +1,5 @@ +// FULL_JDK + +import java.security.Provider + +class Example : Provider("A", 1.0, "B") diff --git a/compiler/testData/diagnostics/tests/j+k/specialBuiltIns/securityProvider.kt b/compiler/testData/diagnostics/tests/j+k/specialBuiltIns/securityProvider.kt index 7849c5231ec..9a532723211 100644 --- a/compiler/testData/diagnostics/tests/j+k/specialBuiltIns/securityProvider.kt +++ b/compiler/testData/diagnostics/tests/j+k/specialBuiltIns/securityProvider.kt @@ -1,4 +1,3 @@ -// FIR_IDENTICAL // FULL_JDK import java.security.Provider