diff options
author | Martin Odersky <odersky@gmail.com> | 2015-10-22 13:19:14 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-10-22 13:20:10 +0200 |
commit | 9cb35429fc2c52f5d243b9c9d29739df1ff5967a (patch) | |
tree | b37a22b0daeb7127e4b89a85cf3b447b3ef0425f /tests/pos/i830.scala | |
parent | 30e5f322a0fb9c4c43cbeb3231423ac95571a3a7 (diff) | |
download | dotty-9cb35429fc2c52f5d243b9c9d29739df1ff5967a.tar.gz dotty-9cb35429fc2c52f5d243b9c9d29739df1ff5967a.tar.bz2 dotty-9cb35429fc2c52f5d243b9c9d29739df1ff5967a.zip |
Fix #830: Compiler hangs on implicit search with singleton &/|
In fact we get a deep subtype recursion when compileing i830.scala. The problem
goes away once we make use of the fact that the intersection of two singleton
types which are not subtypes of each other is empty.
Diffstat (limited to 'tests/pos/i830.scala')
-rw-r--r-- | tests/pos/i830.scala | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/tests/pos/i830.scala b/tests/pos/i830.scala new file mode 100644 index 000000000..8fcb29f36 --- /dev/null +++ b/tests/pos/i830.scala @@ -0,0 +1,6 @@ +object C { + trait X[T] + implicit def u[A, B]: X[A | B] = new X[A | B] {} + def y[T](implicit x: X[T]): T = ??? + val x: 1 & 2 | 2 & 3 = y +} |