| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Moved some working test to pos. I wonder why they were in pending? They did work for me.
|
| |
|
|
|
|
| |
tests/untried/pos
|
| |
|
|
|
|
|
|
|
|
|
| |
Another problem where we need to insert an implicit on the result type of complex operation.
Two additions: (1) If adapt fails, we now try with a weaker FunProto without result type, thus
allowing for an additional implicit cpmversion on the result. (2) An Application in a committable
context will not fail if the result type does not match the expected one. The problem will be
simply deferred in that case.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ported tailcall phase from scalac with such changes:
- all transformation is done in the phase itself
(previously half of the work was done in backend)
- it is now able to run before uncurry
- it is now a treeTransform
- renamed to tailrec to make it more obvious that
this phase transforms only recursive calls.
For now this is a single phase which speculatively
transforms DefDefs.
Speculation can be potentially removed by
splitting into 2 phases:
one detecting which methods should be transformed
second performing transformation.
But, as transformation requires as same amount of work
as detection, I believe it will be simpler to maintain
it as a single phase.
Conflicts:
tests/pos/typers.scala
|
|
|
|
|
|
|
| |
Replace member references for:
methods inside Any( == and !=)
## on primitives
.getClass on primitives
|
|
|
|
| |
Mostly Java interop tests which are not yet supported. The test infrastructure for Java ocmpilation and the java parser from Scala are still missing.
|
| |
|
|
|
|
| |
Need to do unit discarding also in selection prototypes.
|
|
|
|
| |
Needed an extra case in isSubType.
|
|
|
|
| |
type T was not recorgnized as a SAM type because a case was missing in zeroParamClass.
|
|
|
|
| |
which all pass.
|
|
|
|
|
|
|
|
|
| |
Was previously wrapped in a
package <empty>
but the resulting tree had no position, which caused a Typer assertion. If now
represented as EmptyTree.
|
|
|
|
|
|
|
| |
Previously, only implicit method types were eligible as views. This is too strict,
as it rules out view bounds. We now also consider types that derive from Function1.
The reason for not allowing any type is that this would cause us to check many more
types for applicability when an implicit view is searched.
|
|
|
|
|
|
| |
Added more tests which all pass, except for tests in disabled and pending.
t0694 went from pos to neg, because the kind of alias type used in t0695 is no longer supported.
|
|
|
|
| |
A debug assertion in implicitSearch gave a false alarm and was removed.
|
|
|
|
| |
_root_ is now entered into an enclosing context.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two fixes were needed
1) When typing a function value (x1: T1, ..., xN: Tn) => e, don't unconditionally issue an error
if the expected function type arity is different from N. Instead, issue an error only
if one of the types T1, ..., Tn is absent. The idea is that only then we need to
consult the expected type for the parameter type. This allows to fix the problem later
by an implicit conversion applied to the function value.
2) When eta-expanding, do not automtically take the arity of the expected function value as the
arity of the generated lambda. Instead, take the method's arity, and copy method parameters
into the lambda in case the arities are different.
|
|
|
|
|
|
|
|
| |
Test t0288 moved to disabled due to lack of Java interop.
Test t0273 fixed by relaxing double def condition: We only regard two
definitions that define the same name and have exactly the same signature
as double definitions. Previously, signatures that defined the same parameters
were also excluded.
|
|
|
|
| |
for constructors) to tests/untried/pos
|
|
with explicit Unit return type
|