summaryrefslogtreecommitdiff
path: root/test/junit/scala/tools/nsc/typechecker/Implicits.scala
diff options
context:
space:
mode:
Diffstat (limited to 'test/junit/scala/tools/nsc/typechecker/Implicits.scala')
-rw-r--r--test/junit/scala/tools/nsc/typechecker/Implicits.scala39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/junit/scala/tools/nsc/typechecker/Implicits.scala b/test/junit/scala/tools/nsc/typechecker/Implicits.scala
new file mode 100644
index 0000000000..75f4e70827
--- /dev/null
+++ b/test/junit/scala/tools/nsc/typechecker/Implicits.scala
@@ -0,0 +1,39 @@
+package scala.tools.nsc
+package typechecker
+
+import org.junit.Assert._
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+
+import scala.tools.testing.BytecodeTesting
+
+@RunWith(classOf[JUnit4])
+class ImplicitsTests extends BytecodeTesting {
+ import compiler.global._, definitions._, analyzer._
+
+ @Test
+ def implicitInfoHashCode(): Unit = {
+ val run = new global.Run
+
+ enteringPhase(run.typerPhase) {
+ val T0 = IntClass.tpeHK
+ val T1 = refinedType(List(T0), NoSymbol)
+
+ assert(T0 =:= T1)
+ assert(T0 != T1)
+ assert(T0.hashCode != T1.hashCode)
+
+ val I0 = new ImplicitInfo(TermName("dummy"), T0, NoSymbol)
+ val I1 = new ImplicitInfo(TermName("dummy"), T1, NoSymbol)
+
+ assert(I0 == I1)
+ assert(I0.hashCode == I1.hashCode)
+
+ val pHash = (TermName("dummy"), NoSymbol).hashCode
+
+ assert(I0.hashCode == pHash)
+ assert(I1.hashCode == pHash)
+ }
+ }
+}