diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-09-16 11:12:13 +0200 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-09-16 16:44:28 +0200 |
commit | cff8b569c39fb2ce57157fa6adf4ab9289721033 (patch) | |
tree | 793273d29da6141bc7b4414a82a5d59c6a2f44fb /test/files/pos | |
parent | 4aad4eb6c1f10abd64ec5dfd8eeba091491349e2 (diff) | |
download | scala-cff8b569c39fb2ce57157fa6adf4ab9289721033.tar.gz scala-cff8b569c39fb2ce57157fa6adf4ab9289721033.tar.bz2 scala-cff8b569c39fb2ce57157fa6adf4ab9289721033.zip |
SI-7841 More robust unspecialization of names
Names like `T1$sp`, which can arise from `AnyRef` specialization,
were leading to negative length Names if they ever passed through
`unspecializedName` or `splitSpecializedName`. This code path was
touched when printing the tree of a certain AnyRef specialized
classes after specialization, such as `AbstractPartialFunction`
(which had such specialization until a few commits ago.)
This commit handles that case correctly, and generally hardens
against unexpected names, which could pop up from third party
classes.
The documentation for `splitSpecializedName` transposed the
class and method specializations. The things you discover
when you turn examples in documentation in to test cases!
In addition, we now require non-negative length and offset in
`newTermName`
Diffstat (limited to 'test/files/pos')
0 files changed, 0 insertions, 0 deletions