diff --git a/idea/testData/resolve/references/MultiDeclarationReference.kt b/idea/testData/resolve/references/MultiDeclarationExtension.kt similarity index 100% rename from idea/testData/resolve/references/MultiDeclarationReference.kt rename to idea/testData/resolve/references/MultiDeclarationExtension.kt diff --git a/idea/testData/resolve/references/MultiDeclarationMember.kt b/idea/testData/resolve/references/MultiDeclarationMember.kt new file mode 100644 index 00000000000..e42459fe3c7 --- /dev/null +++ b/idea/testData/resolve/references/MultiDeclarationMember.kt @@ -0,0 +1,15 @@ +package a + +class MyPair { + fun component1() = 1 + fun component2() = 2 +} + +fun main(args: Array) { + val p = MyPair() + val (a, b) = p +} + +// MULTIRESOLVE +// REF: (in a.MyPair).component1() +// REF: (in a.MyPair).component2() \ No newline at end of file diff --git a/idea/testData/resolve/references/PairMultiDeclaration.kt b/idea/testData/resolve/references/PairMultiDeclaration.kt deleted file mode 100644 index 0d6978ef028..00000000000 --- a/idea/testData/resolve/references/PairMultiDeclaration.kt +++ /dev/null @@ -1,10 +0,0 @@ -package a - -fun main(args: Array) { - val p = Pair(1, 2) - val (a, b) = p -} - -// MULTIRESOLVE -// REF: (in kotlin.Pair).component1() -// REF: (in kotlin.Pair).component2() \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/resolve/ReferenceResolveTestGenerated.java b/idea/tests/org/jetbrains/jet/resolve/ReferenceResolveTestGenerated.java index da75d56b693..3ae92e1fb80 100644 --- a/idea/tests/org/jetbrains/jet/resolve/ReferenceResolveTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/resolve/ReferenceResolveTestGenerated.java @@ -157,9 +157,14 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest doTest("idea/testData/resolve/references/JavaReference.kt"); } - @TestMetadata("MultiDeclarationReference.kt") - public void testMultiDeclarationReference() throws Exception { - doTest("idea/testData/resolve/references/MultiDeclarationReference.kt"); + @TestMetadata("MultiDeclarationExtension.kt") + public void testMultiDeclarationExtension() throws Exception { + doTest("idea/testData/resolve/references/MultiDeclarationExtension.kt"); + } + + @TestMetadata("MultiDeclarationMember.kt") + public void testMultiDeclarationMember() throws Exception { + doTest("idea/testData/resolve/references/MultiDeclarationMember.kt"); } @TestMetadata("PackageReference.kt") @@ -172,11 +177,6 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest doTest("idea/testData/resolve/references/PackageReferenceInImport.kt"); } - @TestMetadata("PairMultiDeclaration.kt") - public void testPairMultiDeclaration() throws Exception { - doTest("idea/testData/resolve/references/PairMultiDeclaration.kt"); - } - @TestMetadata("PropertyPlaceInClassObjectInObject.kt") public void testPropertyPlaceInClassObjectInObject() throws Exception { doTest("idea/testData/resolve/references/PropertyPlaceInClassObjectInObject.kt"); diff --git a/libraries/stdlib/src/kotlin/Tuples.kt b/libraries/stdlib/src/kotlin/Tuples.kt index db6ed502bdf..adb10f2230a 100644 --- a/libraries/stdlib/src/kotlin/Tuples.kt +++ b/libraries/stdlib/src/kotlin/Tuples.kt @@ -2,58 +2,17 @@ package kotlin import java.io.Serializable -private fun Any?.safeHashCode() : Int = if (this == null) 0 else this.hashCode() - -// TODO: make it a data class -public class Pair ( +public data class Pair( public val first: A, public val second: B ) : Serializable { - public fun component1(): A = first - public fun component2(): B = second - override fun toString(): String = "($first, $second)" - - override fun hashCode(): Int { - var result = first.safeHashCode() - result = 31 * result + second.safeHashCode() - return result; - } - - override fun equals(o: Any?): Boolean { - if (this identityEquals o) return true; - if (o == null || this.javaClass != o.javaClass) return false; - - val t = o as Pair<*, *> - return first == t.first && second == t.second; - } } -public class Triple ( +public data class Triple( public val first: A, public val second: B, public val third: C ) : Serializable { - public fun component1(): A = first - public fun component2(): B = second - public fun component3(): C = third - override fun toString(): String = "($first, $second, $third)" - - override fun hashCode(): Int { - var result = first.safeHashCode() - result = 31 * result + second.safeHashCode() - result = 31 * result + third.safeHashCode() - return result; - } - - override fun equals(o: Any?): Boolean { - if (this identityEquals o) return true; - if (o == null || this.javaClass != o.javaClass) return false; - - val t = o as Triple<*, *, *> - return first == t.first && - second == t.second && - third == t.third; - } }