aboutsummaryrefslogtreecommitdiff
path: root/tests/pos
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pos')
-rw-r--r--tests/pos/tparam_inf.scala38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/pos/tparam_inf.scala b/tests/pos/tparam_inf.scala
new file mode 100644
index 000000000..16d99b75d
--- /dev/null
+++ b/tests/pos/tparam_inf.scala
@@ -0,0 +1,38 @@
+class HasFoo[T] {
+ val x: Foo[T] = ???
+}
+class Foo[T] {
+ def get(x: T): T = x
+ def get2(x: T): Nothing = ???
+
+ def foo1(x: T)(implicit ev: T): Nothing = ???
+ def foo2(x: T)(implicit ev: T): T = ???
+ def foo3[Dummy](x: T)(implicit ev: T): Nothing = ???
+ def foo4[Dummy](x: T)(implicit ev: T): T = ???
+}
+
+object Test {
+
+ def foo1[T](x: T)(implicit ev: T): Nothing = ???
+ def foo2[T](x: T)(implicit ev: T): T = ???
+
+ def test1: Unit = {
+ implicit val ii: Int = 42
+
+ foo1(10)
+ foo2(10)
+ }
+
+ def hf[T]: HasFoo[T] = ???
+ def test2: Unit = {
+ implicit val ii: Int = 42
+
+ hf.x.get(10)
+ hf.x.get2(10)
+
+ hf.x.foo1(10)
+ hf.x.foo2(10)
+ hf.x.foo3(10)
+ hf.x.foo4(10)
+ }
+}