diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2015-07-13 10:13:23 +1000 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2015-07-13 10:13:23 +1000 |
commit | fc7cb9a91918cfdf7afe0600a87290ff71f88f12 (patch) | |
tree | 0f3e285550639d47ed897de660978eee9bfde6b0 /test/files/neg | |
parent | b92c3aff1ab8c76c4816bd7b1a82a0f87d787837 (diff) | |
download | scala-fc7cb9a91918cfdf7afe0600a87290ff71f88f12.tar.gz scala-fc7cb9a91918cfdf7afe0600a87290ff71f88f12.tar.bz2 scala-fc7cb9a91918cfdf7afe0600a87290ff71f88f12.zip |
SI-9392 Avoid crash in GenBCode for incoherent trees
A macro in shapeless was generating a tree of the form:
```
{
class C#2
new C#2
}.setType(C#1)
```
This happened due to an error in the macro; it used untypecheck
to try to fix the owner-chain consistency problem, but kept a
reference to the previous version of the block-local class symbol
`C` and used this in the resulting tree.
This commit detects the particular situation we encountered, and
avoids the crash by not creating the `NestedInfo` for the
`BType` corresponding to `C#1`. The code comment discusses why I
think this is safe, and suggests a refactoring that would mean
we only ever try to construct `NestedInfo` when we are going to
need them.
Diffstat (limited to 'test/files/neg')
0 files changed, 0 insertions, 0 deletions