| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
removed a redundant var in JavaWriter.flagsToStr
|
| |
| |
| | |
the variable x was assigned to, but was never used.
|
|\ \
| | |
| | | |
SI-7236 Deprecate ThreadPoolTaskSupport and friends
|
| | | |
|
|\ \ \
| | | |
| | | | |
SI-5513: add inplace set-theoretic operations for mutable bitsets.
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Optimize RedBlackTree rebalance method by using null optimized list implementation.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
rebalance method relies heavily on s.c.i.List. By replacing List with null
optimized version, NList, rebalance operation is significantly more faster.
Test indicate +10 % performance improvement for tree sizes >= 100.
Existing tests verify red-black tree invariants, including operations
involving tree rebalance.
|
|\ \ \ \ \
| |_|_|_|/
|/| | | | |
SI-7247, deprecate NotNull.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This was a little trickier than the previous. I introduced
a new method 'isBottomSubClass' which is the obvious complement
to the beloved 'isNonBottomSubClass'. In eliminating the two
call sites of containsNull I might have overshot the mark a
bit when I rewrote fourthTry and thirdTryRef, but who is going
to argue with such beauty as this.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Restarted the Zamboni and collected these as well.
Author was convinced by reviewer that clinging to
isNotNull like Linus's security blanket will not
help us with landing a picture of the Great Pumpkin.
YAGNI, Charlie Brown.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Removed NotNull from tests and the parentage of AnyVal.
Removed the tests which were actually testing anything to
do with NotNull; massaged the others to forget NotNull and/or
not to name local things NotNull.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Maybe this was useful in some way; but no way I ever saw.
I have comments which tell me this is exposed in the IDE so
I left a stub.
I also removed mkCheckInit. That probably sounds like it's related
to -Xcheckinit. Guess again, guy-who-thinks-names-mean-things. It
was only used by -Xcheck-null.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It never worked and it would periodically jump out and bite
someone. Slash and burn so new plants can take root. Eliminated
NotNullType and NotNullClass, internal elements. Removed notNull
method on Type, which no longer has a purpose. Retained 'def
isNotNull' because there are types which are known by construction
not to be null (ThisType, ConstantType as long as the constant
isn't null, etc.) and that's still useful to know.
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
Analyze constants to remove unnecessary branches
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This commit cleans up constant optimization from the review of
https://github.com/scala/scala/pull/2214 .
* drops are done using the instruction's consumed count rather than a
numeric literal
* drops are moved into one common method in the main instruction
interpreter
* One instance of x.length > y.length is replaced with
x.lengthCompare(y.length) > 0
* NaN is dealt with by treating it as an UNKNOWN
* A test is added to make sure NaN semantics aren't broken.
* The constant-optmization test is improved with tests for switch
statements
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This commit adds analysis and optimization of constants to remove
unnecessary branches. It uses abstract interpretation to determine
what constant(s) a particular stack slot or variable might or might not
hold at a given spot and uses that knowledge to eliminate branches that
cannot be taken. Its primary goal is null check removal, but it also
works for other constants.
Several tests are modified to include the new optimization phase.
Two new tests are added. One verifies that branching still works as
expected. The other verifies that branches are removed.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Restore sketchy dependency to quick.bin.
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Apparently we cannot run at all without the continuations
classes on the classpath. At least that it was I conclude
from the fact that quick/bin/scala hasn't worked since
I routed the plugin classes into continuations-library.
This restores them to quick's classpath so we can have
qscala again.
|
|\ \ \ \ \
| |_|_|_|/
|/| | | | |
SI-7228, bug in subtyping.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Diligent reviewer observed that a hot spot was possibly
being made hotter. Reviewer's suggested remedy was a
spectacular bust, but studious observation revealed the news
lash that expensive methods are expensive and we should
avoid calling them if we can.
Put short-circuit test back in front of unapply call.
Now the time spent in unapply is within a few percent.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Fixed bug in numeric widening related to continuations,
which enabled simplifying isNumericSubType.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Should speak for itself.
Whenever someone changed @switch from an error to a warning,
it broke all the tests which depended on the error. I added
-Xfatal-warnings to a couple which needed it. And one of those
tests was then failing, as it must now since we couldn't get away
with what was being attempted, so I moved it to pending.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Another in the category of bugs which involve narrowing,
widening, mediuming, dealiasing, weakening, normalizing,
denormalizing, supernormalizing, subnormalizing, and
double-bounded supersubnormalizing.
This is probably not the ideal fix, but it is an improvement.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Merge 2.10.x into master
|
| |\ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Conflicts:
src/compiler/scala/reflect/reify/Errors.scala
src/compiler/scala/tools/nsc/typechecker/NamesDefaults.scala
|
| | |\ \ \ \ \
| | | | | | | |
| | | | | | | | |
SI-7328 Bail out of names/defaults when args are error typed
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
To avoid a crasher later on with a null type inside a
sequence argument.
|
| | |\ \ \ \ \ \
| | | | | | | | |
| | | | | | | | | |
SI-7234 Make named args play nice with dep. method types
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
Some care is needed to avoid interaction with constant
types (e.g pos/z1730.scala) and with existentials
(e.g. t3507-old.scala).
|
| | |\ \ \ \ \ \ \
| | | | | | | | | |
| | | | | | | | | | |
SI-5710 has fixed itself
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
My job here is only to submit tests.
|
| | |\ \ \ \ \ \ \ \
| | | | | | | | | | |
| | | | | | | | | | | |
reifier is now aware of SI-7235
|
| | | |/ / / / / / /
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
SI-7235 is caused by a long-standing todo in typedRefinement, which leads
to originals of compound type trees swallowing their stats.
I'm not sure how exactly to fix SI-7235, but what I am sure about is that
we shouldn't silently discard stats during reification. This patch
introduces a new implementation restrictions, which now reports that
reify of compound type trees with non-empty stats isn't going to work.
|
| | |\ \ \ \ \ \ \ \
| | | |_|_|/ / / / /
| | |/| | | | | | | |
SI-7226 Fix inference regression caused by TypeVar equality
|
| | |/ / / / / / /
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
TypeVars, being mutable creatures, mustn't have structural
equality/hashing, otherwise TypeRefs that differ only by
having distinct TypeVars as components get wrongly uniqued
together.
The reported bug showed the disaterous consequences: constraints
from the `C?[Int]` in the return type applied to the `?C[?A]` in
the parameter list.
This commit overrides `equals` and `hashCode` in `TypeVar`
to use reference equality. An alternative fix would be to drop
the `case`-ness of the class, as was the case before 0cde930b
when this regressed.
|
| | |\ \ \ \ \ \ \
| | | |_|/ / / / /
| | |/| | | | | | |
Fix SI-7224.
|
| |\ \ \ \ \ \ \ \
| | | |/ / / / / /
| | |/| | | | | |
| | | | | | | | |
| | | | | | | | | |
Conflicts:
src/compiler/scala/tools/nsc/typechecker/Typers.scala
|
| | |/ / / / / /
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Don't focus positions assigned to the TypeTree of a parent of a Template
when the parent exists in the source. A focused position (instance
of `OffsetPosition`) makes it invisible to the presentation compiler
when it looks for the innermost enclosing tree of a given position
(breaking hyperlinking, for example).
|
|\ \ \ \ \ \ \ \
| |_|_|_|_|_|/ /
|/| | | | | | | |
Update sbt.latest.version to sbt's latest version.
|
|/ / / / / / /
| | | | | | |
| | | | | | |
| | | | | | | |
And tweak deprecated stub so it compiles with 0.12.2.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
SI-6601 Close access loophole for value class constructors
|
| | |_|_|/ / /
| |/| | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
ExtensionMethods marks private constructors of value classes as
notPRIVATE before pickling. When the pickler reads the flags of this
symbol, the anti-shift mechanism folds this into the regular PRIVATE
flag, so the class is pickled as though it was public all along. A
seprately compiled client can then call this constructor.
To remedy this, we must:
- pickle `rawFlags`, rather than `flags`. This is symmetric with
unpickling, which sets `rawFlags` with the value it reads.
- Add `notPRIVATE` to the flagset `PickledFlags`.
We cannot make this change in a minor version, as the pickler
and unpickler must agree on `PickledFlags`.
I believe that this won't change the size of pickled flags
for the majority of symbols (ie, those without the notPRIVATE flag)
due to the variable length encoding in `writeLongNat`.
This also improves the situation for SI-6608. Reflection and
scalap (and, by extension, IntelliJ), no longer will see
as public methods that have had their access widened in
SuperAccessors (which is done selectively to support inlining
under separate compilation.)
|
|\ \ \ \ \ \ \
| |_|/ / / / /
|/| | | | | | |
Warn about locally identifiable init order issues.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This warns about a subset of initialization order issues which
can easily be identified by inspection, such as
val x = y
val y = 5
The likelihood of this formulation being intentional is miniscule.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
update eclipse projects (partest, repl & scaladoc)
|
|/ / / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Since we've removed scala.annotations.serializable in 2.11,
you'll need to following bandaid to use eclipse on master.
This is the easiest fix, but certainly not recommended in general.
```
--- i/src/eclipse/scala-library/.classpath
+++ w/src/eclipse/scala-library/.classpath
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="library"/>
- <classpathentry kind="con" path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/>
+ <classpathentry exported="true" kind="con" path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/>
```
This corresponds to checking the export check box for the scala library jar
in the library's build path.
|
|\ \ \ \ \ \ \
| |/ / / / / /
|/| | | | | | |
[rebase of #2206] l JSR-223 compliance for the interpreter
|
| | | | | | | |
|
| | | | | | | |
|