| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
This PR investigates what it takes to extend CollectionStrawMan5 to
arrays.
|
|\
| |
| | |
Fix #1385: Temporarily lift 22 limit for functions
|
| | |
|
|/ |
|
|\
| |
| | |
Fix #1401: Make sure all references are forwarded
|
| |
| |
| |
| |
| | |
Make treatment in Scala2Unpickler and Namer the same and factor
out common functionality.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Faced with recursive dependencies through self types, we might have
to apply `normalizeToClassRefs` to a class P with a parent that is not
yet initialized (witnessed by P's parents being Nil). In that case
we should still execute forwardRefs on P, but we have to
wait in a suspension until P is initialized.
This avoids the problem raised in #1401. I am still not quite sure
why forwardRefs is needed, but it seems that asSeenFrom alone is not
enough to track the dependencies in this case.
|
|/
|
|
|
| |
- increase page width
- print scopes more legibly under -verbose
|
|\
| |
| | |
Fix #1378: Propagate more knowledge of result type into applications
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Interestingly, adding
mutable.BufferLike
to the whitelist succeeds under junit but fails under partest. Unfortunately I can't see
any output in the log indicating what went wrong. I only see this:
!! 306 - pos/compileStdLib [compilation failed]
# Failed test paths (this command will update checkfiles)
test/partest --update-check \
/Users/odersky/workspace/dotty/tests/partest-generated/pos/compileStdLib
|
| |
| |
| |
| | |
This should have been done in a PR that was merged before.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
If an application has functions with implicit parameter types we need to be
more aggressive about propagating knowledge of the expected result type into
the constraint.
Fixes #1378.
|
| |
| |
| |
| | |
As observed by @smarter, makes sense to do this.
|
| |
| |
| |
| | |
Error messages were suppressed so far, now get printed.
|
|\ \
| | |
| | | |
Make -Xprint-diff an opt-in option.
|
|/ /
| |
| |
| |
| |
| | |
* -Xprint:[...] alone prints the trees without diffs.
* -Xprint-diff enables the diff on -Xprint.
* -Xprint-diff-del enables the diff with deletes on -Xprint.
|
|\ \
| | |
| | | |
Fix wildcard protos
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| |/ /
|/| | |
HK reduction: Remove special-case for typerefs
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The special case:
case stripped: TypeRef =>
stripped.symbol.is(BaseTypeArg)
is wrong because you might still want to reduce applications involving
TypeRefs which are not base class parameters, like in:
class Foo[A]
type Alias[X] = Foo[X]
val x: Alias[Int] = ???
`Alias` is a TypeRef so before this commit `Alias[Int]` was never reduced
to `Foo[Int]`. It should have been:
case stripped: TypeRef if stripped.symbol.is(BaseTypeArg) =>
true
But even this is incorrect: it assumes that we can always safely reduce HK
applications involving base class parameters, this is not the case when
the parameter kind is different from the rhs kind as illustrated by
`i1181c.scala`. We fix this by simply dropping the special case.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Now that we implement partial higher-order unification (SI-2712 fix)
i1181.scala will compile even if `Alias[Int]` gets dealiased to
`(Int, Int)` because we can unify the latter with `M[_]` where
`M = [X] -> (Int, X)`.
The new test will only succeed if `Alias[Int, Int]` is not dealiased
because we will never unify `Foo[Int]` with `M[_,_]`.
|
|\ \ \
| | | |
| | | | |
Fix #1386: Reduce double def errors
|
| | | |
| | | |
| | | |
| | | | |
mergeDenot is already large as it is.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Use additional disambiguation criteria before raising a double def error.
See for context: #1240.
Review by @darkdimius
|
|\ \ \ \
| | | | |
| | | | | |
Fix typing of match expressions
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Also fix reviewers comments about `firstParent`
|
| | |_|/
| |/| |
| | | |
| | | |
| | | | |
Allow matches between unapply types and selector type where a possible
overlap might exist.
|
|\ \ \ \
| |_|_|/
|/| | | |
Changes to overloading
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Adds the original test form #1381. t2660 looks similar.
Also adds some unrelated tests I had in the queue that now
compile.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Fix #1381: Overloading is now changed so that we first try without implicit searches.
Only if that leaves no applicable alternatives we try again with implicit search turned on.
This also fixes test case t2660, which got moved from neg to pos.
|
|\ \ \ \
| |_|/ /
|/| | | |
Improve Xprint
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | | |
* Do not reprint a tree that has not changed.
* Highlight changes with yellow and insertions in green.
* -Xprint-diff-del: Inserts the deleted parts of the tree in red
and the parts that where changed in magenta.
|
|\ \ \
| | | |
| | | | |
Fix 1365: Fix bindings in patterns
|
| | | |
| | | |
| | | |
| | | | |
The dropped lines were both pure functions whose result is ignored.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We need to compare pattern types with expected types in order
to derive knowledge about pattern-bound variables. This is done
use the mechanism of gadt bounds.
|
|\ \ \ \
| | | | |
| | | | | |
Add scala.Dynamic support.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
Implement -Yno-predef and -Yno-imports
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* Implement flags -Yno-predef and -Yno-imports
* Add unit tests for both
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Direct representation of higher-kinded types
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Enable checking of bounds when comparing type lambdas. This invalidates
a pattern used in t2994 and potentially other code, where a bound [X] -> Any
is used as a template that is a legal supertype of all other bounds. The old
behavior is still available under language:Scala2.
|