| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | | |
`superType` should never return a `TypeBounds` in the first place.
This commit makes sure it doesn't.
|
|\ \ \
| | | |
| | | | |
Fix type inference for HLists and HMaps
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Need to use fresh PolyParams instead of WildcardTypes
if constraint is committable.
|
| | |/
| |/|
| | |
| | |
| | |
| | | |
We approximate dependencies to parameters by Wildcards. This was already
done in one place, is now done in other places as well, instead of doing nothing for
dependent methods.
|
|\ \ \
| |_|/
|/| | |
Change "recursive/cyclic definitions needs type" errors to Message
|
| |/
| |
| |
| |
| |
| | |
Split error messages for recursive method and overloaded method needs type into two (but
did not solve the analysis which to show).
Make CyclicReference type error construct corresponding error message.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Drop the [type T] syntax, and what's associated to make it work.
Motivation: It's an alternative way of doing things for which there seems
to be little need. The implementation was provisional and bitrotted during
the various iterations to introduce higher-kinded types. So in the end the
complxity-cost for language and compiler was not worth the added benefit
that [type T] parameters provide.
Noe that we still accept _named arguments_ [A = T] in expressions; these are useful
for specifying some parameters and letting others be inferred.
|
|/ |
|
|\
| |
| | |
Avoid accidental captures of Context
|
| |
| |
| |
| |
| |
| | |
This capture did not cause any problem since we always called
TempClassInfo#finalize with the same Context than we captured in
`addSuspension`, but it's better to be explicit about these things.
|
|/
|
|
|
| |
We used to "fill-in" with zeroes if variances were missing. I now
think that;'s too error-prone. Better define all variances explicitly.
|
| |
|
|\
| |
| | |
Make more parts of stdlib compile
|
| |
| |
| |
| |
| | |
When faced with a denotation that combines parameterless and nullary method
definitions (toString is a common example), ignore any redundant () applications.
|
| | |
|
|/ |
|
|\
| |
| | |
Fix #1789: Fix signature of unit result type
|
| |
| |
| |
| | |
was scala.BoxedUnit, should be scala.Unit.
|
|\ \
| | |
| | | |
Add implicit function types
|
| | |
| | |
| | |
| | |
| | | |
Optimizes implicit closures by avoiding closure
creation where possible.
|
| |/ |
|
| | |
|
|/
|
|
|
|
|
|
|
| |
Typer#ensureReported's comment outlines an example where errors
could go unreported, resulting in error trees after typer without
any reported error messages. This commit makes sure that at least
one error is reported if a tree node has an error type.
Fixes #1802.
|
| |
|
|
|
|
|
| |
Drop explicit types for local implicit vals of type Context
and Position. Exercises the functionality and shortens the code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We interpolate a type variable if the current tree contains the type variables
binding tree. Previously, this was the application owning the variable. However,
sometimes this tree is transformed so that the containment test fails, and
type variables are instantiated too late (in the case of #1757 this was never).
We fix this by
- setting the binding tree to the type tree that first contains the type variable
- making sure that tree is never copied literally anywhere else.
It's a tricky dance, but I believe we got it right now.
|
|
|