| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
- Remove unused classes Pair and Singleton.
- Move classes from dotty.annotation.internal
to scala.annotation.internal.
The only classes remaining now are in dotty.runtime
and DottyPredef. We should probably do something about them
as well at some point.
|
|
|
|
|
|
|
|
|
| |
The `scalaShadowing` package is used to safely modify classes and
objects in scala so that they can be used from dotty. They will
be visible as members of the `scala` package, replacing any objects
or classes with the same name. But their binary artifacts are
in `scalaShadowing` so they don't clash with the same-named `scala`
members at runtime.
|
|\
| |
| | |
Fix #1576: Parameters of Java annotations should be public
|
| |
| |
| |
| |
| | |
Parameters of annotation classes parsed by the Java parser should
have public val parameters. Otherwise they cannot be accessed as fields.
|
|\ \
| | |
| | | |
Fix #1567: Widen private constructor in value class
|
| |/
| |
| |
| |
| |
| |
| |
| | |
Private or protected constructors of value classes need to be widenened
to public in order to enable boxing anywhere.
Technically we should also do something about qualified private constructors, but since we
want to get rid of them anyway it's urgent.
|
| | |
|
|\ \
| | |
| | | |
Fix #1590: Eliminate wildcards when approximating a type
|
| | | |
|
| |/
| |
| |
| |
| | |
Fixes #1590. Type variables should never be instantiated to types
containing wildcards.
|
|\ \
| | |
| | | |
Fix #1544: Allow long signatures in names
|
| | |
| | |
| | |
| | |
| | | |
Fixes #1544 by making the length field use 1 or 2 bytes,
depending on the number of parameters in a signature.
|
| | | |
|
|\ \ \
| | | |
| | | | |
Fix #1540: overloaded get and isDefined in option-less patmat
|
| | | | |
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Fix #1515: Don't narrow gadt bounds when frozen
|
| |/ / /
| | | |
| | | |
| | | | |
Fixes #1515. Review by @smarter.
|
|\ \ \ \
| | | | |
| | | | | |
Fix #1531: Ignore private members when looking for abstract ones
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Private members do not override abstract ones. So when looking for
abstract members we need to search with `nonPrivateMember`, not
`member`.
Fixes #1531. Review by @smarter.
|
|\ \ \ \
| |/ / /
|/| | | |
Typer#escapingRefs: don't let the types of lower bounds escape
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In 0efa171e8ccca0d49fc6d800fd21e29f7b7336fd I changed the definition of
NamedPartsAccumulator to exclude lower bounds as this is required for the
implicit search, but NamedPartsAccumulator is also used by
Typer#escapingRefs so in the following code:
class Foo[T]
val z = {
class C
??? : Foo[_ >: C]
}
the type of z was inferred to be Foo[_ >: C] instead of Foo.
To avoid this, NamedPartsAccumulator will only exclude lower bounds if
the parameter excludeLowerBounds is explicitely set to true.
No test because there is no way to detect that a type has escaped, this
might be something that could be added to TreeChecker.
|
|\ \ \ \
| | | | |
| | | | | |
Small fixes to some warnings/comment typos
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
The warning is invalid but Scalac can't tell.
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix #1543: Ignore IgnoredProto when normalizing method application.
|
| | | | | | |
|
|\ \ \ \ \ \
| |_|_|_|_|/
|/| | | | | |
Fix erasure of "def foo[T]: Unit", do not box the return type
|
| | | | | | |
|
| | | | | | |
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
Fix #1552: REPL file loading
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
If PolyTypes are to become value types we want to keep `=>` as the arrow
for consistency. `->` should be reserved for PolyTypes that do not have
side effects on instantiation.
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The refactored logic only applies to infos of denotations, not
general types. The reactoring avoids special cases down the road
then PolyTypes and MethodTypes can be used for terms as well as
type(bounds).
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Otherwise we can run into problems when checking imports for e.g.
scala2Mode in later runs.
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
to account for the fact the GenericTypes are now TypeProxies.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Let them inherit the same traits and push as much
functionality as possibly into the common superclass
GenericType.
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Test case: orInf.scala. This showed a problem where an `either` operation
had to arbitrarily pick one constraint over another, leading to a type
error down the line. What happened was that a `constrainResult` generated
the constraint
Set[A] <: Set[String] | Set[Int]
But this constraint cannot be simplified without a cut and a resulting
loss of information. We avoid the problem by not constraining the result
if the prototype is a disjunction.
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This happened for singletonOrs, and led to spurious errors there.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
For the moment, we do not know how to handle something like
1 | 2
or
x.type | y.type
correctly. So it's better to disallow these situations until we find a proper
solution.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Splitting or types is no longer needed with new scheme.
Replacing idents with This nodes is better done in ExplicitSelf.
So splitter now just distributes applications into and ifs.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Makes sure the symbol in the tree can be approximately reconstructed by
calling member on the qualifier type.
Approximately means: The two symbols might be different but one still overrides
the other.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
In fact all of dotty.language can be removed.
|