| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Running the test suite with the pickling printer on showed up two more
problems which are fixed in this commit.
|
| |
|
|
|
|
| |
and fix a bug in TreeUnpickler
|
|
|
|
| |
Mangled is like toSimpleName, except that it keeps the term/type distinction.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
Drop Seq implementation of name. This implementation
was always problematic because it entailed potentially
very costly conversions to toSimpleName. We now have
better control over when we convert a name to a simple
name.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
1. Fix problem in fullNameSeparated
2. Revise expandedName operations
|
|
|
|
|
|
|
| |
Start scheme where unmangling is done by NameKinds instead of
in NameOps.
Also add namekinds for protected accessors.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Make it a method of info instead of a convention over tags, because
it's less fragile that way.
Also, add UniqueName extractor.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
We now handle only semantic names. Also, name extractor tags
and TASTY name tags are now aligned.
|
| |
|
|
|
|
|
| |
Use a new scheme for creating and accessing semantic names which is
based on semantic name extractors with nested info classes.
|
| |
|
| |
|
| |
|
|
|
|
| |
Plus further bug fixes.
|
|
|
|
| |
Plus various bug fixes and filling in missing functionality
|
| |
|
|
|
|
| |
nameddefaults.scala now compiles without crashing
|
|
|
|
|
|
|
|
|
| |
Structured names are not Seqs anymmore. But the Seq behavior
is required in many places that mangle names. As an intermediate step
we drop the Seq basetype but add Seq behavior through a decorator.
Most Seq operations only work on SimpleTermNames and their
TypeName analogue, will throw an exception wehn called on structured
names.
|
|\
| |
| | |
fix #2166: unpickling of shared CaseDef
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
- Use TypeLambda instead of PolyType.
- Further harmonize factory operations
|
| | |
|
| |
| |
| |
| | |
Replace with ParamRef
|
| | |
|
| | |
|
| |
| |
| |
| | |
Use an abstract type instead.
|
| |
| |
| |
| | |
Trying to bring PolyTypes closer to TypeLambdas
|
| |
| |
| |
| |
| |
| | |
MethodTypes have paramTypes whereas PolyTypes have paramBounds.
We now harmonize by alling both paramInfos, and parameterizing
types that will become common to both.
|
| |
| |
| |
| |
| | |
and generalize MethodParam to ParamRef, and
TypeParamInfo to ParamInfo
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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` 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.
|
| | |
|
|/ |
|