diff options
author | Som Snytt <som.snytt@gmail.com> | 2012-04-26 15:35:57 -0700 |
---|---|---|
committer | Som Snytt <som.snytt@gmail.com> | 2012-04-26 15:35:57 -0700 |
commit | 2a9cce8a6859a34c259d0b399687df3a242de16b (patch) | |
tree | ca15e0b069265ff7ec43d147e613bb044f38c91a /test/files/pos/spec-params-old.scala | |
parent | 47bfd744177121de08fed489a5b0b1b59a1ae06a (diff) | |
parent | f7e1a4940386491b0691147b12b1b321c4cce2c5 (diff) | |
download | scala-2a9cce8a6859a34c259d0b399687df3a242de16b.tar.gz scala-2a9cce8a6859a34c259d0b399687df3a242de16b.tar.bz2 scala-2a9cce8a6859a34c259d0b399687df3a242de16b.zip |
SI-5543: Merge with trunk
Reverts name unenmanglement that was objectionable in the previous patch
commit 47bfd744177121de08fed489a5b0b1b59a1ae06a.
Diffstat (limited to 'test/files/pos/spec-params-old.scala')
-rw-r--r-- | test/files/pos/spec-params-old.scala | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/files/pos/spec-params-old.scala b/test/files/pos/spec-params-old.scala new file mode 100644 index 0000000000..f522512846 --- /dev/null +++ b/test/files/pos/spec-params-old.scala @@ -0,0 +1,32 @@ +class Foo[@specialized A: ClassManifest] { + + // conflicting in bounds, expect a normalized member calling m + // and bridge + implementation in specialized subclasses + // and overloads here according to specialization on A + def m1[@specialized B <: A](x: B, y: A) = + goal(x) + + // conflicting, unsolvable, expect a warning + def m2[@specialized B <: String](x: B) = x.concat("a") + + // conflicting in bounds, no mention of other spec members + // expect an overload here plus implementation in + // compatible specialized subclasses + def m3[@specialized B >: A](x: B) = () + + // non-conflicting, expect a normalized overload implementation here + def m4[@specialized T, U <: Ordered[T]](x: T, y: U) = () + + // non-conflicting, expect a normalized overload implementation here + def m5[@specialized B](x: B) = x + + // non-conflicting, expect a normalized implementation here + // and specialized implementations for all expansions in specialized subclasses + def m6[@specialized B](x: B, y: A) = + goal(y) + + def goal(x: A) = { + val xs = new Array[A](1) + xs(0) = x + } +} |