summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorVlad Ureche <vlad.ureche@gmail.com>2013-07-08 13:32:40 +0200
committerVlad Ureche <vlad.ureche@gmail.com>2013-07-08 16:36:11 +0200
commit504b5f3b157de639633c962ea21f7e89152da77f (patch)
treecbf9f6e935ab07bd2876db2068cbb7fae77cc8f9 /src/compiler
parent54cb6af7dbcf630a4f57e98f0099d77dd3b36693 (diff)
downloadscala-504b5f3b157de639633c962ea21f7e89152da77f.tar.gz
scala-504b5f3b157de639633c962ea21f7e89152da77f.tar.bz2
scala-504b5f3b157de639633c962ea21f7e89152da77f.zip
SI-7638 Superaccessor lookup after specialization
The crash was caused by a symbol lookup to rewire the super calls, done after pickler, but specialization added new traits and new members, thus making the super rewiring impossible. To avoid such problems, this patch moves symbol lookup after specialization, so the changes done by specialization (and miniboxing) become visible to mixin. NOTE: This patch will be followed by a similar patch to master. Review by @adriaanm or @retronym.
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/tools/nsc/transform/Mixin.scala2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/Mixin.scala b/src/compiler/scala/tools/nsc/transform/Mixin.scala
index c9c68d080d..e92450c9c0 100644
--- a/src/compiler/scala/tools/nsc/transform/Mixin.scala
+++ b/src/compiler/scala/tools/nsc/transform/Mixin.scala
@@ -119,7 +119,7 @@ abstract class Mixin extends InfoTransform with ast.TreeDSL {
* @param mixinClass The mixin class that produced the superaccessor
*/
private def rebindSuper(base: Symbol, member: Symbol, mixinClass: Symbol): Symbol =
- afterPickler {
+ afterSpecialize {
var bcs = base.info.baseClasses.dropWhile(mixinClass != _).tail
var sym: Symbol = NoSymbol
debuglog("starting rebindsuper " + base + " " + member + ":" + member.tpe +