| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Fancy console reporter and the string interpolator for highlighting now
obey the color setting - this means that the next step towards unifying
the reporters is to make sure the tests work with
`FancyConsoleReporter` under the `-color:never` flag.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
`inline` is now a modifier keyword. To keep disruption tolerable,
we still allow `@inline` as an annotation as well. Other uses of
`inline` are supported only under `-language:Scala2` and are rewritten
to identifiers in backticks.
|
|
|
|
|
|
| |
Because of different close seqences before and after pickling
we could get spurious differences, where in one file things were
put on one line, and in the pther there was a linebreak.
|
| |
|
|
|
|
| |
Pickler drops Inlined nodes, so homogenize needs to do the same.
|
|
|
|
|
|
|
|
|
| |
... to tag inlined calls. Perform typings and transformations
of inlined calls in a context that refers to the INlined node
in its InlinedCall property.
The idea is that we can use this to issue better error
positions. This remains to be implemented.
|
|
|
|
|
|
| |
Backend does not need them after all, can just use nulls there.
So the functionality is only used for printing, and it makes
sense to move everything there.
|
|
|
|
| |
Prefer to access directly via symbol.
|
|
|
|
|
|
| |
Roll its functionality into Select. Since we can always
tell whether a tree is a type or term there is no expressiveness
gained by having a separate tree node.
|
|
|
|
|
|
|
|
| |
Drop tree node class 'Pair'. It was used only in imports, where
it can easily be replaced by Thicket.
The envisaged use for generic pairs is almost sure better modelled
by a "Pair" class in Dotty's standard library.
|
|
|
|
| |
Arrange its sub-elements so that they appear strictly left to right.
|
|
|
|
|
|
|
|
|
| |
Now it's annotated first, annotation second.
This is in line with AnnotatedType and in line with the principle
that tree arguments should come in the order they are written. The
reason why the order was swapped before is historical - Scala2 did it
that way.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In particular:
- get rid of envelope, it's too complicated and hides too many errors
- check that everywhere in parsed trees the position range of a parent
node contains the position ranges of its children.
- check that all non-empty trees coming from parser have positions.
The commit contains lots of fixes to make these checks pass.
In particular, it changes the scheme how definitions are positioned.
Previously the position of a definition was the token range of the
name defined by it. That does obviously not work with the parent/children
invariant. Now, the position is the whole definition range, with the
point at the defined name (care is taken to not count backticks).
Namer is changed to still use the token range of defined name as the
position of the symbol.
|
|
|
|
|
|
|
| |
The previous fix was too drastic, as it would also have omitted
scala, Prefef and other "unqualified owner types" from full names.
We now omit only "empty prefixes", i.e. roots, anonymous classes and
repl qualifiers.
|
|
|
|
| |
... when printing using RefinedPrinter. PlainPrinter will still show them.
|
|
|
|
|
| |
This was already disabled when printing types. Now is also disabled
when printing fully qualified names.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Don't disambiguate in situations like
Predef.String
vs
java.lang.String
where one Symbol is an alias of another with the same name.
Also, fix reviewer comments wrt comments and unused defs.
|
|
|
|
|
|
| |
Normal show will propagate the excpetions. Previously, exceptions were filtered
in both cases, which was redundant. Also, it's good to have a way to show things that
does not mask exceptions, if only to debug problems in show itself.
|
|
|
|
|
|
| |
Roll `sm` and `i` into one interpolator (also called `i`)
Evolve `d` to `em` interpolator (for error messages)
New interpolator `ex` with more explanations, replaces disambiguation.
|
|
|
|
|
| |
- increase page width
- print scopes more legibly under -verbose
|
| |
|
|\
| |
| | |
Direct representation of higher-kinded types
|
| |
| |
| |
| |
| |
| |
| |
| | |
If there is a new named type param scheme it will almost certainly not
need something like compareAliasedRefined.
Also: harden printer to compute less and thereby avoid
a possible NPE.
|
| |
| |
| |
| | |
Printed as <notype> before.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Remove the code that implemented the encoding of hk types
using refinements.
Drop the notion that RefinedTypes can be type parameters. This is
no longer true under the new representation.
Also, refactoring MemberBinding -> TypeParamInfo
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Make printing package ids more robost
Crashed before when printers were turned on during test pickling mode.
- Make Denotation#bringForward more robost
Assertion failed before when printers were turned on during test pickling mode.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Make them each inherit from common BaseType GenericType.
That way we avoid inheriting accidentally stuff from PolyType in TypeLambda.
Also, Fix adaptation of type lambdas. Don't confuse them with PolyTypes.
|
| | |
|
| |
| |
| |
| |
| | |
- Re-introduce newHK option. Label some things that will be
removed with OLD.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Simplify RefinedType
- Drop recursive definition of RefinedThis - this is now
taken over by RecType.
- Drop RefinedThis.
- Simplify typeParams
The logic avoiding forcing is no longer needed.
- Remove unused code and out of date comments.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
TypeMaps do the same, so it is logical, and helps
prevent subtle errors as when we mispredicted whether
a RecType contains references that point to it.
Also, add normalizeHkApply to homogenize
Fixes some discrepancies in Tasty typing.
Also, homogenize skolem types
Skolem types are eliminated by pickling, so they should not appear
in the "before-pickling" output.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Swap order of tests in lookupRefined
- Change joins of BindingKinds.
A type parameter joint with a normal refinement represents
a type parameter that has been filled in. So the Binding attribute
should be removed.
- Fix printing of type lambdas under new hk scheme
- refine isRef for hk type
The new definition avoids that a higher-kinded type "isRef"
of an underlying class. I.e. `[X] -> Any` is not longer a ref
to `Any`.
- Fix withBindingKind for type aliases
Old definition converted aliases to type bounds.
- Multiple fixes to BetaReduce
- Fix logic for hk subtype tests
- Make isHK more precise
|
| |
| |
| |
| |
| |
| |
| | |
For the moment under newHK flag.
- avoid crasher in derivedTypeParams (NamedTypes don't always have symbols)
- Revise logic in type comparer for new HK scheme
|