Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Better error reporting in TreePickler | Martin Odersky | 2015-09-18 | 1 | -1/+3 |
| | | | | | | Turn a possible NPE into an AssertionError. The latter are caught in pickleTree, so an error leaves a trace about what was pickled. | ||||
* | Project all high-kinded types with #Apply | Martin Odersky | 2015-09-18 | 2 | -4/+13 |
| | | | | | | Used to be just instantiated lambdas. With the new scheme every type with a kind higher than * needs to be projected with #Apply. | ||||
* | Try to eta reduce type applications. | Martin Odersky | 2015-09-18 | 1 | -1/+3 |
| | | | | | | | | Rewrite a type application like ([HK$0] => C[HK$0])(T) to C[T] Avoids application cahins to become unnecessarly large. | ||||
* | Follow alias types when computing type params. | Martin Odersky | 2015-09-18 | 1 | -2/+3 |
| | | | | This aligns typeParams and rawTypeParams. It's not strictly to necessary, though. | ||||
* | Temporary fix to testLifted | Martin Odersky | 2015-09-18 | 1 | -3/+9 |
| | | | | | | | | Discrepancies between numbers of formal and actual type arguments were observed when typing partialFunctions.scala under new scheme. Should come back to this when subtyping is rewrittem/simplified to work with new hk-scheme. Maybe testLifted is no longer needed at all. | ||||
* | Don't lambda abstract derived types | Martin Odersky | 2015-09-18 | 1 | -1/+1 |
| | | | | | Derived types already contain the lambda abstractoion; lambda abstracting them again would cause a double lambda. | ||||
* | Avoid cycles when eliminating existentials in unpickling | Martin Odersky | 2015-09-18 | 1 | -4/+23 |
| | | | | | New hk-scheme caused cycles in elimExistentials which are fixed by this patch. | ||||
* | Use EtaExpand instead of LambdaAbstract when unpickling typerefs | Martin Odersky | 2015-09-18 | 1 | -5/+1 |
| | | | | | | When unpickling from Scala2 TypeRefs with arguments which do not refer to classes, use EtaExpand instead of LambdaAbstract. Lambda Abstrct is wrong since it drops type arguments. | ||||
* | Allow to use safe substitution in LambdaAbstract | Martin Odersky | 2015-09-18 | 4 | -4/+39 |
| | | | | | Needed to avoid cycles involving F-boundes hk-types when reading Scala2 collection classes with new hk-scheme. | ||||
* | Drop parameterizeWith | Martin Odersky | 2015-09-18 | 2 | -6/+6 |
| | | | | | parameterizeWith picked between simple hk types and lambda abstraction. No longer needed because now we always lambda abstract. | ||||
* | A non-class typeref has type parameters only if subtype of a lambda class. | Martin Odersky | 2015-09-18 | 1 | -2/+5 |
| | |||||
* | Lambda abstract all TypeRefs when unpickling. | Martin Odersky | 2015-09-18 | 1 | -0/+5 |
| | |||||
* | Always lambda abstract TempPolyTypes representing types. | Martin Odersky | 2015-09-18 | 1 | -12/+3 |
| | |||||
* | Don't eta expand in appliedTo | Martin Odersky | 2015-09-18 | 1 | -1/+1 |
| | |||||
* | Add a test that logs the classpath to pinpoint setup failures. | Martin Odersky | 2015-09-18 | 1 | -0/+2 |
| | |||||
* | Add comment. | Martin Odersky | 2015-09-18 | 1 | -1/+4 |
| | |||||
* | Add EtaReduce method. | Martin Odersky | 2015-09-18 | 1 | -0/+33 |
| | | | | EtaReduce will be used to keep applications on eta expanded methods small. | ||||
* | Avoid generating companion-methods for non-class types. | Martin Odersky | 2015-09-18 | 1 | -3/+5 |
| | | | | | | | This would lead to a crash. Example is in Predef: object Pair type Pair | ||||
* | Adapt arguments in all type applications | Martin Odersky | 2015-09-18 | 2 | -8/+8 |
| | | | | | Previously, we did this only in applications in rhs of type definitions. Need to do it everywhere. | ||||
* | Strenghten condition in EtaExpandIfLambda | Martin Odersky | 2015-09-18 | 1 | -1/+3 |
| | | | | | Without the additional `typeParams.nonEmpty` condition we got a crash in t1439.scala | ||||
* | Fix argument eta expansion | Martin Odersky | 2015-09-18 | 2 | -4/+4 |
| | | | | | ... and move to TypeApplications. isLambda test was the wrong way before. | ||||
* | Turn assertion into a test in etaExpandArgs. | Martin Odersky | 2015-09-18 | 1 | -13/+15 |
| | | | | | | Erreneous programs could have a difference in lengths between type parameters and type args, but this is tested anyway in Typer. | ||||
* | Black hole detection for LazyRefs | Martin Odersky | 2015-09-18 | 1 | -1/+10 |
| | | | | | Now catches attempts to recursively force a LazyRef type that's in train of being evaluated. | ||||
* | Better diagnostics for failed sigName calls. | Martin Odersky | 2015-09-18 | 1 | -1/+5 |
| | | | | | | It used to be "assertion error: NoType" whenever sigName git a projection of a missing member. Now we find out about what type was projected. | ||||
* | Check argument lengths in typedAppliedTypeTree | Martin Odersky | 2015-09-18 | 1 | -2/+12 |
| | | | | | With the hk-types schem changed, we need to make sure that actual and formal argument lists of parameterized types have the same length. | ||||
* | Eta expand type arguments corresponding to lambdas | Martin Odersky | 2015-09-18 | 2 | -3/+27 |
| | | | | | In Namer, eta expand any type argument that corresponds to a higher-kinded type parameter. Also, check that all type parameter lists are fully applied. | ||||
* | Avoid cyclic references in containsRefinedThis | Martin Odersky | 2015-09-18 | 1 | -2/+3 |
| | | | | | | Avoid forcing info if the reference goes to a class. This avoided a CyclicReference when reading Scala's standard library form pos/collections when fiddling with the hk logic. | ||||
* | Clean up of logic in typeDefSig | Martin Odersky | 2015-09-18 | 1 | -3/+3 |
| | |||||
* | Merge pull request #798 from dotty-staging/fix-791 | Dmitry Petrashko | 2015-09-18 | 3 | -2/+17 |
|\ | | | | | Fix 791 | ||||
| * | Harmaonize numeric arguments only during typer. | Martin Odersky | 2015-09-17 | 1 | -1/+1 |
| | | | | | | | | | | Afterwards, implicit conversions are no longer available. Fixes #791. | ||||
| * | Fix #791 erasedLub of two AnyVals is Object. | Dmitry Petrashko | 2015-09-17 | 2 | -1/+16 |
| | | |||||
* | | Merge pull request #796 from dotty-staging/fix-#789-problems-in-erasure | Dmitry Petrashko | 2015-09-18 | 5 | -1/+63 |
|\| | | | | | Fix #789 problems in erasure | ||||
| * | New phase: ExplicitSelf | Martin Odersky | 2015-09-17 | 5 | -1/+63 |
| | | | | | | | | | | Makes self types explicit, if this is needed to identify a member in a select. Fixes #789. | ||||
* | | Merge pull request #795 from dotty-staging/fix-weaker-access-errors | Dmitry Petrashko | 2015-09-18 | 2 | -2/+4 |
|\| | | | | | Fix weaker access errors | ||||
| * | Fix weaker access error when generating bridges | Martin Odersky | 2015-09-16 | 1 | -1/+3 |
| | | | | | | | | | | A bridge cannot have weaker access than the symbol it overrides. This triggered an assertion error on "clone" for pos/t2183.scala. | ||||
| * | Better diagnostic for weaker access errors | Martin Odersky | 2015-09-16 | 1 | -1/+1 |
| | | | | | | | | Fix typo, and print infos alongside fully qualified names. | ||||
* | | Merge pull request #792 from dotty-staging/dotc-tasty | Dmitry Petrashko | 2015-09-16 | 1 | -1/+2 |
|\ \ | |/ |/| | bin/dotc: add an option to run -tasty. | ||||
| * | bin/dotc: add an option to run -tasty. | Dmitry Petrashko | 2015-09-14 | 1 | -1/+2 |
| | | | | | | | | @vladimirNik, should simplify your life | ||||
* | | Merge pull request #790 from dotty-staging/mixin-traitsetters | Dmitry Petrashko | 2015-09-15 | 77 | -2/+11 |
|\ \ | | | | | | | Memoize: Support creating valid trait setters | ||||
| * | | Enable more tests that pass | Dmitry Petrashko | 2015-09-14 | 75 | -0/+0 |
| | | | |||||
| * | | Typer: allow to assign to vals inside trait setters. | Dmitry Petrashko | 2015-09-14 | 1 | -1/+2 |
| | | | |||||
| * | | Mixin: support trait setters. | Dmitry Petrashko | 2015-09-14 | 1 | -1/+9 |
| |/ | | | | | | | Used to create a separate field from trait setter, as the field name wasn't deconstructed. | ||||
* | | Merge pull request #672 from dotty-staging/compile-dotty2 | Dmitry Petrashko | 2015-09-14 | 0 | -0/+0 |
|\ \ | |/ |/| | Compile dotty.*, not only dotty.tools. | ||||
| * | Compile dotty.*, not only dotty.tools. | Dmitry Petrashko | 2015-07-23 | 1 | -1/+1 |
| | | |||||
* | | Merge pull request #773 from dotty-staging/final-vals2 | Dmitry Petrashko | 2015-09-14 | 9 | -23/+137 |
|\ \ | | | | | | | Memoize: duplicate scala2 behaviour: don't create fields for final vals. | ||||
| * | | final-fields.scala: tes objects with constant final vals. | Dmitry Petrashko | 2015-09-14 | 1 | -1/+4 |
| | | | |||||
| * | | Memoize: bring back comment about how final vals are compiled | Dmitry Petrashko | 2015-09-14 | 1 | -0/+4 |
| | | | |||||
| * | | Add another test | Martin Odersky | 2015-09-14 | 2 | -1/+6 |
| | | | | | | | | | | | | | | | Check that calling a side effecting function returning a constant type does not get suppressed. | ||||
| * | | Augment test file | Martin Odersky | 2015-09-14 | 1 | -0/+18 |
| | | | | | | | | | | | | to test for propagation of constant types. | ||||
| * | | Memoize should produce constant DefDefs for constant final vals. | Martin Odersky | 2015-09-14 | 1 | -11/+10 |
| | | | | | | | | | | | | It produced just the right hand side literal before. |