From e42733e9fe1f3af591976fbb48b66035253d85b9 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Wed, 2 Mar 2011 02:34:54 +0000 Subject: Another lap around the track with generic signa... Another lap around the track with generic signatures. At the root of the issue reported in #4214 is our old friend (fondly remembered from the days of primitive equality) boxed/primitive unification. // scala trait T[A] { def f(): A } // the generic signature spec doesn't allow for parameterizing // on primitive types, so this cannot remain Char. However // translating it to Character, as was done, also has issues. class C extends T[Char] { def f(): Char = 'a' } // Note that neither of the signatures for f, the implementation // or the bridge method, matches the type parameter. Generic interfaces in class: T Generic signatures: public char C.f() public java.lang.Object C.f() After this commit, primitive type parameters are translated into Object instead of the boxed type. It was martin's idea, so no review. Closes #4214. --- test/files/neg/primitive-sigs-1/A_3.scala | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 test/files/neg/primitive-sigs-1/A_3.scala (limited to 'test/files/neg/primitive-sigs-1/A_3.scala') diff --git a/test/files/neg/primitive-sigs-1/A_3.scala b/test/files/neg/primitive-sigs-1/A_3.scala new file mode 100644 index 0000000000..dec617a111 --- /dev/null +++ b/test/files/neg/primitive-sigs-1/A_3.scala @@ -0,0 +1,5 @@ +object Test { + def main(args: Array[String]): Unit = { + J_2.f(new Bippy()) + } +} -- cgit v1.2.3