Description
The Scala 2 and 3 backend diverged many years ago and we're missing a lot of changes that went into the Scala 2 backend. We haven't altered the structure of our backend too much, so in theory it should be possible to port changes from Scala 2 piece-by-piece. We've done that so far to port various bugfixes, but we should do the same for the bigger structural changes, if only because it would allow us to more easily diff the two backends and see what else we might be missing. I had a quick look through the history and I think the big missing pieces we should port in order are:
- Assortiment of cleanups and comments around the backend scala#3826
- GenBCode refactoring (remove Tracked) and fix InnerClass / EnclosingMethod attributes scala#3931
- Simplify and correctify calculation of the InnerClass attribute scala#4807
- Backend Refactoring scala#6012
- Pipeline code gen and post-processing if global optimizations disabled scala#6057
- Enable parallel optimizing and writing of classes by GenBCode scala#6124
Note that we don't have a backend optimizer, so anything related to it can be ignored, we can consider adding back the optimizer afterwards.
@lrytz: did I miss anything?