From b4751a679a1e01d1d8826c4c2d68af269a1c0443 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Tue, 14 May 2013 16:18:15 -0700 Subject: No bounds-driven inference for the named. This is a variation on the previous commit which excludes named type parameters, so this works def f(x: Class[_]) = x.foo.bar But this does not: def f[T](x: Class[T]) = x.foo.bar This seems undesirable to me, but I offer it in case it makes the patch more attractive to others. --- test/files/pos/t1786.scala | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'test/files/pos') diff --git a/test/files/pos/t1786.scala b/test/files/pos/t1786.scala index 22bd659609..32d6c06f6e 100644 --- a/test/files/pos/t1786.scala +++ b/test/files/pos/t1786.scala @@ -5,15 +5,15 @@ class Flooz[A >: Null <: SomeClass, T >: Null <: A](var value: T) class A { def f1(i:MyClass[_]) = i.myValue.intValue def f2(i:MyClass[_ <: SomeClass]) = i.myValue.intValue - def f3[T](i: MyClass[T]) = i.myValue.intValue + // def f3[T](i: MyClass[T]) = i.myValue.intValue def f4[T <: SomeClass](i: MyClass[T]) = i.myValue.intValue - def f5[T >: Null](i: MyClass[T]) = i.myValue.intValue - def f6[T >: Null <: String](i: MyClass[T]) = i.myValue.intValue + i.myValue.charAt(0) + // def f5[T >: Null](i: MyClass[T]) = i.myValue.intValue + // def f6[T >: Null <: String](i: MyClass[T]) = i.myValue.intValue + i.myValue.charAt(0) - def g1[A, T](x: Flooz[A, T]) = { x.value = null ; x.value.intValue } + // def g1[A, T](x: Flooz[A, T]) = { x.value = null ; x.value.intValue } def g2(x: Flooz[_, _]) = { x.value = null ; x.value.intValue } class MyClass2(x: MyClass[_]) { val p = x.myValue.intValue } - class MyClass3[T <: String](x: MyClass[T]) { val p = x.myValue.intValue + x.myValue.length } - class MyClass4[T >: Null](x: MyClass[T]) { val p = x.myValue.intValue } + // class MyClass3[T <: String](x: MyClass[T]) { val p = x.myValue.intValue + x.myValue.length } + // class MyClass4[T >: Null](x: MyClass[T]) { val p = x.myValue.intValue } } -- cgit v1.2.3