aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala
Commit message (Collapse)AuthorAgeFilesLines
* Avoid setter in NameMartin Odersky2017-04-111-1/+1
| | | | and fix a bug in TreeUnpickler
* Introduce mangled methodMartin Odersky2017-04-111-2/+2
| | | | Mangled is like toSimpleName, except that it keeps the term/type distinction.
* Keep package member names mangledMartin Odersky2017-04-111-1/+3
| | | | | | | | | Once we start using unencoded operators internally, we will face the problem that one cannot decode realiably a class file filename. We therefore turn things around, keeping members of package scopes in mangled and encoded form. This is compensated by (1) mangling names for lookup of such members and (2) when unpickling from Scala 2 info or Tasty, comparing mangled names when matching a read class or module object against a root.
* Rename NameExtractor -> NameKindMartin Odersky2017-04-111-1/+1
|
* Add ShadowedName and AvoidClashNameMartin Odersky2017-04-111-1/+1
|
* Get rid of SuperAccessor flagMartin Odersky2017-04-111-3/+1
|
* Get rid of ExpandedName flagMartin Odersky2017-04-111-1/+0
|
* Eliminate TastyNamesMartin Odersky2017-04-111-52/+13
|
* Add NameExtractorsMartin Odersky2017-04-111-2/+3
| | | | | Use a new scheme for creating and accessing semantic names which is based on semantic name extractors with nested info classes.
* Don't forget ExpandedName when unpickling SuperAccessorsMartin Odersky2017-04-111-1/+1
|
* Add Variant NameInfoMartin Odersky2017-04-111-0/+1
| | | | Plus further bug fixes.
* Add default getter namesMartin Odersky2017-04-111-1/+1
| | | | Plus various bug fixes and filling in missing functionality
* Handle expansion and flatteningMartin Odersky2017-04-111-2/+13
|
* Merge pull request #2187 from dotty-staging/fix-2166odersky2017-04-061-1/+7
|\ | | | | fix #2166: unpickling of shared CaseDef
| * fix #2166: unpickling of shared CaseDefliu fengyun2017-04-041-1/+7
| |
* | PolishingsMartin Odersky2017-04-061-7/+0
| |
* | Handle hk lambdas in tastyMartin Odersky2017-04-061-16/+20
| |
* | Further refactoringsMartin Odersky2017-04-061-2/+2
| | | | | | | | | | - Use TypeLambda instead of PolyType. - Further harmonize factory operations
* | Rename PolyTypeTree -> LambdaTypeTreeMartin Odersky2017-04-061-1/+1
| |
* | Rename PolyParam --> TypeParamRefMartin Odersky2017-04-061-1/+1
| |
* | Break out functionality from MethodTypeMartin Odersky2017-04-061-1/+1
| | | | | | | | | | and generalize MethodParam to ParamRef, and TypeParamInfo to ParamInfo
* | Encode variances in parameter namesMartin Odersky2017-04-061-4/+2
| | | | | | | | | | | | | | | | | | | | This leads to a slight overall simplification, harmonizes pickle format with internal representation, and makes MethodTypes and PolyTypes more similar to each other. I believe the change is useful as it is, but in particular it is a useful step for an eventual unification of MethodTypes and PolyTypes.
* | checkNoPrivateLeaks: Do not allow types to refer to leaky aliasesGuillaume Martres2017-04-041-1/+3
|/ | | | | | | | | | | `checkNoPrivateLeaks` can force a lot of things, this lead to hard-to-reproduce issues in unpickling because we called `checkNoPrivateLeaks` on the type parameters of a class before anything in the class was indexed. We fix this by making sure that `checkNoPrivateLeaks` never transforms type symbols, only term symbols, therefore we can unpickle type parameters without forcing too many things. tests/neg/leak-type.scala illustrates the new restriction that this necessitates.
* Fix unpickling of param-dependent methodsMartin Odersky2017-03-141-2/+2
|
* Drop mixed MethodType apply methodMartin Odersky2017-03-141-1/+2
| | | | | | The dropped method takes direct parameter types but a result type expression. Since parameter types are now in general dependent as well, that method is mostly redundant.
* Fix #2067: Compute defKind at Typer, not NamerMartin Odersky2017-03-081-1/+1
| | | | | | | It's hard to predict for defKind all the desugarings that can be applied to a definition. Better to do it once the desugarings have been applied. NoInit and PureInterface are both tested only after Typer, so it's OK to delay their initialization until regular Typer.
* TreeUnpickler: do not capture Context in Annotation symbolGuillaume Martres2017-02-181-1/+3
|
* TreeUnpickler: do not capture Context in Annotation treeGuillaume Martres2017-02-181-1/+1
|
* TreeUnpickler: Avoid capturing context in lazyStatsGuillaume Martres2017-02-181-1/+1
| | | | | | | `lazyStats` creates a lazy tree using `readLater`, but the closure inside `readLater` calls `mergeTypeParamsAndAliases` which until this commit implicitly used the Context from the outer method `readTemplate`, this lead to crashes in the Language Server.
* Fix typoMartin Odersky2017-02-021-1/+1
|
* Refactoring to make Checking not mutate denotationsMartin Odersky2017-02-021-1/+1
| | | | | avoidPrivateLeaks got moved from Checking to TypeAssigner, where it fits well besides the other avoid methods.
* Fix-#1723: Avoid private leaks on completionMartin Odersky2017-02-011-5/+1
| | | | As #1723 demonstrates, doing this at PostTyper is too late.
* More info when unpickling failsMartin Odersky2016-11-241-2/+2
|
* TreeUnpickler: Workaround cyclic reference involving self-typeGuillaume Martres2016-11-221-2/+6
| | | | | | Special-casing like this is ugly, we should decide whether we want to avoid simplifications on all TypTrees and whether we want to do this just in unpickler or always. But I want to merge this PR first.
* Properly unpickle This trees without qualifierGuillaume Martres2016-11-221-1/+1
| | | | | Otherwise, they may end up with a qualifier, this manifested itself as a pickling difference in `tasty_tools`.
* Do not force symbols of annotations when unpicklingGuillaume Martres2016-11-221-8/+2
| | | | | | | | | | | | This lead to stale symbol errors in `tasty_tools` because the symbol forcing was bringing forward symbols from the previous run before the corresponding symbols for the current run were created. We fix this by adding Annotations#deferredSymAndTree which behaves similarly to Annotations#deferred but take a by-name symbol. We also remove TreeUnpickler#LazyAnnotationReader which was apparently never used.
* checkNoPrivateLeaks is now also done in TreeUnpicklerGuillaume Martres2016-11-221-0/+7
| | | | | This could be abstracted better but we'll end up replacing checkNoPrivateLeaks soon anyway due to https://github.com/lampepfl/dotty/issues/1723
* TreeUnpickler: Add missing case for ENUMconstGuillaume Martres2016-11-221-0/+2
|
* Move compiler and compiler tests to compiler dirFelix Mulder2016-11-221-0/+1161