| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
| |
... aligning with treatement of module classes elsewhere.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) Accessibility check was broken because it looked at symbol's owner, where it should have looked at context owner.
2) Refined treatement if members. Previously, nonPrivate member returned a subset of member, i.e. those denotations returned by member that were not private. This is not correct. In a situation like
class A { def x: Int = 1 }
class B { private def x: String = "" } extends A
(new B).x
the non-private member returned should be A#x. Changed membersNamed and friends as well as checkAccessible to account for that.
|
| |
|
|
|
|
| |
Changed format of UnApply nodes to also take implicit parameters. See doc comment in class Trees.UnApply
|
|
|
|
|
| |
The previous treatment would force all members, causing cyclic reference errors.
We fix it by filtering early in computeMemberNames itself for implicits.
|
|
|
|
| |
Plus some small tweaks in Typer
|
| |
|
|
|
|
|
|
| |
Also fixes to typedReturn.
Adapted tests accordingly.
|
|
|
|
|
|
|
|
|
| |
1. We forgot to mark declaration symbols Deferred.
2. Types with NoPrefix and the same name got identified. Fixed by adding a new category WithNoPrefix to named types, and changing the way named types get generated.
3. Self types lacked parameters. (Question: Do we need to also track type members?)
4. Printers caused cyclic reference errors. Now some print operations are more careful with forcing.
5. Namedparts accumulator has to be more careful with ThisTypes. Because self types now contain parameters, which might lead back to this, we only add the class name (or the source module, if it's a module class).
6. toBounds in TypeApplications needs to use Co/Contra aliases for expanded name parameters, not just local ones.
|
|
|
|
|
|
| |
1. Got rid if InSuperInit mode bit.
2. Fixes to typing assignments
3. Import qualifiers need to be stable
|
|
|
|
| |
Fixed a problem where an import and a definition in same scope were erroneously regarded as a conflict (L20 in typedIdents.scala)
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Now that we have no longer termrefs with fixed syms, we need to create TermRefWithSignatures. Just setting symbol/denotation is not enough because of termref caching.
|
|
|
|
| |
Module classes are entered alongisde their source modules in parent scope.
|
|
|
|
|
| |
Changed ThrowingReporter to use an underlying reporter for issuing messages below ERROR.
Made ThrowingReporters the default in initialContext.
|
| |
|
|
|
|
| |
Left dummies for Compiler and Run.
|
|
|
|
| |
Also some fixes in adapt wrt patterns.
|
|
|
|
|
|
| |
1) Trees are now contravariant.
2) All creation ops, transformers, copiers are pushed into Instance.
3) Still to do: integrate TreeMappers and tpd.TreeTransformers.
|
|
|
|
| |
SeqLiterals no longer have an elemtpt subtree. Their type is now no longer a RepeatedParamType, but instead an instance of SeqType or ArrayType.
|
|
|
|
|
|
|
| |
- Pushed mode into context
- Elimintaed scope nesting level
- Fixed a desugar bug
- Added constant folding
|
| |
|
|
|
|
|
|
| |
Changed the algorithm for & (and also |) to take accessibility into account. Fixed various problems that opened up when doing this.
Under -debug, new and old behavior of & are checked side-by-side and any discrepancy is noted.
|
|
|
|
| |
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).
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
(1) Made desugaring reaching a fixed point.
(2) Systematic encoding of names.
(3) Introduced Closure nodes which represent anonymous functions
|
| |
|
|
|
|
| |
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
|
|
|
|
|
| |
Split printers into several files. Added refined printing of trees. Changed Showable and generalized printing
under a precedence.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
… 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
|
| |
|
| |
|
|
|
|
| |
Also changed Untyped from Nothing to Null, because it avoids type inference problems.
|
|
|
|
|
|
|
| |
Moving Positions, Chars to new packages.
Added Source positions.
Added untyped trees module.
Factored out behavior between typed and untyped trees.
|
|
|
|
| |
Previously, each package nesting level doubled the amount of tests, because of the where doTwice was placed.
|
|
|
|
|
| |
Methods taking a fixed symbol are now called …withSym, methods taking a signature … withSig.
The reason for the change is that we want to liberate the original method names to take optional denotations, thus avoiding to have to go through withDenot each time.
|