summaryrefslogtreecommitdiff
path: root/test/pending
diff options
context:
space:
mode:
authorVlad Ureche <vlad.ureche@gmail.com>2013-06-12 14:58:09 +0200
committerVlad Ureche <vlad.ureche@gmail.com>2013-06-12 19:34:33 +0200
commitc43b504ac1d843a580683a78eca0cb55bb427c15 (patch)
tree1f39bc2d0a760c6bee8fd92d6b95e6f2b97e51c8 /test/pending
parentc0ba5eb196cc3c7174c9278dd4d050513e55b4ce (diff)
downloadscala-c43b504ac1d843a580683a78eca0cb55bb427c15.tar.gz
scala-c43b504ac1d843a580683a78eca0cb55bb427c15.tar.bz2
scala-c43b504ac1d843a580683a78eca0cb55bb427c15.zip
SI-7343 Fixed phase ordering in specialization
Specialization rewires class parents during info transformation, and the new info then guides the tree changes. But if a symbol is created during duplication, which runs after specialization, its info is not visited and thus the corresponding tree is not specialized. One manifestation is the following: ``` object Test { class Parent[@specialized(Int) T] def spec_method[@specialized(Int) T](t: T, expectedXSuper: String) = { class X extends Parent[T]() // even in the specialized variant, the local X class // doesn't extend Parent$mcI$sp, since its symbol has // been created after specialization and was not seen // by specialzation's info transformer. ... } } ``` We can fix this by forcing duplication to take place before specialization. Review by @dragos, @paulp or @axel22.
Diffstat (limited to 'test/pending')
0 files changed, 0 insertions, 0 deletions