| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
&, | on two TypeTypes yielded AndTypes and OrTypes, which is wrong. We now turn any ClassInfoTypes into TypeBounds and distribute the operator into the bounds, creating a TypeBounds type.
|
|
|
|
| |
Also some refactorings that were caused by adding this method.
|
|
|
|
| |
Replaces desugar.Mode. Is now a value class representing a set.
|
|
|
|
| |
ClassDefs are now TypeDefs that have a Template as rhs.
|
| |
|
|
|
|
|
|
| |
Typed TypeDefs no longer carry tparams. Untyped ones still do, but there is a special PolyTypeDef node for them in untpd.
Also, fixed flatten and DeSugarTest to deal with new tree desugarings which are not idempotent (e.g. desugar.classDef, or desugar.valDef).
|
|
|
|
| |
Parameterized are never PolyTypes anymore, so do not need to test for this.
|
|
|
|
|
|
|
|
| |
What did not work before:
type F[T] = G[X] & Runnable
We now make this work by interpreting type parameters of the RHS to be the type parameters of G[X].
|
| |
|
|
|
|
| |
Could drop quite a bit of code in the process.
|
|
|
|
|
|
|
| |
(1) New scheme for higher-kinded types that deals also with F-bounds.
(2) Type parameters in type aliases are eliminated in most cases by expressing
as unparameterized aliases of some refinement type. We will issue an error where
this is not possible.
|
| |
|
|
|
|
| |
A new design that relies on DefDef local maps, instead of global maps before.
|
|
|
|
|
|
|
| |
Type parameters are now counted only if they are not refined. I.e. previously given
class Map[K, V], K and V would be type parameters of Map { K = Int }, but now only V would be.
Also, added a new kind of name filter that gets all type members.
|
| |
|
|
|
|
|
| |
Also, changing the maps in Namer. More commenting needs to be done. Pushing now to get off this machine and
back to the new one, which just came back form repair.
|
|
|
|
|
|
|
| |
comparisons.
EmptyFlags comparisons were eliminated and replaced bu .isEmpty tests.
The problem this solves is that more than one flag value can represent an empty flag set.
|
| |
|
| |
|
| |
|
|
|
|
| |
Dropped Thicket as a Seq. Plus some other smallish changes.
|
| |
|
| |
|
|
|
|
| |
This is a first step towards going from List[Tree] to an array-backed solution with special cases for small numbers.
|
| |
|
| |
|
|
|
|
|
| |
(1) Reorganization of Typed/Untyped trees. Untyped trees now have their own copier, transformer and accumulators.
(2) Better treatment of functions
|
| |
|
|
|
|
| |
Also, special treatment of <init>, which is not encoded.
|
|
|
|
|
|
| |
(1) Made desugaring reaching a fixed point.
(2) Systematic encoding of names.
(3) Introduced Closure nodes which represent anonymous functions
|
| |
|
|
|
|
|
| |
Replaced by tpd.Tree and untpd.Tree.
Also some cleanups in RefinedPrinters.
|
|
|
|
| |
Moved all other elements of TypedTrees and UntypedTrees into tpd and untpd.
|
|
|
|
|
|
|
| |
1) Getting rid of ugen in favor of untpd.
2) Eliminating some unused methods
3) Splitting out CheckTrees from TypedTrees.
4) Moving trees and related classes into separate package dotc.ast
|
|
|
|
| |
With various other small changes.
|
| |
|
|
|
|
|
| |
Split printers into several files. Added refined printing of trees. Changed Showable and generalized printing
under a precedence.
|
| |
|
|
|
|
| |
quasi-quotes.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
… which take some statistics.
So far (on a Macbook pro): code base tested = scala/src + dotty/src
lines: 290'000
nodes created: ~1'004'000
parse times + tree building times after 10 iterations: 700-750ms, i.e. ~ 400Klines/sec
full transform of 1M nodes without tree copying: ~50ms
full transform with full copying: 150-200ms
|
| |
|
|
|
|
| |
…for deprecation, feature, unchecked.
|
| |
|
|
|
|
| |
… and some to grammar.
|
|
|
|
|
|
|
|
| |
Try now takes a tree as catch-part (instead of a sequence of CaseDefs, which has been replaced by Match(EmptyTree, cases)).
Templates now take a DefDef as constructor.
Added InterpolatedString as new untyped tree constructor.
|
| |
|
| |
|
|
|
|
| |
In particular: keyword handling, comments, numbers.
|