summaryrefslogtreecommitdiff
path: root/test/files/run/trait-default-specialize.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2015-08-10 21:32:51 +1000
committerJason Zaugg <jzaugg@gmail.com>2015-08-11 14:26:27 +1000
commit2bde3928833ae194fc7e2094b8955112b70fd31f (patch)
tree5a3073459a8dcdb7349a47c032f0f8fa8266401d /test/files/run/trait-default-specialize.scala
parent4c8aab0abbd8aee05866aae9c866f3e3142c5b85 (diff)
downloadscala-2bde3928833ae194fc7e2094b8955112b70fd31f.tar.gz
scala-2bde3928833ae194fc7e2094b8955112b70fd31f.tar.bz2
scala-2bde3928833ae194fc7e2094b8955112b70fd31f.zip
Don't generate specialized overrides in traits
The term "specialized override" is used to describe a method in a synthetic specialized subclass that generically substitutes the specialized type args into the siganture of a generic method. For example, `trait T[@spec A] { def t(a: A) }` gives rise to `def t(a: Int)` under the type environment `A=Int`. This commit avoids doing this for specialized traits, only classes have these overrides now. The motivation is to make it simpler to use specialized interfaces (like `T$mcI$sp` from the example above) as Java functional interfaces.
Diffstat (limited to 'test/files/run/trait-default-specialize.scala')
-rw-r--r--test/files/run/trait-default-specialize.scala2
1 files changed, 1 insertions, 1 deletions
diff --git a/test/files/run/trait-default-specialize.scala b/test/files/run/trait-default-specialize.scala
index 7b57ddc1eb..6faa9d5f47 100644
--- a/test/files/run/trait-default-specialize.scala
+++ b/test/files/run/trait-default-specialize.scala
@@ -1,4 +1,4 @@
-trait T[@specialized A] {
+trait T[@specialized(Int) A] {
def t(a: A): Unit
}