aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Make isVolatile a SymUtil method.Martin Odersky2014-09-102-2/+4
|
* Fix class decls in TypeTypeMapMartin Odersky2014-09-102-4/+23
| | | | | | If definitions in a class are substituted by TreeTypeMap, the new symbols have to show up in the `decls` scope of the class instead of the old ones.
* Keep SuperTypes around after erasure.Martin Odersky2014-09-102-4/+4
| | | | | The reason is that otherwise the non-private member super.x gets merged with the private member this.x and that causes a double binding violation.
* Fixes to TreeCheckerMartin Odersky2014-09-101-3/+3
| | | | | 1) One phase too many was checked for postconditions. 2) Class members did not have their owners checked because index was not called on them.
* Move explicit outer after pattern matchingMartin Odersky2014-09-062-2/+8
| | | | | But allow pattern matching to provide outer accessors when needed using with ensureOuterAccessors.