aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Patmat now succeeds tests.Dmitry Petrashko2014-09-236-31/+48
| | | | @odersky there are some tests disabled, which failed due to other phases being able to transform more code.
* Made TypeVars uncahable keysMartin Odersky2014-09-231-1/+12
| | | | | | | | | | | | TypeVars can appear as keys in baseType caches. The problem is that their base types depend on their instantiation, which is not always know yet when the test is performed. So results of baseType on type variables should never be cached. Todo: check whether there are any other caching problems involving typevars. Conflicts: src/dotty/tools/dotc/core/SymDenotations.scala
* Fix errorneus equality between TermRef and WithFixedSymDmitry Petrashko2014-09-231-1/+2
|
* @odersky have a look.Dmitry Petrashko2014-09-235-12/+15
| | | | testOnly dotc.tests
* Fix problem in unapply typing.Martin Odersky2014-09-235-6/+33
| | | | | | | | | | | | | | GADT bound resetting may only be applied when comparing <pattern type> <: <expected type>, not when comparing the other way around. The fix revealed an error in a test case (t1048) which looks like a real error. Therefore the test got moved to neg. Conflicts: src/dotty/tools/dotc/typer/Applications.scala test/dotc/tests.scala tests/disabled/t1048.scala
* Renamed parameters in Typer&Applictaions.Dmitry Petrashko2014-09-234-42/+14
| | | | Indicating that pt is type of selector is this pattern match makes it easier to follow.
* Disabling patmat tests failing due to typer.Dmitry Petrashko2014-09-231-0/+29
|
* All pat-mat specific tests succeed now.Dmitry Petrashko2014-09-173-68/+133
| | | | | Except t1048 which infers incorrect type in typer, patmat creates a tree that computes a more precise one that fails to typecheck Disabling erasure due to dozens of "Type BLA is illegal after erasure" errors.
* Fixing periods for explicitOuterDmitry Petrashko2014-09-171-3/+5
|
* More complicated tests for patmatDmitry Petrashko2014-09-171-12/+30
|
* Allow skipping Label's in owner chainsDmitry Petrashko2014-09-171-2/+3
|
* Several fixes to patmat.Dmitry Petrashko2014-09-174-66/+60
| | | | Now patmat passes tests but erasure fails.
* Extract ExplicitOuter functionality to be used by patmatDmitry Petrashko2014-09-171-29/+30
|
* More convinient appliedToNoneDmitry Petrashko2014-09-171-2/+8
|
* After merge fixesDmitry Petrashko2014-09-173-18/+9
|
* Remove dead code and add todo about outer tests not being generatedDmitry Petrashko2014-09-171-4/+5
|
* Remaining definitions for patmat.Dmitry Petrashko2014-09-172-3/+16
|
* Fixed unapplySeq. Patmat passes all test suite but typer itself breaks on it.Dmitry Petrashko2014-09-171-3/+12
|
* Everything except unapplySeq doesn't explode.Dmitry Petrashko2014-09-172-69/+48
| | | | That doesn't mean that it works.
* Most of tests succeed now.Dmitry Petrashko2014-09-171-39/+81
|
* More fixes, added _id for internal tracking of failuresDmitry Petrashko2014-09-171-34/+41
|
* more of adapting patmat for dottyDmitry Petrashko2014-09-171-59/+71
|
* Adapting patmat for dottyDmitry Petrashko2014-09-171-28/+43
|
* Helper methods for patmatDmitry Petrashko2014-09-171-13/+53
|
* Pattern expanders for patmatDmitry Petrashko2014-09-171-2/+141
|
* Match translator for patmatDmitry Petrashko2014-09-171-15/+732
|
* add Substitution to patmat.Dmitry Petrashko2014-09-171-69/+119
| | | | Some compilation errors fixed
* TreeMakers for patmatDmitry Petrashko2014-09-171-0/+619
|
* Optimized codegen for patmatDmitry Petrashko2014-09-171-2/+112
|
* CommonCodegen for patMatDmitry Petrashko2014-09-171-4/+140
|
* Common functionality to be shared between patmat and typerDmitry Petrashko2014-09-171-40/+48
|
* Definitions used by patmatDmitry Petrashko2014-09-172-0/+59
|
* More complicated patterns.Dmitry Petrashko2014-09-171-0/+24
|
* Unapply doc updateDmitry Petrashko2014-09-171-0/+1
|
* Making all case classes implement Product. Requires adding Product0Dmitry Petrashko2014-09-171-1/+0
|
* initValue helper methodDmitry Petrashko2014-09-172-17/+21
|
* Definitions used by pattern matcherDmitry Petrashko2014-09-173-6/+34
|
* Allow converting junit test to scalameter benchmarkDmitry Petrashko2014-09-172-2/+109
| | | | | | Lets start tracking performance! To run benchmarks execute `dotty-bench/test:run` in sbt
* Changes from discussion in #171Dmitry Petrashko2014-09-175-6/+19
|
* Revert of b2e0e7b4 "tpd.TreeOps#select creates non member syms after erasure."Martin Odersky2014-09-131-2/+1
| | | | | With the new more systematic treatment of fresh symbols in TreeTypeMap, this is no longer ncessary.
* Better TreeTypeMapsMartin Odersky2014-09-1310-58/+151
| | | | | | | | | | | | | | | | 1. They now keep track of changed constructors in templates, updating the class scope as for other members. 2. Any changed members are now entered into the new class scope at exactly the same position as the old one. That ensures that things like caseAccessors still work. 3. ChangeOwners now is reflected in the prefixes of any named types. 4. Newly created classes now get their own ClassInfo type. 5. TreeTypeMaps always crete "fresh" symbols. Fresh symbols do not share a NamedType reference with an existing reference to some other symbol. This obviates b2e0e7b4, which will be reverted. To make it work, the interface of TreeMap changed from an ownerMap function to a substitution-like data structure working with two lists.
* New phase: CapturedVarsMartin Odersky2014-09-126-2/+146
| | | | Breaks out boxing functionality of captured vars from lambda lift.
* Fix handling of Array#clone in ErasureMartin Odersky2014-09-123-4/+5
| | | | | Treat clone like the other primitive array operations, ensure it returns a JavaArray.
* Better failure diagnostic in TreeTransformMartin Odersky2014-09-121-10/+16
| | | | Include a backtrace of nested calls on error.
* Skip label methods in enclosing methodMartin Odersky2014-09-121-1/+3
| | | | | | Otherwise would spuriously treat variables referenced from while loops as captured, because their enclosing method differs from current enclosing method.
* Handle return in tailcalls.Martin Odersky2014-09-122-18/+27
| | | | | Avoids characterizing the "from" link in a return as a tail call reference.
* Phase name change of explicitOuter.Martin Odersky2014-09-121-3/+1
|
* Erasure should keep prefixes in TermRefsMartin Odersky2014-09-121-17/+10
| | | | | Bring TermRefs in line with TypeRefs. Prefixes need to be kept so that termrefs can be re-loaded in subsequent runs.
* tpd.TreeOps#select creates non member syms after erasure.Martin Odersky2014-09-101-1/+2
| | | | | | | | | | | | | | | | | | Without this patch, ast.TreeInfo does not compile wfter next commit "Erasure should keep prefixes in TermRefs". The reason is that outer path genertion generates a data race between - an outer accessor created in ExplicitOuter - a copy of the accessor created in ElimByName in a TreeTypeMap copy. The patch avoids the data race by using a fixed symbol for the new TermRef generated in outer.path during erasure. But the fix seems ad-hoc. We should try to attack the problem at the root in TypeTreeMap. The root problem seems to be that TypeTreeMap generates a copy of symbols whnMemere the copies of the symbols give the same named type as the originals. We can either label the copied symbols so that any types created from them become instances of WithNonMemberSym (which probably should be renamed then). Or else we have a "linear" version of TreeMap that overrides sym denotations instead of creating new symbols.
* Keep inherited names through erasureMartin Odersky2014-09-101-3/+12
| | | | | If the original name in a selection is a inherited name, the erased name should also be one.