aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #207 from dotty-staging/transform/privateToStaticodersky2014-11-0919-40/+325
|\ | | | | Transform/private to static
| * Making print statement a debuglogMartin Odersky2014-11-091-1/+1
| |
| * Fixes to documentation.Martin Odersky2014-11-091-4/+11
| |
| * New phase: PrivateToStaticMartin Odersky2014-11-098-4/+197
| | | | | | | | | | Make private methods in traits static, so that we do not need to give a default for them.
| * Bugfix for superaccessorsMartin Odersky2014-11-091-1/+1
| | | | | | | | Threw away list of constructed statements.
| * New phase: RestoreScopesMartin Odersky2014-11-094-3/+40
| | | | | | | | | | | | | | | | Cleans up after LambdaLift and Flatten. RestoreScopes exhibited a problem (double definition) when compiling Unpickler. The root of the problem was in Applications.scala. The effect was that arguments woulkd be lifted out, but then the argument expression would be used anyway. That caused a closure to be present twice which caused the double def error much later. -Ycheck did not catch it because the two closure expressions were in non-overlapping scopes.
| * Generalize lift behavior between Flatten and LambdaLiftMartin Odersky2014-11-093-5/+9
| | | | | | | | | | To be combinable with follow-up mini-phases the lift operation needs to handle Thickets specially. This commit factors out the behavior from LambdaLift, so that Flatten can do the same thing.
| * New miniphase: FlattenMartin Odersky2014-11-097-19/+59
| |
| * Made LambdaLift capable of having minitransforms run after it.Martin Odersky2014-11-091-16/+20
| | | | | | | | Some changes needed so that Flatten can run after LambdaLift
* | Merge pull request #195 from smarter/fix/singleton-cyclesodersky2014-11-093-0/+30
|\ \ | |/ |/| Detect cycles involving types bounded by singleton types
| * Detect cycles involving types bounded by singleton typesGuillaume Martres2014-11-063-0/+30
|/ | | | This fixes #193.
* Merge pull request #180 from smarter/fix/nosymbol-subtypingodersky2014-11-063-6/+7
|\ | | | | Fix subtyping of types without symbols
| * Fix subtyping of types without symbolsGuillaume Martres2014-10-093-3/+7
| |
| * Simplify subtying testGuillaume Martres2014-10-091-4/+1
| |
* | Merge commits '474b2ae' and '46eb5ea' from #201 into umasterDmitry Petrashko2014-11-036-51/+77
|\ \
| * | Added a test for by name functionsMartin Odersky2014-10-282-4/+17
| | |
| * | Fix treatment of by name functionsMartin Odersky2014-10-275-51/+64
| | | | | | | | | | | | | | | | | | | | | By-name functions like `(=> T) => T` were not treated correctly before. Witness the disabled `-Ycheck:gettersSetters` for transform/TreeCheckers in thge test suite. This commit changes the scheme how => T types are treated and fixes the problems with by-name functions.
* | | Merge pull request #202 from dotty-staging/no-closure-tryDmitry Petrashko2014-11-0320-84/+131
|\ \ \ | | | | | | | | Restructure Try node.
| * | | merge fixes: extract typedCase to be reused in TreeChecker.Dmitry Petrashko2014-10-301-16/+17
| | | |
| * | | Print whole TreeTransform name in Ycheck and XprintDmitry Petrashko2014-10-303-2/+12
| | | |
| * | | Postponing desugaring of Try nodes.Dmitry Petrashko2014-10-303-9/+13
| | | | | | | | | | | | | | | | Instead of desugaring in parser desugaring is now done during desugaring.
| * | | Get rid of ExceptionHandlerSel.Dmitry Petrashko2014-10-304-20/+2
| | | | | | | | | | | | | | | | It's not used anymore as superseded by previous commit.
| * | | Restructure Try node.Dmitry Petrashko2014-10-3013-59/+55
| | | | | | | | | | | | | | | | | | | | | | | | Now Try node always has cases as handlers. In case handler is an Ident of type Throwable => T than it's desugared to a CaseDef during parsing.
| * | | Rewrite assignType for TryDmitry Petrashko2014-10-301-2/+5
| | | | | | | | | | | | | | | | | | | | After erasure was always wrong(didn't include the type of handler). Now it's able to use both Closures and desugared Math nodes.
| * | | Make typing of Try nodes idempotentDmitry Petrashko2014-10-302-2/+10
| | | |
| * | | Flag dotty deviation for return type which is part of cake.Dmitry Petrashko2014-10-301-1/+2
| | | |
| * | | Stop patmat from using selector pos for Try.Dmitry Petrashko2014-10-301-7/+11
| | | | | | | | | | | | | | | | | | | | It doesn't exist. Also use symbol with 'ex' name as selector for exceptions
| * | | Add Patmat to ContextDmitry Petrashko2014-10-301-1/+3
| | | |
| * | | Fix Erasure.Boxing isBox and isUnboxDmitry Petrashko2014-10-301-2/+2
| | | | | | | | | | | | | | | | Box& unbox methods are defined in companion objects.
| * | | Fix TailRec to handle inline exception handlers and non-trivial not-inlinedDmitry Petrashko2014-10-301-1/+3
| | | |
| * | | Typer should leave inline exception handlers inline.Dmitry Petrashko2014-10-302-3/+15
| | | |
| * | | New kind of EmptyTree for indicating exception selector in Try blocks.Dmitry Petrashko2014-10-301-1/+4
| | | | | | | | | | | | | | | | Simplifies a lot handling of Try blocks in patmat and in tailrec.
| * | | TailRec now handles Try with Ident-handlerDmitry Petrashko2014-10-302-0/+15
| | | |
| * | | Extracting TypedCases to be reused for typedTryDmitry Petrashko2014-10-301-35/+39
|/ / /
* | | Merge pull request #199 from dotty-staging/transform/lambdaliftDmitry Petrashko2014-10-2929-125/+302
|\| | | | | | | | Transform/lambdalift
| * | Dropped comment.Martin Odersky2014-10-271-13/+1
| | |
| * | Make LambdaLift diagnostics log messages instead of printing them directly.Martin Odersky2014-10-261-3/+2
| | |
| * | Better tests and bugfix for named argsMartin Odersky2014-10-265-13/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original problem was that in an expression f(x = bar(y = z)) only the outer named arg was eliminated by FirstTransform. The first error was that the postcondition in FirstTransform did not get to the named arg, because it got called from the overrdden typed method in TreeChecker, yet function arguments were evaluated with typedUnadapted. action: change Retyper and TreeChecker to override typedUndapped instead of typed. This flushed out the second error: transformOther in FirstTransform needs to recursively transform the argument of a NamedArg, because the framework itself does not handle NamedArg nodes. Now, all tests pass except that TreeChecker itself fails -Ycheck:gettersSetters due to a problem with handling by-name function types. This should be fixed in a separate PR.
| * | Fix PreserveSubPatBinders not storing subparts that are used only for type ↵Dmitry Petrashko2014-10-261-1/+2
| | | | | | | | | | | | tests.
| * | Fix pattern matcher double defining symbols used in type tests that are ↵Dmitry Petrashko2014-10-261-3/+5
| | | | | | | | | | | | known to succeed.
| * | Enabled commented out testsMartin Odersky2014-10-261-2/+2
| | |
| * | Add missing and double symbol checking to TreeCheckerMartin Odersky2014-10-264-20/+76
| | | | | | | | | | | | | | | | | | | | | | | | TreeChecker now tests that a symbol does not have two definitions that define it, and that every reference to a symbol owner by a term is in the scope of a definition of that symbol. Both tests fail on several files for pattern matcher.
| * | Almost all tests pass -Ycheck:lambdLiftMartin Odersky2014-10-262-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only exception: dotc/transform. This seems to be for two reasons: 1) The call-by-name functions used in Decorator#foldRightBN cannot be translated correctly at their use points. 2) An anonymous function in Constructors are not correctly lifted. 2) could be related to missing/duplicated symbols in pattern matcher. I'll follow up with a commit that points these out.
| * | Replace some idents by selects in LambdaLiftMartin Odersky2014-10-261-2/+5
| | | | | | | | | | | | | | | If a symbol becomes a class field, references to it need to be selections, or else we get a "bad type" assertion violation in TreeChecker.
| * | Initialize lambda lift mapsMartin Odersky2014-10-261-0/+6
| | | | | | | | | | | | | | | | | | ... so that they do not spill over between compilation units. It would be better to wipe the maps after processing a compilation unit, but right now we do not have a hook for that. A better solution should be possible once we replace init by "prepareUnit/transformUnit".
| * | Strenghten postCondition of firstTransformMartin Odersky2014-10-261-0/+3
| | | | | | | | | | | | All tests pass, but good to have the condition in there.
| * | Fixes erasure of superMartin Odersky2014-10-261-1/+3
| | | | | | | | | | | | | | | | | | - supertype components needs to be recursively erased Without this fix, some files do not pass -Ycheck:lambdaLift
| * | LambdaLift checks now explicitly for references to labels outside scope.Martin Odersky2014-10-262-3/+7
| | | | | | | | | | | | | | | Nested methods cannot refer to labels in theior environment. Needs a fix in TailCalls. Moved failing test to pending.
| * | SuperTypes are now promoted in Retyper; lambdaLift fails to Ycheck otherwise.Martin Odersky2014-10-261-0/+3
| | |
| * | Added missing case for SuperTypes to TypeComparerMartin Odersky2014-10-261-0/+8
| | |