blob: 1d25062909f327dd12a9256f37f498996865e3c4 (
plain) (
tree)
|
|
package p1 {
object test123 {
type A = { def a: Int }
def f(a: A): A = a
}
object structural2 {
type A = { def a: Int }
type B = {
def b: Int
}
type AB = A & B
def f(ab: AB): AB = ab
f(new {
def a = 43
def b = 42
})
}
}
package p2 {
object RClose {
type ReflectCloseable = { def close(): Unit }
def withReflectCloseable[T <: ReflectCloseable, R](s: T)(action: T => R): R =
try {
action(s)
} finally {
s.close()
}
}
}
package p3 {
object Test {
def idMap[C[_],T](m: { def map[U](f: T => U): C[U] }): C[T] = m.map(t => t)
def main(args: Array[String]): Unit = {
idMap(Some(5))
idMap(Responder.constant(5))
}
}
}
package p4 {
trait A { self: Any { def p: Any } =>
def f(b: => Unit): Unit = {}
f { p } // error: cannot access member 'p' from structural type
}
}
package p5 {
// t2810
object Test {
val closeable1: { def close(): Unit } = new scala.io.Source { val iter: Iterator[Char] = "".iterator }
val closeable2: { def close(): Unit } = new java.io.Closeable { def close() = {} }
}
}
package p6 {
class Refinements {
val y: C { val x: T; type T } // was adeprecated warning: illegal forward reference in refinement; now illegal
}
}
|