aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Make alignArgsInAnd safe and turn it on by defaultMartin Odersky2017-03-015-28/+30
| | | | | | | Turned out hmaps.scala requires the arg alignment to compile. So we have our first counterexample that we cannot drop this hack. Now it is made safe in the sense that no constraints get lost anymore.
* Fix handling of dependent method typesMartin Odersky2017-03-015-10/+27
| | | | | Need to use fresh PolyParams instead of WildcardTypes if constraint is committable.
* Drop duplication in testMartin Odersky2017-03-011-71/+0
|
* Add non-variant version of HLists for completenessMartin Odersky2017-02-282-0/+157
| | | | | Variance changes quite a few things for type inference, so it's good to check a non-variant version as well.
* Add check fileMartin Odersky2017-02-281-0/+1
|
* Re-instantiate depmeth testsMartin Odersky2017-02-284-3/+3
| | | | | These now compile with the changes to dependent methods, except for one which is invalid under dotty.
* Independent test case, mentioned in #2004.Martin Odersky2017-02-281-0/+11
|
* New testMartin Odersky2017-02-282-0/+86
| | | | | The HLists test brought out the unsoundness of alias rewriting in glbs which is tackled in the last commit.
* Don't align aliases in refined types by defaultMartin Odersky2017-02-282-14/+34
| | | | | | | | | | | We previously tried to force S1 and S2 be the same type when encountering a lub like `T1 { A = S1 } & T2 { A = S2 }`. The comments in this commit explain why this is unsound, so this rewrite is now made subject to a new config option, which is off by default. I verified that the new behavior does not affect the performance of the junit tests.
* Systematic treatment of result types of dependent methodsMartin Odersky2017-02-283-31/+32
| | | | | | We approximate dependencies to parameters by Wildcards. This was already done in one place, is now done in other places as well, instead of doing nothing for dependent methods.
* Constrain results of dependent implicitsMartin Odersky2017-02-281-14/+9
| | | | | No reason why we should not - normalize handles implicit methods just fine. This fixes type errors in test HLists.scala.
* Fix printing of refined applied typesMartin Odersky2017-02-282-2/+4
| | | | | | If an applied type has a refinement, it was printed before as one large refinement type including the type parameter bindings.
* Merge pull request #2035 from dotty-staging/fix-#2033Guillaume Martres2017-02-282-1/+31
|\ | | | | Fix #2033: Improve handling of unresolved overloaded arguments
| * Fix #2033: Improve handling of unresolved overloaded argumentsMartin Odersky2017-02-272-1/+31
| |
* | Merge pull request #2011 from dotty-staging/hmap-testodersky2017-02-271-0/+97
|\ \ | | | | | | HMap test case
| * | Update HMap testOlivier Blanvillain2017-02-201-44/+24
| | |
| * | Add HMap test caseOlivier Blanvillain2017-02-201-0/+117
| | |
* | | Merge pull request #2036 from ↵odersky2017-02-271-7/+0
|\ \ \ | |_|/ |/| | | | | | | | dotty-staging/remove-duplicate-code-for-wrapArrayMethodName Remove wrapArrayMethodName from defn.
| * | Remove wrapArrayMethodName from defn.Nicolas Stucki2017-02-271-7/+0
|/ / | | | | | | Note that it is never used and the same method exists in transform.TreeGen
* | Merge pull request #2027 from dotty-staging/fix-tests-eclipseodersky2017-02-251-1/+1
|\ \ | | | | | | Fix import which produces flakey test results on Eclipse
| * | Fix import which produces flakey test resultsMartin Odersky2017-02-251-1/+1
| | | | | | | | | | | | | | | Previous import gave test errors under eclipse. Probably due to some stray directory on the classpath.
* | | Merge pull request #1993 from dotty-staging/add-lazy-implicitsodersky2017-02-259-9/+200
|\ \ \ | | | | | | | | Treat implicit by-name arguments as lazy values
| * | | Fix typosMartin Odersky2017-02-211-3/+3
| | | |
| * | | PolishingMartin Odersky2017-02-181-5/+2
| | | |
| * | | Treat implicit by-name arguments as lazy valuesMartin Odersky2017-02-179-9/+203
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the previous rules, the two test cases produce a diverging implicit expansion. We avoid this by creating for every implicit by-name argument of type T a lazy implicit value of the same type. The implicit value is visible for all nested implicit searches of by-name arguments. That way, we tie the knot and obtain a recursive lazy value instead of a diverging expansion.
* | | | Merge pull request #2017 from dotty-staging/refchecks-less-slowodersky2017-02-251-2/+8
|\ \ \ \ | |_|/ / |/| | | Make resolveSuper less slow
| * | | ResolveSuper: MixinOps save 2-3 seconds on stdlib compilation.Dmitry Petrashko2017-02-211-2/+8
| | | | | | | | | | | | | | | | | | | | By ordering tests in a smarter way. Add leave a big scary comment.
* | | | Merge pull request #2026 from dotty-staging/fix-#2001odersky2017-02-242-15/+14
|\ \ \ \ | | | | | | | | | | Better error messages for missing type of recursive definitions
| * | | | Fix indentationMartin Odersky2017-02-231-4/+4
| | | | |
| * | | | Better error messages for missing type of recursive definitionsMartin Odersky2017-02-232-11/+10
| | | | |
* | | | | Merge pull request #2015 from dotty-staging/add-pf-overloadingodersky2017-02-234-27/+70
|\ \ \ \ \ | |/ / / / |/| | | | Add overloading support for case-closures
| * | | | Drop stray printlnMartin Odersky2017-02-211-1/+1
| | | | |
| * | | | Extend argument pretyping to case-closuresMartin Odersky2017-02-214-37/+32
| | | | |
| * | | | Add overloading support for case-closuresMartin Odersky2017-02-212-1/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | case-closures (which are represented as Match nodes) have a known arity just like other function literals. So shape analysis for overloading resolution should apply to them as well.
* | | | | Merge pull request #2022 from dotty-staging/fix/sbt-warningsFelix Mulder2017-02-221-14/+19
|\ \ \ \ \ | | | | | | | | | | | | Fix warnings in sbt build
| * | | | | Fix warnings in sbt buildGuillaume Martres2017-02-221-14/+19
| | | | | |
* | | | | | Merge pull request #2023 from dotty-staging/topic/dottydoc-html-enhancements2Felix Mulder2017-02-2213-17/+288
|\ \ \ \ \ \ | | | | | | | | | | | | | | [doc] some html enhancements for matsuri
| * | | | | | Add dottydoc shorthandFelix Mulder2017-02-221-0/+12
| | | | | | |
| * | | | | | Add some basic stats to ddocFelix Mulder2017-02-228-16/+259
| | | | | | |
| * | | | | | Fix hiding of `[+]` (find issue nbr)Felix Mulder2017-02-224-1/+17
|/ / / / / /
* | | | | | Merge pull request #2012 from ennru/ennru_CantInstantiateAbstractFelix Mulder2017-02-224-2/+63
|\ \ \ \ \ \ | | | | | | | | | | | | | | Change 'is abstract; cannot be instantiated' to Message
| * | | | | | Added explanation for CantInstatiateAbstractClassOrTraitEnno Runne2017-02-221-1/+12
| | | | | | |
| * | | | | | Change 'is abstract; cannot be instantiated' to MessageEnno Runne2017-02-204-2/+52
| | |_|_|_|/ | |/| | | |
* | | | | | Merge pull request #2021 from dotty-staging/fix-#2020Guillaume Martres2017-02-222-1/+15
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | Fix #2020: Only the first parameters of a case class are caseaccessors
| * | | | | Fix #2020: Only the first parameters of a case class are caseaccessorsMartin Odersky2017-02-222-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only the parameters in the first parameter list of a case class should get the `CaseAccessor` flag. Fixes #2020.
* | | | | | Fix #2009: Fix placeholder params logic for lambdas (#2019)odersky2017-02-222-7/+18
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix #2009: Fix placeholder params logic for lambdas Logic was missing placeholders in rhs of lambdas. * Add comment * Fix typo
* | | | | Merge pull request #2014 from dotty-staging/fix-#2002odersky2017-02-224-1/+29
|\ \ \ \ \ | | | | | | | | | | | | Fix #2000: Make implicit and non-implicit functions incomparable
| * | | | | Fix test ^ 2Martin Odersky2017-02-211-1/+1
| | | | | |
| * | | | | Fix testMartin Odersky2017-02-211-1/+1
| | | | | |
| * | | | | Fix #2000: Make implicit and non-implicit functions incomparable with <:<Martin Odersky2017-02-214-1/+29
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implicit and non-implicit functions are incomparable with <:<, but are treated as equivalent with `matches`. This means implicit and non-implicit functions of the same types override each other, but RefChecks will give an error because their types are not subtypes. Also contains a test for #2002.