| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously we missed some children, one consequence of this is that the
position of the typed tree corresponding to the lambda "z => 1" did not
contain the position of "z".
|
|\ \ \ \
| | | | |
| | | | | |
Trees#namePos: Correct position for objects
|
| |/ / / |
|
|\ \ \ \
| |_|_|/
|/| | | |
Fix to wildapprox
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
f-bounded-case-class.scala exhibited a StackOverflow in wildApprox before
the fixes. The problem was due to F-bounds.
Note: wildApprox is performance critical. I ran timed-bootstrap-repeated
a couple of times to verify that the changes did not affect runtimes in
significant ways. We should also watch out for a slowdown in the
benchmark tests.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
When printing info about adding to constraints, show the hashes
of the typerstate stack, so that we know where constraints are added.
|
| | | | |
|
| | | | |
|
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The previous condition for caching companionRefs contained a condition
result.companionRefs.forall(implicitScopeCache.contains)
which was always false because we cache types in `implicitCodeCache`, not
companion refs. The new logic fixes this and does not need a second traversal
because it is integrated in `iscopeRefs`.
|
|\ \ \
| | | |
| | | | |
Fix #1568 - avoid transforming error trees
|
| |/ /
| | |
| | |
| | |
| | | |
If a tree has type error, subtrees may not have an assigned type.
Therefore we should avoid transforming such trees.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously `mergeCompanionDefs` assumes that if the attachment of class `Foo` is as follows:
x :: y :: tdef @ TypeDef(_, templ)
Then the `tdef` must be `Foo$`. When there are multiple pre-typer transforms,
this is not necessarily true. For example, an annotation macro expansion may
expand a non-case class `Foo` to `class Foo; object FooA`.
We need to check the name of `tdef` to be equal to `Foo$`.
|
|\ \ \
| | | |
| | | | |
[doctool] Add markdown support && Static site generation
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
fix #1626: inconsistent names in prettyprint
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix #1569: Fix logic for by-name parameters of inline methods
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
As #1569 shows, by-name parameters should be treated in the same way
as by-value parameters. If the expression is not pure, install a binding.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
avoid using macro-based StringContext.f to ease bootstrap
|
| | |/ / / /
| |/| | | | |
|
|\ \ \ \ \ \
| |_|_|_|/ /
|/| | | | | |
support pre-typer transform of trees
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Currently `mergeCompanionDefs` assume `ModuleDef` is expanded
exactly to `module val; module class`. To enable more
general pre-typer transform, we need to weaken the assumption
to that the first two elements of the thicket must be
`module val; module class`.
This change will enable transform def macros defined inside
an object, as well as other pre-typer transforms.
|
|\ \ \ \ \ \
| |_|_|/ / /
|/| | | | | |
Fix-#1723: Avoid private leaks on completion
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
avoidPrivateLeaks got moved from Checking to TypeAssigner, where it
fits well besides the other avoid methods.
|
| | |_|_|/
| |/| | |
| | | | |
| | | | | |
As #1723 demonstrates, doing this at PostTyper is too late.
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
Fix #1644: Disallow inner classes in value classes
|
| | | | | |
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
Fix #1915 Synthetic function traits need NoInits flag
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
When compiled from Scala2 that knowledge was lost. Normally that
would be not a problem (e.g. the same thing happens for Function0-22).
But FunctionXXL is special in that it is inherited only after erasure.
Since `augmentScala2Trait` runs before erasure, it is having no effect
on FunctionXXL itself when running on classes that inherit function types of
large arities. Therefore, FunctionXXL is missing an implementation class
at phase Mixin, which means that the supercall logic which rewires
super.<init> to implementation class init cannot work. This leaves us
with a super.<init> to FunctionXXL in `i1915.scala`.
The fix is to always know that `FunctionXXL` has no init method, so
no super.<init> will be generated for it.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It was used only once and its body is almost as short as the name,
so no need to have a separate method.
|
| | |/ /
| |/| |
| | | |
| | | | |
Fixes #1915.
|
|\ \ \ \
| | | | |
| | | | | |
Implement structural type member access
|
| | | | |
| | | | |
| | | | |
| | | | | |
We can't handle them with the proposed scheme. I made a note in #1886.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
A previous type comparison was wrong because it did not map
refined-this types. I believe it was also redundant, so the easiest
fix is to drop it.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Use base types instead of implicits. This is more robust
in the presence of type abstraction.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
New scheme for implementing structural type member access.
|
|\ \ \ \ \
| |_|_|_|/
|/| | | | |
Fix incorrect flatten of thicket inside interpolated string in UntpdTreeMap
|
| | |_|/
| |/| | |
|