aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Code to handle overloaded unapply/unapplySeq methodsMartin Odersky2014-08-032-12/+26
| | | | These were not handled before.
* Merge pull request #159 from dotty-staging/transform/elimLocalsDmitry Petrashko2014-08-036-9/+33
|\ | | | | Added elimLocals miniphase
| * Added elimLocals miniphaseMartin Odersky2014-08-036-9/+33
|/ | | | | | | This phase drops the Local flag from all private[this] and protected[this] members. This allows subsequent code motions where code is moved from a class to its companion object. It invalidates variance checking, which is consequently disabled when retyping.
* Merge pull request #147 from dotty-staging/transform/varianceodersky2014-08-0324-49/+584
|\ | | | | transform/variance
| * Added assertion that casts never go to singleton types.Martin Odersky2014-08-031-1/+5
| | | | | | | | Disabled for now, awaiting a fix.
| * Updated commentMartin Odersky2014-08-031-2/+4
| |
| * Enabled variance checkingMartin Odersky2014-08-0310-40/+134
| | | | | | | | | | | | | | Variance checking is now run as part of type-checking. Fixed tests that exhibited variance errors. Added tests where some classes of variance errors should be detected.
| * Two variance-related fixes in DesugarMartin Odersky2014-08-032-5/+15
| | | | | | | | | | | | 1) Type parameter accessors inherit their variance from the type parameter 2) Copy method parameter defaults are annotated @uncheckedVariance. This is necessary because default methods will be checked for variance.
| * Removed CheckTreesMartin Odersky2014-08-034-11/+28
| | | | | | | | | | It was unmaintained and superseded by TreeChecker. The only needed bit, escapingRefs, got moved to Typer.
| * Initial versions of Variances and CheckVariancesMartin Odersky2014-08-035-2/+229
| | | | | | | | Not yet integrated or tested.
| * Added utility method: underlyingSymbolMartin Odersky2014-08-033-2/+16
| |
| * Add showDcl method for SingleDenotationsMartin Odersky2014-08-033-6/+17
| |
| * Preparation for intgeration of RefChecksMartin Odersky2014-08-035-23/+179
|/ | | | | Added OverridingPairs Small tweaks here and there.
* Merge pull request #157 from gkossakowski/name-hashingDmitry Petrashko2014-08-031-0/+3
|\ | | | | Enable improved incremental compilation (name hashing)
| * Enable improved incremental compilation (name hashing)Grzegorz Kossakowski2014-07-251-0/+3
| | | | | | | | | | The algorithm is stable enough to try it out for dotty build. It's enabled in sbt and Akka already.
* | Merge pull request #141 from dotty-staging/transform/repeatedodersky2014-08-0315-42/+142
|\ \ | |/ |/| Transform/repeated
| * Added test case for varargs bridgesMartin Odersky2014-08-032-0/+15
| | | | | | | | | | | | Currently we cannot run this test automatically because the testing framework does not know about .java files. It was run manually and verified that ElimRepeated does was it is supposed to do (create a varargs bridge).
| * Cleanup for varargs bridge.Martin Odersky2014-08-031-5/+10
| | | | | | | | | | | | Now inserts a bridge whenever a method overrides a Java varargs method. This is conservative but safe. We might use a more aggressive scheme, as the one in Scala 2, but it's not clear the win would warrant it.
| * Fixed underlyingIfRepeated.Martin Odersky2014-08-032-12/+7
| | | | | | | | ... and moved to TypeApplications.
| * Fixed tpd.refMartin Odersky2014-08-031-1/+1
| | | | | | | | | | Did not work for this prefixes and other singleon types before. I.d. was generating a SelectFromType tree, which is wrong.
| * Add varargs bridge methodsMartin Odersky2014-08-036-18/+104
| | | | | | | | | | Distinguish translations between Java and Scala varargs methods and add bridges where needed.
| * Adapt signature of <repeated>Martin Odersky2014-08-031-2/+6
| | | | | | | | so that sig(<repeated>[T]) = sig(Seq[T]).
| * Eliminate JavaRepeatedParamClassMartin Odersky2014-08-035-15/+10
|/ | | | | | | Having two repeated param classes (and two types) does not work, because we need to maintain an overriding relationship between Scala repeated param methods and Java repeated param methods (this will be resolved later by bridges).
* Merge pull request #155 from dotty-staging/tailrecTCDmitry Petrashko2014-07-2310-134/+287
|\ | | | | Tailrec tc
| * Fixed typoMartin Odersky2014-07-221-1/+1
| |
| * Defined substitution which follows aliasesMartin Odersky2014-07-223-8/+49
| | | | | | | | | | Used in FullParameterization to substitute type parameters. Fixes test failure for t2399.scala
| * Move Ycheck after tailrecDmitry Petrashko2014-07-221-1/+2
| | | | | | | | Hurray!
| * Make trees after TailRec type correctDmitry Petrashko2014-07-221-90/+73
| | | | | | | | | | | | | | | | | | TailRec now relies on FullParameterization and uses two passes for transformation. First one decides weather the method will be transformed and if yes, starts rewriting calls in taill position. Second one lifts the method body to a fully parameterized one, correcting types.
| * Add test for tailcallDmitry Petrashko2014-07-221-0/+4
| | | | | | | | Test for order of type parameters in recursive call
| * Fix typo in lazyValsDmitry Petrashko2014-07-221-1/+1
| |
| * Create RetypingTreeMap that propagates typesDmitry Petrashko2014-07-223-30/+154
| | | | | | | | | | | | | | | | | | | | If some node in tree is transformed changing the type, the outer node could potentially also change type. This patch implements a RetypingTreeMap that propagates those changes until types converge. Propagation is done for tree nodes that are able to compute their type based on their children: Pair, Block, If, Match, CaseDef, Try, SeqLiteral, Annotated, Select.
| * Allow FullParametrization to work on localy defined methodsDmitry Petrashko2014-07-221-3/+3
|/
* Merge pull request #152 from dotty-staging/fux/substThisDmitry Petrashko2014-07-212-2/+6
|\ | | | | Fix of FullParameterization
| * Fix of FullParameterizationMartin Odersky2014-07-212-2/+6
| | | | | | | | Avoid substitituting A.this if A is a globally accesisble mdoule.
* | Merge pull request #149 from dotty-staging/fix/#148Nada Amin2014-07-204-1/+90
|\ \ | | | | | | fix/#148
| * | fix/148Martin Odersky2014-07-204-1/+90
| |/ | | | | | | Fixed typo in Splitter. Closes #148.
* | Merge pull request #146 from dotty-staging/docs/hk-typo-fixDmitry Petrashko2014-07-191-1/+1
|\ \ | | | | | | Fixed typo
| * | Fixed typoMartin Odersky2014-07-191-1/+1
| |/
* | Merge pull request #145 from dotty-staging/fix/#143odersky2014-07-192-4/+20
|\ \ | | | | | | Fixed #143
| * | Added test for #143 to regression testsMartin Odersky2014-07-191-0/+0
| | |
| * | Fixed #143Martin Odersky2014-07-192-4/+20
| |/ | | | | | | | | The problem was that TermRefWithSignatures did not take shadowed names into account when reconstituting themselves under a new prefix.
* | delete unmatched )Nada Amin2014-07-191-1/+1
| |
* | minor typoNada Amin2014-07-191-1/+1
|/
* Merge pull request #140 from dotty-staging/transform/extensionMethodsDmitry Petrashko2014-07-1765-422/+2095
|\ | | | | Transform/extension methods
| * Made FullParameterization more customizableMartin Odersky2014-07-171-5/+15
| | | | | | | | Can now decide on rewiring on a node-by-nide basis.
| * Handle selftypes in FullParameterizationMartin Odersky2014-07-172-9/+15
| | | | | | | | Adapt the transformation so that self types are handled correctly.
| * Make self types always include a reference to the classMartin Odersky2014-07-171-8/+20
| | | | | | | | | | | | | | | | | | | | | | | | In a situation like class C { this: D => } the effective self type of the class is taken to be D & C. Why? First, Scala 2.x does it that way. Second, it's needed to make the FullParameterization transform go though.
| * Fixed problem with missing denotations in polyDefDefMartin Odersky2014-07-172-2/+5
| | | | | | | | Problem was reported by @darkdimius. Test case will come in next commit.
| * Fix to rewire typesMartin Odersky2014-07-174-18/+75
| | | | | | | | | | | | | | t6574 has a new test where we produce identical code in an if-then-else. This broke the rewiring logic before, and is fixed now. Also, more comments and test cases.
| * Refactored reusable full parameterization code into base trait.Martin Odersky2014-07-174-144/+197
| | | | | | | | | | | | Methods dealing with fully parameterized versions of classes were pulled from `TypeUtils` and `ExtensionMethods` into `FullyParameterization`. `TypeUtils` is left for possible future use, but is empty right now.