diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2014-05-10 10:49:36 +0200 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2014-05-16 16:02:45 +0200 |
commit | f9abdcef6c9b8d96e1aaf98942938e2e875285d0 (patch) | |
tree | fc7605901c830000883f26b941fe13a62ae82230 /src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala | |
parent | d079e769b9372daae8d7770c4156f85ea1af6621 (diff) | |
download | scala-f9abdcef6c9b8d96e1aaf98942938e2e875285d0.tar.gz scala-f9abdcef6c9b8d96e1aaf98942938e2e875285d0.tar.bz2 scala-f9abdcef6c9b8d96e1aaf98942938e2e875285d0.zip |
SI-8574 Copy @SerialVersionUID, etc, to specialized subclasses
The test case demonstrates that this is important for serialization
and for strictfp. (Although the latter is still pretty broken,
see SI-7954.)
Now that the synthetic subclass of `Tuple2[Int, Int]` also has the
`@deprecatedInheritance` annotation, I had to change the spot that
issues this warning to be silent after the typer phase. Otherwise,
we get two warnings in `run/t3888.scala`. This also remedies double
warnings that were incurred in `neg/t6162-inheritance`.
Diffstat (limited to 'src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala index 02e55241b3..908aa69310 100644 --- a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala +++ b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala @@ -538,6 +538,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers { bytecodeClazz.info val sClass = clazz.owner.newClass(clazzName, clazz.pos, (clazz.flags | SPECIALIZED) & ~CASE) + sClass.setAnnotations(clazz.annotations) // SI-8574 important that the subclass picks up @SerialVersionUID, @strictfp, etc. def cloneInSpecializedClass(member: Symbol, flagFn: Long => Long, newName: Name = null) = member.cloneSymbol(sClass, flagFn(member.flags | SPECIALIZED), newName) |