From 903976d9af66c18a95cc6ada2d26658b57f06bce Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Fri, 7 Sep 2018 04:23:34 +0300 Subject: [PATCH] Replace hashCode usages in tests where it was supposed to fail on nullable receiver Related to #KT-25039 --- compiler/testData/repl/modules/kt10001.repl | 5 +++-- .../companionExtension.kt | 2 +- .../companionExtension.kt.new.2 | 2 +- .../companionReferenceExplicit.kt | 2 +- .../companionReferenceExplicit.kt.new.2 | 2 +- .../companionReferenceImplicit.kt | 2 +- .../companionReferenceImplicit.kt.new.2 | 2 +- .../companionObjectInheritedMemberChanged/importedMember.kt | 2 +- .../importedMember.kt.new.2 | 2 +- .../companionObjectMemberChanged/companionExtension.kt | 2 +- .../companionObjectMemberChanged/companionExtension.kt.new.2 | 2 +- .../companionReferenceExplicit.kt | 2 +- .../companionReferenceExplicit.kt.new.2 | 2 +- .../companionReferenceImplicit.kt | 2 +- .../companionReferenceImplicit.kt.new.2 | 2 +- .../companionObjectMemberChanged/importedMember.kt | 2 +- .../companionObjectMemberChanged/importedMember.kt.new.2 | 2 +- .../classHierarchyAffected/enumMemberChanged/Enum.kt | 4 +++- .../classHierarchyAffected/enumMemberChanged/Enum.kt.new.1 | 4 +++- .../enumMemberChanged/useBecameNullable.kt | 2 +- .../enumMemberChanged/useBecameNullable.kt.new.2 | 2 +- .../classHierarchyAffected/enumMemberChanged/useUnchanged.kt | 2 +- .../flagsAndMemberInSameClassChanged/B.kt | 4 +++- .../flagsAndMemberInSameClassChanged/useA.kt | 2 +- .../flagsAndMemberInSameClassChanged/useA.kt.new.3 | 2 +- .../flagsAndMemberInSameClassChanged/useB.kt | 2 +- .../flagsAndMemberInSameClassChanged/useB.kt.new.3 | 2 +- 27 files changed, 35 insertions(+), 28 deletions(-) diff --git a/compiler/testData/repl/modules/kt10001.repl b/compiler/testData/repl/modules/kt10001.repl index b49ae808a9a..0e07a82cff7 100644 --- a/compiler/testData/repl/modules/kt10001.repl +++ b/compiler/testData/repl/modules/kt10001.repl @@ -1,5 +1,6 @@ >>> val x: Pair = null to null ->>> if (x.first != null) x.first.hashCode() +>>> fun Any.string() = this as String +>>> if (x.first != null) x.first.string() error: smart cast to 'Any' is impossible, because 'x.first' is a public API property declared in different module -if (x.first != null) x.first.hashCode() +if (x.first != null) x.first.string() ^ diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionExtension.kt b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionExtension.kt index 983f6be3eec..0439b62dc81 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionExtension.kt +++ b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionExtension.kt @@ -1,3 +1,3 @@ fun A.AA.ext() { - x.hashCode() + x.length } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionExtension.kt.new.2 b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionExtension.kt.new.2 index 9f737301219..027cee43fc0 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionExtension.kt.new.2 +++ b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionExtension.kt.new.2 @@ -1,3 +1,3 @@ fun A.AA.ext() { - x?.hashCode() + x?.length } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionReferenceExplicit.kt b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionReferenceExplicit.kt index 1a0c196d40c..e4de1c3179c 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionReferenceExplicit.kt +++ b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionReferenceExplicit.kt @@ -1,3 +1,3 @@ fun explicitRef() { - A.AA.x.hashCode() + A.AA.x.length } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionReferenceExplicit.kt.new.2 b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionReferenceExplicit.kt.new.2 index c9e3e203569..35c8a751b5f 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionReferenceExplicit.kt.new.2 +++ b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionReferenceExplicit.kt.new.2 @@ -1,3 +1,3 @@ fun explicitRef() { - A.AA.x?.hashCode() + A.AA.x?.length } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionReferenceImplicit.kt b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionReferenceImplicit.kt index b811959ef21..b754b007c15 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionReferenceImplicit.kt +++ b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionReferenceImplicit.kt @@ -1,3 +1,3 @@ fun implicitRef() { - A.x.hashCode() + A.x.length } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionReferenceImplicit.kt.new.2 b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionReferenceImplicit.kt.new.2 index 8745fbe624c..50238db801d 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionReferenceImplicit.kt.new.2 +++ b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/companionReferenceImplicit.kt.new.2 @@ -1,3 +1,3 @@ fun implicitRef() { - A.x?.hashCode() + A.x?.length } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/importedMember.kt b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/importedMember.kt index fa4633524d1..0855d82a7ec 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/importedMember.kt +++ b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/importedMember.kt @@ -1,5 +1,5 @@ import A.AA.x fun importedMember() { - x.hashCode() + x.length } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/importedMember.kt.new.2 b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/importedMember.kt.new.2 index bf230a27d1b..d84104b6a4f 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/importedMember.kt.new.2 +++ b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectInheritedMemberChanged/importedMember.kt.new.2 @@ -1,5 +1,5 @@ import A.AA.x fun importedMember() { - x?.hashCode() + x?.length } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionExtension.kt b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionExtension.kt index 983f6be3eec..0439b62dc81 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionExtension.kt +++ b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionExtension.kt @@ -1,3 +1,3 @@ fun A.AA.ext() { - x.hashCode() + x.length } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionExtension.kt.new.2 b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionExtension.kt.new.2 index 9f737301219..027cee43fc0 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionExtension.kt.new.2 +++ b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionExtension.kt.new.2 @@ -1,3 +1,3 @@ fun A.AA.ext() { - x?.hashCode() + x?.length } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionReferenceExplicit.kt b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionReferenceExplicit.kt index 1a0c196d40c..e4de1c3179c 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionReferenceExplicit.kt +++ b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionReferenceExplicit.kt @@ -1,3 +1,3 @@ fun explicitRef() { - A.AA.x.hashCode() + A.AA.x.length } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionReferenceExplicit.kt.new.2 b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionReferenceExplicit.kt.new.2 index c9e3e203569..35c8a751b5f 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionReferenceExplicit.kt.new.2 +++ b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionReferenceExplicit.kt.new.2 @@ -1,3 +1,3 @@ fun explicitRef() { - A.AA.x?.hashCode() + A.AA.x?.length } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionReferenceImplicit.kt b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionReferenceImplicit.kt index b811959ef21..b754b007c15 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionReferenceImplicit.kt +++ b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionReferenceImplicit.kt @@ -1,3 +1,3 @@ fun implicitRef() { - A.x.hashCode() + A.x.length } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionReferenceImplicit.kt.new.2 b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionReferenceImplicit.kt.new.2 index 8745fbe624c..50238db801d 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionReferenceImplicit.kt.new.2 +++ b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/companionReferenceImplicit.kt.new.2 @@ -1,3 +1,3 @@ fun implicitRef() { - A.x?.hashCode() + A.x?.length } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/importedMember.kt b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/importedMember.kt index fa4633524d1..0855d82a7ec 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/importedMember.kt +++ b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/importedMember.kt @@ -1,5 +1,5 @@ import A.AA.x fun importedMember() { - x.hashCode() + x.length } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/importedMember.kt.new.2 b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/importedMember.kt.new.2 index bf230a27d1b..d84104b6a4f 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/importedMember.kt.new.2 +++ b/jps-plugin/testData/incremental/classHierarchyAffected/companionObjectMemberChanged/importedMember.kt.new.2 @@ -1,5 +1,5 @@ import A.AA.x fun importedMember() { - x?.hashCode() + x?.length } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/Enum.kt b/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/Enum.kt index d969e3f0526..c31e0adb400 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/Enum.kt +++ b/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/Enum.kt @@ -4,4 +4,6 @@ enum class Enum(x: String) { val becameNullable: Any = x val unchanged: Any = x -} \ No newline at end of file +} + +fun Any.string() = this as String \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/Enum.kt.new.1 b/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/Enum.kt.new.1 index 4f2e4fa3f45..50291584b5b 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/Enum.kt.new.1 +++ b/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/Enum.kt.new.1 @@ -4,4 +4,6 @@ enum class Enum(x: String) { val becameNullable: Any? = x val unchanged: Any = x -} \ No newline at end of file +} + +fun Any.string() = this as String \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/useBecameNullable.kt b/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/useBecameNullable.kt index 6e26c3c9fef..d687098b8b9 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/useBecameNullable.kt +++ b/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/useBecameNullable.kt @@ -1,5 +1,5 @@ import Enum.* fun useBecameNullable(e: Enum) { - println(e.becameNullable.hashCode()) + println(e.becameNullable.string()) } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/useBecameNullable.kt.new.2 b/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/useBecameNullable.kt.new.2 index 3c4016a1df3..4ab1aab6248 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/useBecameNullable.kt.new.2 +++ b/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/useBecameNullable.kt.new.2 @@ -1,5 +1,5 @@ import Enum.* fun useBecameNullable(e: Enum) { - println(e.becameNullable?.hashCode()) + println(e.becameNullable?.string()) } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/useUnchanged.kt b/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/useUnchanged.kt index fa6298a5064..2136b872f62 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/useUnchanged.kt +++ b/jps-plugin/testData/incremental/classHierarchyAffected/enumMemberChanged/useUnchanged.kt @@ -1,5 +1,5 @@ import Enum.* fun useUnchanged(e: Enum) { - println(e.unchanged.hashCode()) + println(e.unchanged.string()) } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/B.kt b/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/B.kt index 483784a19fb..e355a26581e 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/B.kt +++ b/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/B.kt @@ -1 +1,3 @@ -class B : A() \ No newline at end of file +class B : A() + +fun Any.string() = this as String \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/useA.kt b/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/useA.kt index efaa710f180..b95f4898b1d 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/useA.kt +++ b/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/useA.kt @@ -1,3 +1,3 @@ fun useA() { - getA().x.hashCode() + getA().x.string() } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/useA.kt.new.3 b/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/useA.kt.new.3 index ee272ab8efb..cd641610dcd 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/useA.kt.new.3 +++ b/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/useA.kt.new.3 @@ -1,3 +1,3 @@ fun useA() { - getA().x?.hashCode() + getA().x?.string() } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/useB.kt b/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/useB.kt index 0ecf492e57e..e401442bd9e 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/useB.kt +++ b/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/useB.kt @@ -1,3 +1,3 @@ fun useB() { - getB().x.hashCode() + getB().x.string() } \ No newline at end of file diff --git a/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/useB.kt.new.3 b/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/useB.kt.new.3 index 906fb67e71d..804b2c6279a 100644 --- a/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/useB.kt.new.3 +++ b/jps-plugin/testData/incremental/classHierarchyAffected/flagsAndMemberInSameClassChanged/useB.kt.new.3 @@ -1,3 +1,3 @@ fun useB() { - getB().x?.hashCode() + getB().x?.string() } \ No newline at end of file