| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Here we unlink the existing type that clashes with the package to be
entered into the symbol table, issue an error and the proceed to enter
the rest of the symbols.
My concern with this approach is what happens during typechecking
if other things reference the unlinked type.
|
|\ \ \
| | | |
| | | | |
fix #1701: disqualify package name in type name resolution
|
| | | | |
|
| | | | |
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
Fix #1703
|
| | | | |
|
|\| | |
| |/ /
|/| | |
Don't allow redefinition of core classes
|
| |/
| |
| |
| | |
Fixes #1688.
|
|\ \
| | |
| | | |
Fix #1653: Check "no inherit from final" earlier.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
After refactoring, one test (cannot extend final class) shadowed the others,
which wer done in a later phase.
Splitting in two to get all errors again.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The test case is an illegal inheritance from a primitive value class,
which makes this an illegal value class. Previously, the error was
detected by refchecks, but crashes occured earlier (when generating
synthesized methods) or at the same phase block (in extension methods).
The problem is avoided by moving the test to Namer.
Review by @smarter.
|
| |/
|/|
| |
| |
| |
| | |
Have to handle also SkolemTypes there.
Fixes #1662.
|
| |
| |
| |
| | |
This issue was solved by some other fix.
|
| | |
|
|\ \
| | |
| | | |
Fix #1640: Avoid applications with untyped function parts
|
| | |
| | |
| | |
| | |
| | | |
#1641 compiles under latest master. This test case is there to ensure
it stays that way.
|
| |/
| |
| |
| |
| | |
Avoid applications with untyped function parts even if program is erroneous.
Taking the symbol fails for these applications, which can cause crashes.
|
|/
|
|
|
|
| |
These might lead to bad bounds if unchecked.
Scalac disallows them also, but with a confusing error message
("class type expected" on the class).
|
|
|
|
| |
Should be a neg test now.
|
|
|
|
| |
This commit also fixes #1583.
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- allow inline as an alternative to final for vals
(final is retained for backwards compatibility for now)
- allow inline for parameters
- check that rhs of inline value has a constant type
- check that arguments to inline value parameters have constant type
- check that inline members are not deferred
- make inline members effectively final
|
| |
|
|
|
|
|
|
|
| |
Accessors were multiply generated under separate compilation.
To fix this, the resident body of an inlined function is now
the same as the inlined body. Both use accessors where necessary.
Previously, only the inlined body used accessors.
|
|
|
|
|
|
|
| |
`inline` is now a modifier keyword. To keep disruption tolerable,
we still allow `@inline` as an annotation as well. Other uses of
`inline` are supported only under `-language:Scala2` and are rewritten
to identifiers in backticks.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Drop @dotty.annotation.inline. This will inline all
@inline marked methods in Scala for which a body is known
(i.e. that are either compiled in the same run or have Tasty
trees available).
Option -Yno-inline suppresses inlining. This is needed for
the moment because some @inline methods access private members
or members that are otherwise inaccessible at the call-site.
Also fixes some problems in Inliner
- make sure type arguments to inline calls re fully defined
- don't forget recursive calls in typeMap
- don't forget positions in treeMap
- drop dead code dealing with outer.
|
| |
|
|
|
|
|
| |
pos/power inlines with alomst no extraneous boilerplate.
neg/power gives an error that maximal numbers of inlines was exceeded.
|
|
|
|
|
| |
To be done: outer accessors
To be done: error positions
|
|
|
|
|
|
| |
`apply` nodes should not be inserted in the result parts
of a block, if-then-else, match, or try. Instead they should
be added to the surrounding statement.
|
|\
| |
| | |
Fixes for scala.Dynamic
|
| | |
|
| | |
|
|/ |
|
| |
|
| |
|
|\
| |
| | |
Fix #1444: Pass implicits to parameterless traits if needed
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
If a super trait is given as a type (i.e. no argument list), implicit args were
not passed. This is fixed now. Also, we now check for parameterized traits lacking
type arguments in Typer instead of in Mixin.
Fixes #1444.
|
| |
| |
| |
| | |
Needed because the test is also run in neg wihtout command line option.
|
|/
|
|
|
|
|
|
|
|
| |
There's a nasty interaction with auto-tupling and trying to insert an implicit
on the qualifier of a call. If the original call fails, we need to "undo" any
auto-tupling decisions in calls where an implicit is inserted on the qualifier.
Also: Needed to fix canAutoTuple test so that Scala2 feature is checked instead of dotty's.
Also: Drop features in dotty.language that duplicate those in scala.language.
|
|
|
|
| |
Turn assertion into test. Without this, neg/tcpoly_overloaded.scala fails.
|
|
|
|
|
|
| |
Roll `sm` and `i` into one interpolator (also called `i`)
Evolve `d` to `em` interpolator (for error messages)
New interpolator `ex` with more explanations, replaces disambiguation.
|
|
|
|
| |
Remove debug info from error message.
|
|
|
|
|
|
|
|
| |
Interpolating typevars that appear co- or contra-variantly in a type
is a cleanup measure - it helps keep the constraint set small. However,
if there are uneported errors, some of these errors might report on
unsatisfiable constraints for these type variables. In that case, instantiating
the type variables risks being confusing.
|