aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | Fix `Option[Nothing]` showFelix Mulder2016-11-301-2/+1
| | | | | | |
| * | | | | | Add basic Show capabilityFelix Mulder2016-11-303-1/+166
| | | | | | |
* | | | | | | Merge pull request #1787 from dotty-staging/fix-i1786odersky2016-12-143-1/+36
|\ \ \ \ \ \ \ | |_|_|_|_|_|/ |/| | | | | | Try fix #1786: support use package object as value
| * | | | | | Fix #1786: support use package object in fun callliu fengyun2016-12-133-1/+36
|/ / / / / /
* | | | | | Merge pull request #1781 from dotty-staging/fix-#1776Dmitry Petrashko2016-12-122-1/+6
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | Fix #1776: Avoid interaction between parameter forwarding and elimByName
| * | | | | Add test caseMartin Odersky2016-12-121-0/+3
| | | | | |
| * | | | | Fix #1776: Avoid interaction between parameter forwarding and elimByNameMartin Odersky2016-12-111-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Parameter forwarding is not geared to handle parameters of by-name types correctly and consequently elimByName generates wrong code. Since it's a corner case it's easiest by not applying the parameter forwarding optimization to by-name parameters.
* | | | | | Merge pull request #1783 from dotty-staging/patmat-checkliu fengyun2016-12-111-2/+2
|\ \ \ \ \ \ | | | | | | | | | | | | | | Fix exhaustivity check test after repo restructuring
| * | | | | | fix exhaustivity check test after repo restructuringliu fengyun2016-12-111-2/+2
|/ / / / / /
* | | | | | Merge pull request #1764 from dotty-staging/fix-#1757odersky2016-12-106-14/+52
|\ \ \ \ \ \ | | | | | | | | | | | | | | Fix #1757: Be more careful about positions of type variable binders
| * | | | | | Add explanationMartin Odersky2016-12-021-0/+22
| | | | | | |
| * | | | | | Add test caseMartin Odersky2016-12-021-0/+6
| | | | | | |
| * | | | | | Fix #1757: Be more careful about positions of type variable bindersMartin Odersky2016-12-015-14/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We interpolate a type variable if the current tree contains the type variables binding tree. Previously, this was the application owning the variable. However, sometimes this tree is transformed so that the containment test fails, and type variables are instantiated too late (in the case of #1757 this was never). We fix this by - setting the binding tree to the type tree that first contains the type variable - making sure that tree is never copied literally anywhere else. It's a tricky dance, but I believe we got it right now.
* | | | | | | Merge pull request #1766 from dotty-staging/fix-#1756odersky2016-12-103-3/+23
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | | | | Fix #1756: Use lexically enclosing class as start of outer path.
| * | | | | | Add original test to test caseMartin Odersky2016-12-021-3/+2
| | | | | | |
| * | | | | | Fix-1756: Use lexically enclosing class as start of outer path.Martin Odersky2016-12-023-3/+24
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We confused the enclosing class (which skips the current class in super call contexts) and the lexically enclosing class in three locations that all had to do with the start of an outer path.
* | | | | | Merge pull request #1768 from dotty-staging/fix-#1765odersky2016-12-105-12/+56
|\ \ \ \ \ \ | | | | | | | | | | | | | | Fix #1765: Context bounds and denotation handling
| * | | | | | Fix insertAfterMartin Odersky2016-12-022-3/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Once the context-bounds desugaring of i1765.scala was fixed, another problem came up: We hit an invalid denotation due to some interaction between mixin and memoize. It turned out that `insertInsteadOf` did not do what its doc comment claimed: it did not store a forwarding pointer `nextInRun` in the overwritten denotation. Once that was fixed we also needed to fix a follow-on erorr that now we could have chains of invalid denotations linked by `nextInRun`.
| * | | | | | Fine-tune post-conditions.Martin Odersky2016-12-021-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous post-condition failed if a Ycheck was introduced between memoize and constructors.
| * | | | | | Handle hk types with context bounds in desugarMartin Odersky2016-12-021-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the change to the representation of higher-kinded type definitions, context bounds could be hidden in the body of a type lambda. Need to compensate for that.
| * | | | | | Go to 7 bits for phase numbersMartin Odersky2016-12-021-1/+1
| |/ / / / / | | | | | | | | | | | | | | | | | | We were pushing the limit of 64 phases before.
* | | | | | Merge pull request #1769 from dotty-staging/fix-#1751odersky2016-12-102-0/+20
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | Fix #1751: Make dominator work after erasure
| * | | | | Fix #1751: Make dominator work after erasureMartin Odersky2016-12-022-0/+20
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | i1751.scala shows a case where we need to compute the approximation of an or-type during erasure. This can lead to an empty set of common classes because Any does not exist anymore after erasure.
* | | | | Merge pull request #1778 from dotty-staging/fix-i1773liu fengyun2016-12-083-0/+22
|\ \ \ \ \ | | | | | | | | | | | | Fix #1773: handle patterns in interpolated string
| * | | | | fix #1773: handle patterns in interpolated stringliu fengyun2016-12-083-0/+22
| | | | | |
* | | | | | Merge pull request #1772 from rethab/masterodersky2016-12-082-0/+9
|\ \ \ \ \ \ | |/ / / / / |/| | | | | Fix #1702: handle ConstantType in TypeComparer
| * | | | | handle ConstantType in TypeComparerReto Hablützel2016-12-042-0/+9
|/ / / / /
* | | | | Merge pull request #1658 from dotty-staging/fix-#1639odersky2016-12-036-56/+111
|\ \ \ \ \ | | | | | | | | | | | | Fix #1639: Changes around implicits and apply methods
| * | | | | Avoid inserting multiple .apply's.Martin Odersky2016-11-243-11/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This can lead to stackoverflow, as i1639.scala shows. Fixes #1639.
| * | | | | Avoid recomputation of companionRefsMartin Odersky2016-11-241-31/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When tracing i1639.scala it became apparent that we compute a lot of companion refs. This commit avoids this by better book-keeping what is valid and what is not and more aggressive caching.
| * | | | | Better reporting of nested implicit failuresMartin Odersky2016-11-243-15/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Error messages of nested implicit failures are now reported with the top-level message if -explaintypes is set.
* | | | | | Merge pull request #1758 from dotty-staging/change-functionsodersky2016-12-0318-261/+307
|\ \ \ \ \ \ | | | | | | | | | | | | | | Drop function 22 limit
| * | | | | | Adress reviewers commentsMartin Odersky2016-12-013-19/+14
| | | | | | |
| * | | | | | Add missing fileMartin Odersky2016-11-302-1/+19
| | | | | | |
| * | | | | | Drop function 22 limit.Martin Odersky2016-11-306-23/+159
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Functions with more than 22 parameters are now automatically converted to functions taking a single object array parameter. This has been achieved by tweaking erasure. Other things I have tried that did ot work out well: - Use a single function type in typer. The problem with this one which could not be circumvented was that existing higher-kinded code with e.g. Funcor assumes that Functon1 is a binary type constructor. - Have a late phase that converts to FunctonXXL instead of doing it in erasure. The problem with that one was that potentially every type could be affected, which was ill-suited to the architecture of a miniphase.
| * | | | | | Drop limit 30 of generated function classesMartin Odersky2016-11-292-26/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Function classes beyond 22 are now generated on demand, with no upper limit.
| * | | | | | Create FunctionN types on demandMartin Odersky2016-11-2911-164/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We know create FunctionN types on demand whenever their name is looked up in the scope of package `scala`. This obviates the need to predefine function traits 23 to 30.
| * | | | | | Make clear where symbols are entered or not.Martin Odersky2016-11-291-51/+51
| | |_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | In definitions some of the new... methods entered the created symbol while others did not. We now make that distrinction clear in the name.
* | | | | | Merge pull request #1685 from dotty-staging/fix-1665Dmitry Petrashko2016-12-032-4/+21
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | Fix #1665: Check that != has an operand on the left.
| * | | | | Fix #1665: Check that != has an operand on the left.Nicolas Stucki2016-12-012-4/+21
| | | | | |
* | | | | | Merge pull request #1693 from dotty-staging/add-annotations-phaseodersky2016-12-0117-85/+227
|\ \ \ \ \ \ | |_|_|_|_|/ |/| | | | | Add annotations phase
| * | | | | Address reviewers commentsMartin Odersky2016-12-012-3/+7
| | | | | |
| * | | | | Additional test caseMartin Odersky2016-12-011-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | This PR also fixes #1649
| * | | | | Fix #1647 Evaluate annotation arguments in proper contextMartin Odersky2016-12-013-3/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Need to evaluate annotation arguments in an expression context, since classes defined in asuch arguments should not be entered into enclosing class. Fixes #1647
| * | | | | New phase for entering annotationsMartin Odersky2016-12-016-27/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we want to do annotation macros right, we need to add annotations before completing definitions. This commit achieves that by adding a new "phase" between index and typecheck.
| * | | | | Make phasesStack more robustMartin Odersky2016-12-011-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | Got a "next on empty iterator" exception before.
| * | | | | Fix import disablingMartin Odersky2016-12-013-23/+35
| | | | | | | | | | | | | | | | | | | | | | | | It was broken before, since it worked only on wildcard imports.
| * | | | | Clean up importsMartin Odersky2016-12-015-9/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Honor the new scheme where any explicit import of a root import will disable the root import.
| * | | | | Be more lazy in namedImportRefMartin Odersky2016-12-011-21/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We got a hard to track down error when changing to the new annotations elaboration scheme (should be in the next commit): When running `testNonCyclic`, `DotClass` was not found in object Trees even though it was imported from `util`. It turned out that the import was ignored because the `util` symbol was completing. This commit adds a warning when this happens. The warning currently applies only to named imports because several false negatives were encountered if we do this also on wildcard imports. I.e. we get a warning, but the searched after symbol is not a member of the wildcard qualifier. This commit also refactors namedImportRef, so that `site` is only computed when the name to reseolve appears in the selector list. That change made the previously observed error go away because less is now forced.
| * | | | | Better printing of import symbolsMartin Odersky2016-12-012-7/+7
|/ / / / / | | | | | | | | | | | | | | | | | | | | Had duplications of `import` before. Also: add import info when printing contexts.