aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix typo in Desugar#refinedTypeToClass documentationGuillaume Martres2016-05-281-1/+1
|
* Fix memberExcluding for ClassInfoGuillaume Martres2016-05-281-2/+10
|
* Avoid issues when calling methods on root package symbolGuillaume Martres2016-05-282-2/+2
| | | | | SymDenotations#topLevelClass: don't throw an exception Symbols#associateFile: avoid infinite loop
* Merge pull request #1281 from dotty-staging/fix-lamda-liftodersky2016-05-273-6/+27
|\ | | | | Fixes to lambdalift that prevent memory leaks.
| * LambdaLift: do not close over members that are static.Dmitry Petrashko2016-05-271-2/+2
| |
| * Fix deadlock in t5375 and similar tests.Dmitry Petrashko2016-05-262-2/+14
| | | | | | | | See t5375.scala for details.
| * Backport from Linker: ElimStaticThis: allow more calls to static methodsDmitry Petrashko2016-05-261-2/+4
| | | | | | | | | | | | | | Before there was an implicit assumption that static methods are only present on objects. This assumption is invalidated both by linker optimizations and the new fix to lambdalift.
| * Backport from Linker: Fix to lambda lift. Fixes #1280.Dmitry Petrashko2016-05-261-2/+9
| | | | | | | | | | | | | | | | | | | | | | CollectDependencies had incorrect handling of `Ident`s. If it had ever met an `Ident` to a symbol defined outside of current owner-chain(e.g. Predef.println) it would issue narrowTo(enclosingClass). This is very conservative and leads to memory leaks even in trivial lambdas. My lambda-lift-foo groes stronger :-)
* | Merge pull request #1283 from felixmulder/topic/fix-seq-binding-patternmatcherDmitry Petrashko2016-05-279-13/+37
|\ \ | | | | | | Fix #1276: `_` binding in patternmatcher
| * | Add test for SI-9795Felix Mulder2016-05-271-0/+7
| | |
| * | Add test for previous ensuring correct bindsFelix Mulder2016-05-272-0/+5
| | |
| * | Fix `A*` propagating outside matchesFelix Mulder2016-05-271-2/+7
| | |
| * | Annotate repeated params with `case` flag to indicate that they are legalFelix Mulder2016-05-275-9/+14
| | | | | | | | | | | | | | | | | | | | | One drawback with this approach is that the type seems to propagate. I.e. if the return type of an expression is `repeated` then the enclosing variable will get the `repeated` type instead of getting the expected `Seq` type
| * | Change typer to infer repeated param instead of Seq in `_*` casesFelix Mulder2016-05-272-3/+5
|/ /
* | Merge pull request #1270 from dotty-staging/fix-bootstrapDmitry Petrashko2016-05-2715-112/+281
|\ \ | | | | | | Fix bootstrap
| * | Fix typos in commentsMartin Odersky2016-05-231-2/+2
| | |
| * | Make isCOmpanion test cheaperMartin Odersky2016-05-231-6/+27
| | | | | | | | | | | | | | | | | | | | | As explained in the comment, a scalacLinkedClass must also be a true companion unless the original symbol is a root. This avoids us to drop the (potentially large) unpickled map and save some memory.
| * | Remember owner in completerMartin Odersky2016-05-231-4/+4
| | | | | | | | | | | | | | | | | | Otherwise we might get a false owner if completing from somewhere else. We do not have a failing test to demonstrate the problem, but it looks like the right thing to do.
| * | Refine owner trees for templatesMartin Odersky2016-05-231-1/+1
| | | | | | | | | | | | | | | Include member defs inside templates in the enclosing class, otherwise they would get localDummy as onwer.
| * | Adopt new scheme for handling forward references in TastyMartin Odersky2016-05-231-66/+106
| | | | | | | | | | | | | | | Instead of stubbing with potentially wrong owners and hping for the best, we now compute owners on demand, using the lazy data structure of an OwnerTree.
| * | Maintain ownerTree data structure when unpickling TastyMartin Odersky2016-05-233-6/+87
| | | | | | | | | | | | | | | | | | First step for a more robust scheme to access symbols in Tasty. This entailed a swap of two fields in RefiendType, to make tree format more uniform in what concerns where references are found.
| * | Let createSymbol return a symbolMartin Odersky2016-05-232-23/+27
| | | | | | | | | | | | | | | | | | Compute initialization flags of possibly enclosing traits elsewhere (in indexStats). Cleans up the logic and makes the module more understandable.
| * | Make sure delayed Tasty unpicklings are done at the latest at Pickler phaseMartin Odersky2016-05-231-4/+6
| | |
| * | Fix withPhaseNoLaterMartin Odersky2016-05-231-1/+1
| | | | | | | | | | | | | | | It's possible that the given phase argument does not exist, in which case we do not want to set the current phase to NoPhase.
| * | Replace aliases to Unit by UnitMartin Odersky2016-05-231-1/+9
| | | | | | | | | | | | | | | | | | | | | Do this in the inferred (result-)type of ValDefs and DefDefs. Without this fix, TreeTraverser#traverseChildren in Trees.scala gets a result type of BoxedUnit (but only when co-compiled from source, not when unpickled).
| * | Make sure local data is unpickled at right phaseMartin Odersky2016-05-231-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We had a problem where unpickling an annotation containing a class constant had the wrong type. Unpickling was done after erasure. The type given to the constant was an alias but aliases got eliminated during erasure, so the constant was malformed. Unpickling annotation contents at the same phase as unpickling the annotation carrier solves the problem. It seems similar problems can arise when data is unpickled using a LocalUnpickler. So we now make sure local unpickling runs at the latest at phase Pickler.
| * | Don't force a symbol's denotation for isTerm/isTypeMartin Odersky2016-05-232-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | Forcing it led to CyclicReferences involving RefChecks.OptLevelInfo when compiling dotc/*.scala against Tasty files. The problem was that when transforming OptLevelInfo the backend forced a transformInfo of RefChecks in TypeErasure which filtered RefCheck's scope to eliminate non-class type definitions. Without the tweak in this commit this tried to make all symbols current, and so came back to OptLevelInfo.
| * | Instrument Denotations#current to find CyclicReferenceMartin Odersky2016-05-231-1/+7
| | | | | | | | | | | | | | | Instrument Denotations#current to find CyclicReference errors arising during transforms.
| * | Decouple annotation transformers from info transformersMartin Odersky2016-05-234-25/+16
| | |
| * | Further improve doc commentMartin Odersky2016-05-231-2/+3
| | |
| * | Disable stub checkingMartin Odersky2016-05-231-4/+13
| | | | | | | | | | | | | | | | | | | | | It caused an assertion error when separately compiling parts of dotty against TASTY information. Not sure the test achieves anything or whether it produces a false negative.
| * | Use source module ref as assumed self type when reading TastyMartin Odersky2016-05-231-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | When reading Tasty we need to pre-set the info of a class to some ClassInfoType with (as yet) unknown parents and self type. But for module classes, we need to know the source module at all time, and this gets determined by the self type. So we now produce a TermRef for the assumed self type of a module class.
* | | Merge pull request #1250 from felixmulder/topic/dotty-runnerDmitry Petrashko2016-05-272-3/+26
|\ \ \ | | | | | | | | Add dotty runner script able to run dotty-compiled class with `main`
| * | | silence `cd` in scriptFelix Mulder2016-05-261-1/+1
| | | |
| * | | Rename `dotty` script to `dotr`Felix Mulder2016-05-261-0/+0
| | | |
| * | | Start REPL on no args in dotty script, fix backticksFelix Mulder2016-05-262-10/+8
| | | |
| * | | Add dotty runner script able to run dotty-compiled class with `main`Felix Mulder2016-05-261-0/+25
| | | |
* | | | Merge pull request #1256 from felixmulder/topic/test-bcodeDmitry Petrashko2016-05-278-4/+728
|\ \ \ \ | | | | | | | | | | Add bytecode checking infrastructure
| * | | | Move `stripAnnots` to `isRef` instead of performing explicitly everywhereFelix Mulder2016-05-192-12/+6
| | | | |
| * | | | Add tests for primitive construction as well as reference and boxed unit arraysFelix Mulder2016-05-183-3/+100
| | | | |
| * | | | Add test for `Array.ofDim`Felix Mulder2016-05-171-0/+24
| | | | |
| * | | | Fix #1258: correct behavior for annotated valuesFelix Mulder2016-05-174-24/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Annotated values are encapsulated in a `ConcreteAnnotation`, as such, the statement `tpe isRef defn.IntClass` would yield false despite the annotated reference being an Int. The tpe is now unwrapped if it has an annotation. If the transformation fails despite having the annotation the compiler will warn.
| * | | | Add attribution in AUTHORS.mdFelix Mulder2016-05-171-0/+7
| | | | |
| * | | | Add switch verification testFelix Mulder2016-05-172-2/+62
| | | | |
| * | | | Add bytecode checking infrastructureFelix Mulder2016-05-174-0/+516
| | |_|/ | |/| |
* | | | Merge pull request #1275 from felixmulder/topic/partial-eval-isInstanceOfDmitry Petrashko2016-05-2710-5/+196
|\ \ \ \ | |_|/ / |/| | | Add partial evaluation of `isInstanceOf` mini-phase
| * | | Fix double evaluation of scrutinee with side-effects, add testFelix Mulder2016-05-263-10/+24
| | | |
| * | | Take side-effects into account during rewritingFelix Mulder2016-05-261-5/+10
| | | |
| * | | Don't evaluate isInstanceOf for value classes, disable bugged testsFelix Mulder2016-05-266-30/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The tests `i1059.scala` and `t3480.scala` are failing due to a bug in pattern matcher that evaluates the `x` in `List(x: _*)` incorrectly. Concerned issue: #1276
| * | | Address reviewer feedbackFelix Mulder2016-05-261-10/+19
| | | |