| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
|
| |
| |
| |
| |
| |
| | |
case-closures (which are represented as Match nodes) have a known
arity just like other function literals. So shape analysis for
overloading resolution should apply to them as well.
|
|/
|
|
|
|
|
|
|
|
| |
* Fix #2009: Fix placeholder params logic for lambdas
Logic was missing placeholders in rhs of lambdas.
* Add comment
* Fix typo
|
|\
| |
| | |
Fix #1990: Handle inlining where this proxies change types
|
| |
| |
| |
| |
| |
| |
| | |
They are sorted according to the nesting depth of the classes they
represent. This is no necessarily the same as the nesting level of
the symbols of the proxy classes. i1990a.scala shows an example where
the two differ.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The new situation in the test was that outer of the inlined method
was `A` but it's as seen from type is a subtype `B`.
We need two fixes:
- Ignore outerSelects in TreeChecker. These are treated as having fixed symbols.
- Adapt the outer-path logic to deal with code that's moved to another context.
|
|/
|
|
| |
This is necessary if we ever want to get rid of our dependency on scala-compiler
|
|
|
|
|
|
| |
This is a gross hack to support the need for a $scope
binding when XML literals are created. It should go away
once we phase out XML literals. A library-based
solution should use implicits instead.
|
|
|
|
|
|
|
|
| |
val definitions and for expressions both distinguish whether
something is a pattern or a variable binding. They no do it
the same way: `ident` or an `ident: type` is a variable binding,
everything else is a pattern. Previously, capitalized idents
were considered as bindings in valdefs but as pattern in fors.
|
| |
|
|\
| |
| | |
Fix #1907: Improve error message
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | | |
Better positions for infix operations
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | | |
Fix-#1723: Avoid private leaks on completion
|
| |/
| |
| |
| | |
As #1723 demonstrates, doing this at PostTyper is too late.
|
|\ \
| | |
| | | |
Implement structural type member access
|
| | |
| | |
| | |
| | | |
The PR also fixes #1866, as shown by this test case.
|
| | |
| | |
| | |
| | |
| | | |
Use base types instead of implicits. This is more robust
in the presence of type abstraction.
|
| | |
| | |
| | |
| | | |
New scheme for implementing structural type member access.
|
| |/
|/|
| |
| |
| | |
xxl closures need to get the SAM type FunctionXXL as their explicit
type field after ersure.
|
| |
| |
| |
| | |
The b-test would compile for a millenia without the fix.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Before adding a constraint, make sure there is no way
the two types are already in a subtype relation.
Adding redundant constraints is problematic because we
might introduce cycles. See i1891.scala for a test.
|
|\ \
| |/
|/| |
Fix #1867: Set position of empty refined types
|
| | |
|
|\ \
| | |
| | | |
Fix #1865: Compute outer path at right phase
|
| |/ |
|
|/ |
|
|\
| |
| | |
Make more parts of stdlib compile
|
| |
| |
| |
| |
| | |
Argument comparison of hk types did not take into account that
the compared types could have themselves wildcard arguments.
|
|/ |
|
|\
| |
| | |
Fix #1812, Symbols.mapSymbols shouldn't replace denotations
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Fix #1803: Infer type parameters of anonymous class parents from expected type
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If a parent type of an anonymous class is an Ident or Select which refers
to a parameterized type, use the expected type to infer its type parameters.
Fixes #1803.
|
|\ \ \
| | | |
| | | | |
Fix #1797: Allow case class params with names _1, _2, ...
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This was not possible before because it clashed with the automatically
generated name of the accessor. We now allow it, by simply taking the
parameter(accessor) itself as the case class accessor if it already has
that name. But you still cannot write
case class C(_2: Int, _1: String)
nor should you be able to do this.
|
|\ \ \ \
| |_|/ /
|/| | | |
Fix #1755: Make sure references in outer args are accessible
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Needed a fixup action in ExplicitOuter to avoid references to
module's This from outside their scope.
The problem is fixed, but I wish I understood better the root cause.
|
|\ \ \ \
| |_|/ /
|/| | | |
Fix #1790: Change by-name pattern matching.
|
| | | |
| | | |
| | | |
| | | | |
This implements the rules laid down in #1805.
|
| | | |
| | | |
| | | |
| | | | |
New implementation following the scheme outlined in #1790.
|
|\ \ \ \
| | | | |
| | | | | |
Fix #1784: allow to omit types for local implicit vals
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix checks related to value classes
|
| | | | | | |
|
| |_|/ / /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- Add tests that work to pos/neg, tests that don't work yet to pending/pos/neg.
- Also, change .gitignore to allow for a local directory.
- Also add a draft page to the docs.
|
| |_|_|/
|/| | | |
|