| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|\
| |
| | |
Set the scene for phase 1 of the new trait encoding.
|
| |
| |
| |
| |
| |
| | |
Comment about my poor naming choice in Types.
NullaryMethodType sounds like the method has one empty argument list,
whereas it really has no argument lists at all.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
sbt's [API extraction phase](https://github.com/sbt/sbt/blob/0.13/compile/interface/src/main/scala/xsbt/API.scala#L25)
extends `scala.reflect.internal.Phase`, which implements a bunch of methods,
such as `erasedTypes` as `false`, which are then overridden by scalac
in `GlobalPhase` (nested in scala.tools.nsc.Global).
(`erasedTypes` in particular is again overridden in the back-end -- for performance?)
However, since sbt's compiler phases extend `reflect.internal.Phase`,
the logic for detecting the current phase does not work,
as the default implementation is called (simply returning `false`),
when chasing the `prev` pointers hits an sbt-injected phase,
as its implementation is `reflect.internal`'s constant `false`.
|
| |
| |
| |
| |
| | |
This logic was scattered all over the hierarchy,
even though it's only needed in one spot, and is unlikely to evolve.
|
| |
| |
| |
| | |
A tiny bit more duplicated code, but so much more intelligible.
|
| |
| |
| |
| |
| | |
Keep owner for module (symbol of the tree) and module class (holds the members)
in synch while moving trees between owners (e.g., while duplicating them in specialization)
|
| |
| |
| |
| |
| |
| | |
Discovered while refactoring the way fields are emitted in traits.
TODO: a lot more cleanup
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The goal is to reduce noise by sorting fields & methods,
suppressing debug & frame info.
This class can be used as a git textconf for classfiles with a script like:
```
scala scala.tools.nsc.backend.jvm.AsmUtils "$1"
```
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Triggered by sjrd's review, it turns out that we
forgot to unlink the symbol for omittable ValDefs.
I left the fix in a comment in the margin, since
this commit is meant to be bytecode-compatible.
|
| |
| |
| |
| |
| | |
Move conditions and template derivation back to the
call sites of `staticConstructor` (formerly `addStaticInits`).
|
| |
| |
| |
| |
| | |
Codify the scope of mutability for various buffers,
inline one-time methods, further reduce spooky action at a distance.
|
| |
| |
| |
| |
| | |
When we change the encoding of fields in traits,
this will come in handy...
|
| |
| |
| |
| |
| |
| | |
Limit communication between traits using ConstructorTransformerBase interface.
Make Constructors a bit less of a test case for itself,
by making a bunch of fields local variables of the `transformed` method.
|
|\ \
| | |
| | | |
SI-9178 Don't eta expand to an Function0-like SAM expected type
|
| | |
| | |
| | |
| | |
| | |
| | | |
Otherwise, we can end up with a subtle source incompatibility with
the pre-SAM regime. Arguably we should phase out eta expansion to
Function0 as well, but I'll leave that for another day.
|
|\ \ \
| | | |
| | | | |
SI-6162 Make @deprecated{Inheritance,Overriding} public
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It was kept private first with the expectation that further modifier
changes might warrant a more extensible design.
Until now, there doesn't seem to have appeared other interesting
use-cases that warranted a design overhaul.
This commit makes the existing annotations public to allow all Scala
developers to benefit from it.
|
|\ \ \ \
| | | | |
| | | | | |
Remove ThreadPoolExecutor fallback in ExecutionContextImpl
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The method createDefaultExecutorService had a fallback if the creation
of a ForkJoinPool didn't succeed. This was necessary, because Scala
shipped its own version of FJP, and the dependency on sun.misc.Unsafe
(which is not an "offical" official API) made portability slightly
questionable.
Now that we can assume that FJP is supplied by the JDK, this concern
goes away.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-9545 SyncVar doc and deboxing
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Don't store the wrapped value double-wrapped in Option.
Also burnish some more docs.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
It used to have javish semantics, but now is what it is.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
SI-7566 Remove some private, deprecated remnants from scala-actors
|
| | |/ / / /
| |/| | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
WrapAsScala: Fix documentation
|
| | |/ / / /
| |/| | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
SI-9555 Refactor SystemProperties to avoid mutable map
|
| | |_|_|_|/
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
A mutable map with help text was lazy populated if and when
lazy vals containing `BooleanProp` for a particular system was
initialized.
Reviewing this code, I noticed two problems: the class doesn't appear
to be designed for multithreaded access (e.g. someone could call
`help` while the map is being updated.), and the help method
won't return anything until the vals below are accessed for
the first time.
We don't use the help method anywhere else, but kept it around
in the unlikely event it was being used by some other tool.
I've done away with the mutable map by just moving the help messages
into a match in the help method itself.
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
for 2.12, bump JDK version (6 -> 8) in IntelliJ sample config
|
| | | | | | |
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
Remove ICode (re-submission)
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
All class internal names that are referenced from a class being
compiled should be referenced through their ClassBType. This makes
sure that the ClassBType is cached in `classBTypeFromInternalName`,
which is required during classfile writing: when ASM computes stack
map frames, we need to answer subtyping queries, for which we need
to look up the ClassBTypes.
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The only pieces of ICodes that were still used
- An enum representing bytecode comparisons, re-implemented
- The `icodes.IClass` class, which remains for sbt compatibility
(https://github.com/scala/scala/pull/4588)
|
| | | | | | |
|
| |/ / / / |
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Repaired the alphabetical sorting of standards set
|
| | |/ /
| |/| | |
|
|\ \ \ \
| |/ / /
|/| | | |
Remove GenASM
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
With GenBCode being the default and only supported backend for Java 8,
we can get rid of GenASM.
This commit also fixes/migrates/moves to pending/deletes tests which
depended on GenASM before.
|
|\ \ \
| | | |
| | | | |
Add Extractor and apply Method for SoftReference
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
scala.ref.WeakReference has two features which are lacking in
scala.ref.SoftReference, an extractor and
a .apply method that greatly enhance the usability of
that class. This commit simply replicates that functionality for
SoftReference.
|
|\ \ \ \
| | | | |
| | | | | |
SI-9527 Fix NPE in ambiguous implicit error generation
|