| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | | |
|
| | | | |
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Fix #1916: fix erasure of implicit xxl closures
|
| | | |
| | | |
| | | |
| | | | |
This commit extends the fix done in #1920 to implicit closures.
|
|\ \ \ \
| | | | |
| | | | | |
Fix #1907: Improve error message
|
| | | | |
| | | | |
| | | | |
| | | | | |
Updated with SI issues reported by Jason
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It seems in most cases this leads to weird behavior and cause
confusing error messages later.
It also means we cannot create an Array[Nothing], except by
passing the classtag explicitly.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The previous implicit definition of arrayTag in DottyPredef
priorities arrayTag over all other classtag searches, which
led to surprising results in `i1907a.scala`.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The test exercises all the improvements made in previous
commits of this branch.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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`.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Better positions for infix operations
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Preserving the position of infix operators is useful for IDEs'
type-at-point. We also preserve the position of the untyped lhs of
right-associative operators, this is useful both for IDEs and for error
messages, before:
4 |val x: List[Int] = "foo" :: List(1)
| ^
| found: String($1$)
| required: Int
|
After:
scala> val x: List[Int] = "foo" :: List(1)
-- [E007] Type Mismatch Error: <console> ---------------------------------------
4 |val x: List[Int] = "foo" :: List(1)
| ^^^^^
| found: String($1$)
| required: Int
|
Note: It would be even nicer if we displayed "String" instead of
"String($1$)" since $1$ is synthetic, this commit does not address this.
|
| | |_|/ /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This has two advantages:
- We can distinguish BackquotedIdent from Ident, allowing the user to
use a defined "type `&`", see testcase.
- We get better positions for the operators. This is useful in IDEs, for
example to get the type at point.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Positioned#initialPos: Union the position of every children
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Prompted by a discussion on the Scala reddit, this one
verified that dotty does not have the problem exhibited
in SI-10170. I piggyback on this PR because this does
not warrant a separate PR>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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.
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
Improvements to implicits
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The test exercises all the improvements made in previous
commits of this branch.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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`.
|
|\ \ \ \
| | | | |
| | | | | |
[doc] html enhancements
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
|/ / / / |
|
|\ \ \ \
| |_|_|/
|/| | | |
Fix classpaths in dottydoc tests
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
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.
|
|\ \ \ \
| |_|/ /
|/| | | |
Weaken assumption in mergeCompanionDefs
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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$`.
|
| | | | |
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | | |
Fix slack integration and allow empty to gh-pages
|