aboutsummaryrefslogtreecommitdiff
path: root/tests/pos
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pos')
-rw-r--r--tests/pos/escapingRefs.scala42
-rw-r--r--tests/pos/i739.scala17
-rw-r--r--tests/pos/pickleinf.scala9
3 files changed, 68 insertions, 0 deletions
diff --git a/tests/pos/escapingRefs.scala b/tests/pos/escapingRefs.scala
new file mode 100644
index 000000000..1b1deb8de
--- /dev/null
+++ b/tests/pos/escapingRefs.scala
@@ -0,0 +1,42 @@
+class Outer {
+ class Inner {
+ class Inner2
+ }
+}
+
+class HasA { type A }
+
+class Foo[A]
+
+object Test {
+ def test = {
+ val a: Outer#Inner = {
+ val o = new Outer
+ new o.Inner
+ }
+
+ val b: Outer#Inner#Inner2 = {
+ val o = new Outer
+ val i = new o.Inner
+ new i.Inner2
+ }
+
+ val c: HasA { type A = Int } = {
+ val h = new HasA {
+ type A = Int
+ }
+ val x: HasA { type A = h.A } = h
+ x
+ }
+
+ val d: Foo[Int] = {
+ class Bar[B] extends Foo[B]
+ new Bar[Int]
+ }
+
+ val e: Foo[_] = {
+ class Bar[B] extends Foo[B]
+ new Bar[Int]: Bar[_ <: Int]
+ }
+ }
+}
diff --git a/tests/pos/i739.scala b/tests/pos/i739.scala
new file mode 100644
index 000000000..61fed4e5d
--- /dev/null
+++ b/tests/pos/i739.scala
@@ -0,0 +1,17 @@
+class Foo
+
+object Test {
+ def foo[T](x: T)(implicit ev: T): T = ???
+
+ class Fn[T] {
+ def invoke(implicit ev: T): T = ???
+ }
+
+ def bar[T](x: T): Fn[T] = ???
+
+ def test: Unit = {
+ implicit val evidence: Foo = new Foo
+ foo(new Foo)
+ bar(new Foo).invoke
+ }
+}
diff --git a/tests/pos/pickleinf.scala b/tests/pos/pickleinf.scala
new file mode 100644
index 000000000..9132f1a17
--- /dev/null
+++ b/tests/pos/pickleinf.scala
@@ -0,0 +1,9 @@
+class Bar[N] {
+ def bar(name: N, dummy: Int = 42): N = name
+}
+
+object Test {
+ def test(): Unit = {
+ (new Bar).bar(10)
+ }
+}