aboutsummaryrefslogtreecommitdiff
path: root/tests/run
Commit message (Collapse)AuthorAgeFilesLines
...
| * | 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
| | |
| * | 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.
* | | Drop special case around Function1Martin Odersky2017-03-082-5/+7
| | | | | | | | | | | | | | | | | | Now only Scala2 mode treats Function1's as implicit conversions. Instead we introduce a new subclass ImplicitConverter of Function1, instances of which are turned into implicit conversions.
* | | Add puzzler 54 as a testMartin Odersky2017-03-081-0/+13
| | |
* | | Disallow subtypes of Function1 acting as implicit conversionsMartin Odersky2017-03-082-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new test `falseView.scala` shows the problem. We might create an implicit value of some type that happens to be a subtype of Function1. We might now expect that this gives us an implicit conversion, this is most often unintended and surprising. See the comment in Implicits#discardForView for a discussion why we picked the particular scheme implemented here.
* | | Disable most tests that depend on scala-reflectGuillaume Martres2017-03-082-58/+0
| |/ |/|
* | Merge pull request #2031 from dotty-staging/fix-#2030odersky2017-03-032-8/+6
|\ \ | |/ |/| Fix #2030: Don't chain implicit conversions
| * Test polishingMartin Odersky2017-02-272-8/+6
| |
* | 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 #1993 from dotty-staging/add-lazy-implicitsodersky2017-02-254-0/+150
|\ \ | | | | | | Treat implicit by-name arguments as lazy values
| * | Treat implicit by-name arguments as lazy valuesMartin Odersky2017-02-174-0/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Fix #2020: Only the first parameters of a case class are caseaccessorsMartin Odersky2017-02-221-0/+8
| | | | | | | | | | | | | | | Only the parameters in the first parameter list of a case class should get the `CaseAccessor` flag. Fixes #2020.
* | | Merge pull request #1996 from dotty-staging/fix-#1990odersky2017-02-214-0/+73
|\ \ \ | |_|/ |/| | Fix #1990: Handle inlining where this proxies change types
| * | Harden outer proxy computation of inlined codeMartin Odersky2017-02-192-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It turns out that we simply cannot do reliable outer path computation that fills in the right hand sides of this-proxies from the types of these proxies. As-seen-from logic can mangle the types of proxies enough to scramble the necessary information. What we now do instead is simply count: We record the number of outer accesses to an outer this in inlineable code, and do the same number of outer accesses when computing the proxy.
| * | Bonus test: builder patternMartin Odersky2017-02-182-0/+52
| |/ | | | | | | | | This shows that the builder pattern can be expressed with implicit function types.
* | Merge pull request #1989 from dotty-staging/remove/scalac-testsGuillaume Martres2017-02-182-28/+0
|\ \ | | | | | | Disable tests that require scala-compiler
| * | Disable tests that require scala-compilerGuillaume Martres2017-02-182-28/+0
| |/ | | | | | | This is necessary if we ever want to get rid of our dependency on scala-compiler
* | Fix binding of x @ (e: T) in ClassTag-based patmatGuillaume Martres2017-02-171-0/+9
| | | | | | | | | | | | We cannot assume that the untyped rhs of the bind is a `Typed` tree, with extractors it might be an `Apply` node, and in general it might also be a `Parens` node.
* | Fix #1991: Use classtag where available in unapplyMartin Odersky2017-02-171-0/+20
|/
* Merge pull request #1936 from dotty-staging/fix-1916-on-implicit-functionsodersky2017-02-082-0/+39
|\ | | | | Fix #1916: fix erasure of implicit xxl closures
| * Fix #1916: fix erasure of implicit xxl closuresNicolas Stucki2017-02-032-0/+39
| | | | | | | | This commit extends the fix done in #1920 to implicit closures.
* | Merge pull request #1921 from dotty-staging/fix-#1907odersky2017-02-081-2/+2
|\ \ | | | | | | Fix #1907: Improve error message
| * | Disallow taking a class tag of Nothing or Null.Martin Odersky2017-02-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | It seems in most cases this leads to weird behavior and cause confusing error messages later. It also means we cannot create an Array[Nothing], except by passing the classtag explicitly.
| * | Add to test caseMartin Odersky2017-01-312-5/+20
| | |
| * | ADT and Serialization testMartin Odersky2017-01-318-0/+508
| | | | | | | | | | | | | | | The test exercises all the improvements made in previous commits of this branch.
* | | Merge pull request #1953 from dotty-staging/fix-wildapproxodersky2017-02-082-0/+8
|\ \ \ | | | | | | | | Fix to wildapprox
| * | | Add output check fileMartin Odersky2017-02-081-0/+1
| | | |
| * | | Another test caseMartin Odersky2017-02-071-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Prompted by a discussion on the Scala reddit, this one verified that dotty does not have the problem exhibited in SI-10170. I piggyback on this PR because this does not warrant a separate PR>
* | | | Add to test caseMartin Odersky2017-02-082-5/+20
| | | |
* | | | ADT and Serialization testMartin Odersky2017-02-088-0/+508
| |_|/ |/| | | | | | | | | | | The test exercises all the improvements made in previous commits of this branch.
* | | Fix #1569: Fix logic for by-name parameters of inline methodsMartin Odersky2017-02-022-0/+7
|/ / | | | | | | | | As #1569 shows, by-name parameters should be treated in the same way as by-value parameters. If the expression is not pure, install a binding.
* | Merge pull request #1919 from dotty-staging/fix-#1915Nicolas Stucki2017-02-011-0/+9
|\ \ | | | | | | Fix #1915 Synthetic function traits need NoInits flag
| * | Fix #1915 Synthetic function traits need NoInits flagMartin Odersky2017-01-311-0/+9
| |/ | | | | | | Fixes #1915.
* | Merge pull request #1881 from dotty-staging/add-structural-selectodersky2017-02-013-0/+49
|\ \ | | | | | | Implement structural type member access
| * | Change scheme to use SelectableMartin Odersky2017-01-072-13/+5
| | | | | | | | | | | | | | | Use base types instead of implicits. This is more robust in the presence of type abstraction.
| * | Implement structural type member accessMartin Odersky2017-01-053-0/+57
| | | | | | | | | | | | New scheme for implementing structural type member access.
* | | Fix #1916 - fix erasure of xxl closuresMartin Odersky2017-01-311-0/+72
| |/ |/| | | | | | | xxl closures need to get the SAM type FunctionXXL as their explicit type field after ersure.
* | Add PrimitiveForwarders and fix forwarding on value classes.Nicolas Stucki2017-01-114-0/+46
| |
* | Fix #1877: Add forwarders for primitive/generic mixins.Nicolas Stucki2017-01-066-0/+65
|/
* Fix #1878: Generate fields for final vars.Nicolas Stucki2017-01-052-0/+24
|
* Add test caseMartin Odersky2017-01-031-0/+15
|
* Merge pull request #1821 from dotty-staging/fix-i1820odersky2016-12-204-0/+38
|\ | | | | Fix #1820: make sure outer of traits implemented
| * Fix #1820: condition of whether generates outerliu fengyun2016-12-193-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, we don't generate `outer` for the anonymous class `new Inner2 {}`. This is incorrect, as `Inner2 {}` extends `A.Inner`, which requires an outer. trait A { val a = "a" trait Inner { def f = println(a) def h = 3 } } trait B extends A { trait Inner2 extends Inner new Inner2 {} }
| * fix #1820: make sure outer of traits implementedliu fengyun2016-12-182-0/+18
| |
* | Drop Override flag for non-overriding direct methodsMartin Odersky2016-12-171-1/+5
| | | | | | | | Also, integrate Jason's test case with the conditional.
* | New ShortcutImplicits phaseMartin Odersky2016-12-171-0/+44
| | | | | | | | | | Optimizes implicit closures by avoiding closure creation where possible.