File: t7944.scala

package info (click to toggle)
scala 2.11.12-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 62,924 kB
  • sloc: javascript: 28,808; java: 13,415; xml: 3,135; sh: 1,620; python: 756; makefile: 38; awk: 36; ansic: 6
file content (24 lines) | stat: -rw-r--r-- 659 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class M[+A, +B]

object Test {
  implicit class EitherOps[A, B](self: Either[A, B]) {
    def disjunction: M[A, B] = null
  }

  def foo = {
    val l: Either[Int, Nothing] = Left[Int, Nothing](1)

    var ok = EitherOps(l).disjunction

    val runawayTypeVar = l.disjunction

    // reported bug:
    // found   : M[Int,B]; required: M[Int,Nothing]
    val assign: M[Int, Nothing] = runawayTypeVar

    // variations on the theme, all failed before similarly.
    val assign1: M[Int, Nothing] = {val temp = runawayTypeVar; temp}
    val assign2: M[Int, String] = runawayTypeVar
    val assign3: M[Int, Nothing] = {val temp = Left(1).disjunction; temp}
  }
}