| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Used to throw an uncaught merge error in checkAllOverrides
when compiling i1240c.scala.
|
|
|
|
|
|
| |
Now verifies that the named type parameters of an overriding
type or class are the same as the named type parameters of
an overridden type.
|
| |
|
|
|
|
|
| |
1. Add errors in case of incorrect parameter;
2. Improvement to error message if value class is defined as a local class;
|
| |
|
| |
|
| |
|
|
|
|
| |
This is needed to freeze the constraint.
|
|
|
|
| |
Closes #241 -- that took a while!
|
|
|
|
|
|
|
|
| |
Generalize overriding checking from isDefined
to all methods added by desugar to a case class.
None of these methods has an override so we
need to add one in case they do override another method
(previously we would flag this as an error).
|
|
|
|
|
|
| |
We do not allow same-named class members in supertraits
of a mixin composition anymore. This commit gives a
better error message and avoids a crash in RefChecks.
|
|
|
|
|
| |
isDefined is now always auto-generated for case classes. It need to get an automatic override
if there is a version that's inherited.
|
|
|
|
|
|
|
| |
1) Matching after erasure also takes wildcards into account
(before it didn't).
2) Combine all signature matching operations into a single matchDegree method.
|
|
|
|
|
|
|
|
| |
What is checked: A self type T is a subtype of all
selftypes of classes refernced by T. That is, a self type
has to subsume all self types of its required type. Ot,
otherwise said, requirements must be closed; you cannot
discover new ones in following them.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to SIP 15 a value class C must obey the following restrictions:
C may not have secondary constructors.
C may not declare fields (other than the parameter of a value class).
C may not contain object definitions.
C may not have initialization statements.
These are enforced by this commit. We are still missing restrictions on
value class paremeters. We should review what the right set of conditions
is (probably we want to admit non-vals, and maybe even multiple
parameters).
|
| |
|
|
|
|
|
| |
So far no error was raised for illegal inheritance
from final or sealed classes.
|
|
|
|
|
|
|
|
|
|
|
| |
Trying to diagnose failure of t2503 and t5577 which were moved
to disabled in the time the tests did not work. These failed
locally for me, but the checkin tests succeeded (since the checkin
tests tested something else).
Added better diagnostics to RefChecks which now mention candidate
implementations of missing abstract members that have the right name but
not the right type.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A late miniphase which resets private flag of all
members that are not accessed from within same class.
Replaces logic in RefChecks. Doing this late has two
advantages
- we can use name expansion, because references are
symbolic, so the names of symbols and references
to them do not need to correspond anymore.
- we can automatically correct for symbols moved in earlier
phases (e.g. lifted out by LambdaLift).
|
|
|
|
|
|
| |
Logic moved from RefChecks to Mixin; implementation
is now by name expansion instead of setting NotJavaPrivate
flag.
|
|
|
|
| |
Done in the interest of slimming down and modularizing SuperAccessors.
|
|
|
|
| |
Check that the self type of a class conforms to the self types of its parent classes.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Now the default phase of treeTransformPhase is phase.next, we
can remove all overrides that specify the same phase.
|
| |
|
|
|
|
| |
The bug caused new version of FirstTransform to compile with errors.
|
|
|
|
|
| |
Somehow this was lost in porting (or was this done somewhere else
in scalac?).
|
|
|
|
| |
`override` was not recognized at all on types.
|
|
|
|
|
|
|
| |
These may raise real errors, so we cannot exclude them from
overriding pairs a priori. But we can avoid reporting any
errors if other override errors were reported previously for
the same class.
|
|
|
|
|
|
|
|
| |
OverridingPairs had several bugs which caused pairs to be lost, which caused
missing overrides checks. Fixing OverridingPairs revealed several test failures
(and a problem in Synthetics generation which was fixed in the last commit).
Tests that became negative are all moved into neg/overrides.scala, and the
original versions in pos were fixed.
|
|
|
|
| |
refchecks
|
| |
|
|
|
|
|
| |
Refchecks now makes all members not-private that need it. This is done by
setting flag NotJavaPrivate. No name change is involved.
|
|
|
|
|
| |
Most transformations are subclasses of phase. Having a generic name
like `name` in scope everywhere is therefore very risky.
|
|
|
|
| |
RefChecks is now enabled. Some of the tests had to be fixed to be refchecks-correct.
|
|
|
|
| |
RefChecks needs both methods.
|
|
|
|
|
|
|
|
| |
TreeTransforms are no longer phases. This allows to generate
new transforms in prepare... methods without running into the
problem that thee new transforms are undefined as phases.
It also makes for a cleaner separation of concerns.
|
|
This is still disabled, because the prepare machinery in transform
does not work yet. Concretely, prepare ops need to return a new TreeTransform
but that tree transform has an undefined phaase id.
We need some architectural changes to disentangle transforms from phases.
|