| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | | |
Dealias TypeRefs that get applied to type arguments. Without that
precaution we get Stackoverflows in lookupRefined/betaReduce for
CollectionStrawMan5.scala.
|
| | |
| | |
| | |
| | | |
Need to drop the final `$' in both cases.
|
| | |
| | |
| | |
| | |
| | | |
Partial fix of #765. Hack to make sure unexpandedName
works for super accessor names.
|
| | |
| | |
| | |
| | |
| | | |
LambdaTraits are created on demand; we need to make sure
they exist when referred to from Tasty.
|
| | |
| | |
| | |
| | |
| | | |
1) Print RefinedTypes with their hashCode so that we can correlated with RefinedThis types
2) Fast abort of instantiate in case we have determined that it is not safe anyway
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
New CollectionStrawMan5, executed as runttest in two different ways:
- built with scalac, test compiled by dotty in tests/run.
- built with dotty, test compiled by dotty using separate compilation.
|
|\ \ \
| |_|/
|/| | |
Fix #1167: Reduce the magic in Arrays.newRefArray. Implement multidimensional arrays
|
| | | |
|
| | |
| | |
| | |
| | | |
https://github.com/lampepfl/dotty/pull/1188
|
| | |
| | |
| | |
| | | |
They need to be created through their class tag.
|
| | |
| | |
| | |
| | |
| | |
| | | |
This allowed to simplify the code in both Applications and tpd.newArray.
Now, only creation of generic arrays is handled by typer.
All other arrays are handled in ArrayConstructors phase.
|
| | |
| | |
| | |
| | |
| | | |
It's needed in order to create calls to newGenricArray
as it needs to infer the ClassTag.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
The problem comes from JavaArrayTypes.
They are invalid before erasure, and cannot be pickled,
while Array[T] is invalid after erasure and should be erased.
|
| | |
| | |
| | |
| | | |
That knows that there exists only single magical array method.
|
| | |
| | |
| | |
| | | |
It's done in a separate ArrayConstructors phase now.
|
| | |
| | |
| | |
| | |
| | | |
This one is able to encode creation of array of any type and any dimension.
Note, it does not handle value classes.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously, the method `Arrays.newRefArray` was one of the only 3
methods that are kept generic after erasure. This commit removes
this magic, by making it take an actual `j.l.Class[T]` as
parameter.
Moreover, the methods `newXArray` all receive an actual body,
implemented on top of Java reflection, which means that a back-end
does not *have to* special-case those methods for correctness.
It might still be required for performance, though, depending on
the back-end.
The JVM back-end is made non-optimal in this commit, precisely
because it does not specialize that method anymore. Doing so
requires modifying the fork of scalac that we use, which should
be done separately.
The JS back-end is adapted simply by doing nothing at all on any
of the newXArray methods. It will normally call the user-space
implementations which use reflection. The Scala.js optimizer will
inline and intrinsify the reflective calls, producing optimal
code, at the end of the day.
|
|/ / |
|
|\ \
| | |
| | | |
Ycheck that all methods have method type
|
| |/ |
|
|\ \
| | |
| | | |
Workaround for ScalaMeter incorrect report path
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The ScalaMeter issue is reported here:
https://github.com/scalameter/scalameter/pull/163/files
The issue exists both in v0.7 and v0.6. As dotty uses v0.6 now,
use this workaround until we upgrate to a new version of ScalaMeter.
|
|\ \ \
| | | |
| | | | |
Docs and polishing for denotation insertions
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Better organization and documentation for the way a symbol's denotations
are kept in a ring. This came out of a failed attempt to optimize by
adding a `prevInRun` field.
|
|\ \ \ \
| |_|_|/
|/| | | |
Fix Tasty errors
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
1) Move passing test to pickling
2) Add test case for #1212 in pending
3) Disable annotations/internal in pickling tests. They lead to a stable symbol error
which is explainable (modifiers are read before symbol is created).
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This leads to an infinite cycle when trying to unpickling, because
the modifiers and annotations of a symbol are read before the symbol
itself is created.
See #1212 for the general case.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Instead of separate source file sections, pickle SourceFile as an
annotation of all toplevel classes.
We represent it like this anyway when reading back Tasty-defined classes.
|
| | | |
| | | |
| | | |
| | | | |
This is the same as what Java does for its ClassFile attribute.
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Two problems were fixed:
- isJava needs to look at function symbol, not its type (references
to Java methods get normal MethodTypes not JavMethodTypes)
- we also need to handle the case where the repeated argument is
wrspped in a type ascription.
|
| | | |
| | | |
| | | |
| | | | |
SeqLiteral have an elemTpt, which was missing in format.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
ParamAccessor is not a pickled flag. This is not a problem for
normal parameter accessors which are pickled as PARAM fields. But setters
of parameter accessors also need to have the flag set (and Deferred reset).
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If a file was loaded from TASTY, it can not still have a non-null source file,
since the source file is unpickled into the annotation of a top-level class.
Also, fix typo in previous commit.
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
The previous path name always had a "Simple(...)" wrapped around it.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
`isTyper` is used to enable some error checking and handling, which
need not be done when in FromTasty.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
... of class parameters using the gadt mechanism. Previously they were encoded as aliases
by hardcoding alias bounds in the type parameter declaration, but that then leads to
weird behavior and failures in unpickling.
To make this work, we also need to propagate gadt bounds into the this-call context.
Test case in pickling/i1202a.scala.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously, those were inferred from arguments, but this is wrong
because we implicitly assume that the type parameters of the constructor
and the type parameters of the class are the same.
I could not find a test that fails for this. But if you look at the
-Xprint:front output of pos/i941.scala, you notice that the
inferred argument to the this(...) call was `Nothing` where
it should have been `A`.
|