aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Phases.scala
Commit message (Collapse)AuthorAgeFilesLines
* Changed phase dependencies from names to classes.Martin Odersky2014-08-181-21/+26
| | | | Don't want stringly types for this.
* Rename in Phase: name -> phaseNameMartin Odersky2014-08-181-17/+17
| | | | | Most transformations are subclasses of phase. Having a generic name like `name` in scope everywhere is therefore very risky.
* Disentangle phases from treetransformsMartin Odersky2014-08-091-4/+4
| | | | | | | | TreeTransforms are no longer phases. This allows to generate new transforms in prepare... methods without running into the problem that thee new transforms are undefined as phases. It also makes for a cleaner separation of concerns.
* Made Phase a traitMartin Odersky2014-08-091-1/+1
| | | | | ... so that it can be combined with TreeTransform in a trait composition in a future dientanglement of TreeTransforms and Phases.
* Initial version of RefChecksMartin Odersky2014-08-091-1/+0
| | | | | | | | This is still disabled, because the prepare machinery in transform does not work yet. Concretely, prepare ops need to return a new TreeTransform but that tree transform has an undefined phaase id. We need some architectural changes to disentangle transforms from phases.
* Changed PostTyperTransformer schemeMartin Odersky2014-07-171-14/+4
| | | | | | | | | | | | 1) We now always generate companion objects for classes. This is done in mini-phase "companions", which also assures that companion-modules appear after companion-classes. 2) PostTyperTransformers is gone; the part which normalizes trees has been rolled into TreeTransform and the part which reordered companion classes and modules is now in Companions. Note: Some tests were deisabled; should be re-enabled by Dmitry where needed.
* Fix phase dependencies calculations broken for non-miniphasesDmitry Petrashko2014-05-091-1/+4
|
* isAfterTyper testMartin Odersky2014-05-081-1/+5
| | | | | Add test whether we are after typer. Use it to assert that eta expansion and implicit search do not happen after typer.
* Allow phases to give restrictions on pipeline position.Dmitry Petrashko2014-04-091-1/+22
| | | | | | Phases can now specify which phases should it follow. Tree transforms can additionally specify which TreeTransforms should have finished their processing of compilation units entirely.
* Documentation and a bit of cleanup.Dmitry Petrashko2014-04-011-25/+33
| | | | | | Added documentation for non-trivial logic in Contexts, Phases and TreeTransforms. Removed redundant vars and casts
* Adapting containsPhase to phase groupsMartin Odersky2014-03-311-2/+2
| | | | | A list of names contains a phasegroup if it contains any phase in the group.
* Enable squashed phases by default.Martin Odersky2014-03-291-1/+1
| | | | Squash was accidenbtally turned off before. Is now on again.
* Fix #95: Phases now have their own periods.Dmitry Petrashko2014-03-271-11/+19
|
* Rename methods on FreshContext to make mutation obviousDmitry Petrashko2014-03-271-1/+1
| | | | And avoid name clashes
* Fix context.withPhaseMartin Odersky2014-03-271-1/+1
| | | | | | Previous version was wrong because every context is a fresh context at runtime, so the overriding version would always be executed, which means that withPhase becomes a side-effecting operation!
* Reworked phases.Martin Odersky2014-03-271-40/+68
| | | | | | | | | | | | | | | Aims 1) next/prev should be context-independent. Phase now stores its ContextBase in a field. 2) More robust handling of phaseNamed and the phase properties erasedTypes, flattened, refchecked, etc. These were previously dependent on when the first call to any of these methods was made, which led to a data race. There is now an init method in phases which centralizes all necessary intialization. It is checked that a phase is initialized only once.
* Allow MiniPhase to be DenotTransformerDmitry Petrashko2014-03-191-13/+63
| | | | | | All MiniPhases now as are full-fledged phases, and are given their own periods and can register DenotTransformers. MiniPhases belonging to same group(list) will be squashed to single phase.
* Refactored denotation transformersMartin Odersky2014-03-181-16/+37
| | | | | | | | Many small and large changes. Added samplePhase to demonstrate functionality. To test functioning, run the compiler with args tests/pos/uncurry.scala -Ylog:sample,terminal
* New scheme for attachments.Martin Odersky2014-02-111-1/+3
| | | | | | | Added general way to put attachments on some base type (which needs to inherit from Attachment.Container). Used it to turn typedTree map into an attachment. Also, moved DotClass to dotc.util.
* Checking for already existing symbols before creating new ones.Martin Odersky2014-02-061-2/+2
| | | | | Otherwise we get spurious "compiled twice" errors on every symbol defined in a run after the first one. Also, fixed a bug so that now run ids are correctly incremented.
* Integrated parser/typer into compilerMartin Odersky2013-08-141-14/+19
| | | | | Some initial bug fixes. Added -explaintypes diagnostics.
* Refactored handling of phases to make them more robust and simpler to install.Martin Odersky2013-08-121-14/+31
|
* First steps to make compiler start work.Martin Odersky2013-03-111-2/+4
| | | | Still fighting with CyclicReference errors.
* NoPhase needs to be lazy or we get a cyclic reference on startupMartin Odersky2013-03-081-1/+1
|
* Some refinements for priningMartin Odersky2013-03-071-3/+3
| | | | Made trees printable in plain mode (refined mode still missing).
* Filling in all ???sMartin Odersky2013-02-271-2/+82
| | | | | | | Added reporters. Added context for signatures. Implemented method signatures via erasure. Refined derivedNameType handling.
* Initial commitMartin Odersky2012-12-061-0/+11