| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Triggers cycles in ExtensionMethods.
|
|
|
|
| |
Fixes #476
|
| |
|
| |
|
|\
| |
| | |
Add stylechecking to test suite, fix style errors
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
counterexample.
TreeUnpickler: 494, rewriting to reduce/fold isn't equivalent. !exists(false) isn't easier to read.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
We use structural types in return values,
sometimes we override equals without overriding hashcode
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Commonly used in dotty syntax isn't respected by scalastyle:
```
if (...) bar
else if (...) foo
else foo
```
|
| |
| |
| |
| | |
In Dotty we frequently want to make method look like it returns a constructor, when it's actually not.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Dotty uses returns, nulls, and has methods with huge cyclomatic compexity
|
| | |
|
| | |
|
|/ |
|
|\
| |
| | |
Add/no double bindings
|
| |
| |
| |
| |
| |
| | |
The test introduced a double definition, which led to a double
binding. With -Yno-double-bindings this cauases an assertion violation
instead of a reported error.
|
| | |
|
|\|
| |
| | |
Fix #453, patternMatcher should use ==
|
| |
| |
| |
| |
| | |
Also, added comments to the tpd select methods that explain how the data race
could arise and how to avoid it.
|
| |
| |
| |
| |
| |
| |
| | |
This aligns with the "-" instead of CamelCase convention for
the other command line options.
Also, enable -Yno-double-bindings for dotc_core.
|
| | |
|
|\ \
| |/
|/| |
Drop the invalidate undefined companions code in restoreScopes
|
|/
|
|
|
| |
It is no longer needed because companion classes are now tracked with
companion$ methods. It also causes unncessary inner classes reads.
|
|\
| |
| | |
Fix/pickling
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Used to be "with fixed sym". Now it is: With initial symbol
as given in the serialized info.
It turns out the only previous uses of (TERM|TYPE)REFsymbol were
types that were made symbolic in self types. But exactly that caused
that problems in unpickling which we tried to workaround by changing
WithFixedSym#newLikeThis. And these fixes became less and less intuitive and
still could not solve the problem for good. Last hurdle was pickle-testing
all files in ast together.
It's much simpler to reserve (TERM|TYPE)REFsymbol for NamedTypes that have
an initial symbol. Like the previous "WithFixedSym" pickling, this avoids
inifinite recursions in pickling/extmethods.scala. But it also avoids problens
with unpickling ast/*.scala. The reason it is better is that it more accurately
models that types that exist before pickling.
This change also undoes previous changes to WithFixedSym#newlikeThis. Better to keep
the more restrictive contract for these.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Simplify fully applied #Apply projections before comparing trees.
Such projections are now (correctly) simplified on unpickling
but persist in the original tree before pickling.
The discrepancy was uncovered by the last commit.
|
| |
| |
| |
| |
| |
| | |
isAbstractType was wrong because it did not follow through SHARED aliases.
This was masked before 1b1fb6e5cf7df42000e378c628c8411bce952eb0 but uncovered
afterwards.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There was a spurious error when doing pickling tests with -YnoDoubleBindings
The test manifested itself when compiling `Trees` and `untpd`. The problem was
a sourious double assignment to the `untpd$` TypeRef. The problem was that
the old `untpd` symbol did get a runId of 3, because it was looked at immediately
before being overritten with the new symbol. So the system detected a race condition.
The new test looks at the denotations previous run id instead of the symbol's when
setting a denotation. That runId was still 2, so not real double binding occurred.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The symbol might be overridden, in which case the overriding
symbol should be chosen.
This was observered when trying to pickle test all of ast.
Compiling Trees and untpd together gave discrepancies involving
`untpd.dotty$tools$dotc$ast$Trees$$Instance$$T`. It was
found that the symbol referred to by that type refers
to the abstract type in Trees.Instance, not the alias in
untpd. The bad type was produced by an asSeenFrom of the
`WithFixedSym` type
`Instance.this.untpd.dotty$tools$dotc$ast$Trees$$Instance$$T`
as seen from `untpd`. The as seen from did not pick the new
instance in `untpd`.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Do a normalizeClassRef immediately after parents are read. Not clear
whether this chanegs anything, but it's the prudent thing to do since
Namer behaves the same way.
The danger would be that between reading parents and normalizing refs
someone refers to an overridden param and gets the wrong type.
|
| | |
|
| |
| |
| |
| | |
For classes rhsIsEmpty is true, but they should not be Deferred.
|