summaryrefslogtreecommitdiff
path: root/test/files/specialized/t6035/first_1.scala
diff options
context:
space:
mode:
authorGrzegorz Kossakowski <grzegorz.kossakowski@gmail.com>2012-07-16 16:52:22 +0200
committerGrzegorz Kossakowski <grzegorz.kossakowski@gmail.com>2012-07-16 16:52:22 +0200
commit7c42b5aa4de0d88e02b73bdcda49309bde834be6 (patch)
tree6da178921ad38d4772cf58123e49c74f54a5e5ce /test/files/specialized/t6035/first_1.scala
parent39dfdb7cca23d109d07edc5884f8fb871cd0c582 (diff)
downloadscala-7c42b5aa4de0d88e02b73bdcda49309bde834be6.tar.gz
scala-7c42b5aa4de0d88e02b73bdcda49309bde834be6.tar.bz2
scala-7c42b5aa4de0d88e02b73bdcda49309bde834be6.zip
SI-6035: Specialization and separate compilation.
Fix an issue when specialization wouldn't work properly in a setting where separate compilation was involved. E.g. if you inherit from a class that is specialized and has been compiled separately you might not get proper forwarders generated. A test-case that this commit adds covers that scenario. The root cause of this issue was the fact that SPECIALIZED flag was not pickled. Thanks to recent Flags reorganization (see a9b85db) all that needs to be done is to set the flag before pickling. We choose to that in superaccessors phase because it's a phase that runs before pickling and after type checking (so we can check if given symbol has an annotation). Removed old logic from uncurry that was responsible for setting flags that is not needed anymore because we set them in superaccessors. Review by @axel22 and @paulp.
Diffstat (limited to 'test/files/specialized/t6035/first_1.scala')
-rw-r--r--test/files/specialized/t6035/first_1.scala5
1 files changed, 5 insertions, 0 deletions
diff --git a/test/files/specialized/t6035/first_1.scala b/test/files/specialized/t6035/first_1.scala
new file mode 100644
index 0000000000..1289e9f48e
--- /dev/null
+++ b/test/files/specialized/t6035/first_1.scala
@@ -0,0 +1,5 @@
+trait Foo[@specialized(Int) A] {
+ def foo(x: A): A
+}
+
+abstract class Inter extends Foo[Int]