diff options
author | Paul Phillips <paulp@improving.org> | 2011-03-02 02:34:54 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-03-02 02:34:54 +0000 |
commit | e42733e9fe1f3af591976fbb48b66035253d85b9 (patch) | |
tree | f91c3aef289cb7e58347484d1375437b2230e729 /test/files/neg/primitive-sigs-1.check | |
parent | 2021f393627c8a853248a5d6178b86f3d5d7f763 (diff) | |
download | scala-e42733e9fe1f3af591976fbb48b66035253d85b9.tar.gz scala-e42733e9fe1f3af591976fbb48b66035253d85b9.tar.bz2 scala-e42733e9fe1f3af591976fbb48b66035253d85b9.zip |
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<java.lang.Character> 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.
Diffstat (limited to 'test/files/neg/primitive-sigs-1.check')
-rw-r--r-- | test/files/neg/primitive-sigs-1.check | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/test/files/neg/primitive-sigs-1.check b/test/files/neg/primitive-sigs-1.check new file mode 100644 index 0000000000..befb8219dd --- /dev/null +++ b/test/files/neg/primitive-sigs-1.check @@ -0,0 +1,6 @@ +A_3.scala:3: error: type mismatch; + found : Bippy + required: AC[java.lang.Integer] + J_2.f(new Bippy()) + ^ +one error found |