| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Don't call exit from MainGenericRunner in a way which is impossible to
avoid. Closes #3901, no review.
|
| |
|
|
|
|
|
|
| |
Don't let stringOf lose elements to print by hanging onto set semantics
for too long. Closes #3944, no review.
|
|
|
|
|
|
| |
Sprinkling in some names to avoid reflective calls in the compiler as
suggested by magarcia. Closes #3974, no review.
|
|
|
|
|
|
|
|
|
|
| |
Achieved similar simplicity gains in NumericRange to those now in Range.
Obvious remaining task is to specialize NumericRange and after verifying
the performance, eliminate one or the other. For now, both soldier
onward despite near-convergence of implementation.
Closes #3232, no review.
|
|
|
|
|
|
| |
Removed a disappointly small amount of code associated with the obsolete
namePos. No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Eliminated duplication among the Rich* wrappers, careful not to impact
performance on RichInt in particular. Attempted to make Proxy a little
bit typier. Proxy creates an asymmetric equals method by design so it's
unfixable in that regard, but achieved a minor miracle anyway by making
the Rich* wrappers behave symmetrically.
Note: said miracle involved having the wrappers extend ScalaNumber in
order to induce the special == semantics. This in turn led to implicit
conversion conflicts with the boxed types on methods like .intValue().
Resolved by moving the Rich* implicits into LowPriorityImplicits.
This of course also removed the intentional ambiguity which prevents
primitives from automatically becoming AnyRefs.
Solved THAT one by creating dedicated, laser-precise ambiguity creating
implicits in Predef which exclude only the AnyRef methods. Although
this is admittedly less than elegant, it is still better than it
was: this way it is direct and explicit rather than depending upon
the "implicit implicit conflict" where the barrier to promotion is
intermingled with the definitions of wrapper classes. (See the history
of BoxedUnit/RichUnit for a good example of why these concerns require
separation.)
It's all worth it:
assert(intWrapper(5) == 5)
assert(5 == intWrapper(5))
assert(5 == (5: java.lang.Integer))
assert((5: java.lang.Integer) == 5)
assert((5: java.lang.Integer) == intWrapper(5))
assert(intWrapper(5) == (5: java.lang.Integer))
Review by community.
|
|
|
|
|
|
|
| |
Relaxed non-sensible warning for comparisons when ScalaNumber is
involved, since there is special number logic which makes it wrong to
chastise us. No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
all the boundary conditions I'm aware of, including not yet reported
ones such as
scala> 5 until 5 last
res0: Int = 4
and
scala> 1073741823 to Int.MaxValue by (1 << 24) size
res0: Int = 65
scala> 1073741823 to Int.MaxValue by (1 << 24) drop 100 size
res1: Int = 256
Also includes conformance improvements (e.g. 5 until 5 init should throw
an exception, not return empty) and general improvements (e.g. 1 to 10
tail should return a Range.) Will close associated tickets such as #3232
after I complete similar work on NumericRange. Review by community.
|
|
|
|
|
|
| |
Made an @inline marked method final because otherwise it won't be
inlined. No review.
|
|
|
|
|
|
|
|
| |
Ported --update-check from partest-alternative to partest actual. Once
again all can daily demonstrate their amazing resolve by not mass
updating checkfiles by the hundreds with whatever the current output
happens to be. No review.
|
|
|
|
|
|
|
|
| |
Widened the pattern type in the pattern matcher's attempt to
statically rule out matches so that "abc" match { case _: x.type => }
is not incorrectly excluded. No review.
|
| |
|
| |
|
|
|
|
|
| |
Some deletions in global based on adriaan's good advice. No review.
|
|
|
|
|
| |
Correctly find completion proposals for ImportType. review by odersky
|
|
|
|
|
|
|
|
|
|
| |
Performance bug in hash table splitter fixed, where size map was not
used and all the elements were counted instead.
Performance tests now pass.
No review
|
|
|
|
|
| |
No review.
|
|
|
|
|
| |
No review.
|
|
|
|
|
| |
No review.
|
|
|
|
|
| |
Review by extempore.
|
|
|
|
|
| |
No review.
|
|
|
|
|
|
| |
Some cleanups and long-dead code abatement in the land where patterns
are typed. No review, already reviewed live by moors.
|
|
|
|
|
|
|
|
|
| |
foreach method in Tuple3, and both classes have what is now a redundant
zip method which is also unfortunately completely strict in a not
entirely fixable fashion. So "zip" is deprecated in favor of zipped.
Closes #3526, but the code which closes that is primarily found in
r23228. No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A double goodness whammy involving type inference at the borders.
1) Implicit search preserves singleton type fidelity. 2) Unification of
parent bounds is (closer to) correct.
Result of 1: "implicit def f(x: Foo.type)" will convert object Foo.
Result of 2: "new Trait[Int] { }" may enjoy its type constructor being
inferred, no longer foiled by the anonymous class.
Also included are some clarity-enhnancing renamings and refactorings.
Performance note: I heavily benchmarked the change to isSubArgs and it
is reproducibly faster than the previous implementation. Numbers and
methodology available upon request.
Closes #2693, #3964. Review by moors, who wrote most of this patch but
might like to review the comments.
|
|
|
|
|
|
| |
Fix for IDE ticket #1000180: the presentation compiler does not propose
completions on names containing $.
|
|
|
|
|
|
| |
[scaladoc] Even faster JavaScript index filtering, by reducing DOM
manipulations. Contributed by Kato Kazuyoshi. Review by dubochet.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some uninteresting code related to error messages, which I'm checking
in mostly because I booted the r23379 commit in a git-svn meltdown and
posterity demands the message, which was:
You can now use the self-type of an anonymous class as a singleton type
in a pattern match ON THE MOON. Actual test case excerpt:
val x4 = new { self =>
def f(x: Any) = x match {
case _: x1.type => 1
case _: x2.type => 2
case _: x3.type => 3
case _: self.type => 4
case x: Dingus.type => x.IamDingus
}
}
Closes #576, no review.
|
| |
|
|
|
|
|
|
|
|
|
| |
The treecheckers revealed that auxiliary constructors, which must follow
the primary at the source level, are reordered to precede the primary
during the constructors phase. Added some logic to preserve the original
ordering. Also tweaked treePrinters to not confusingly print object Foo
as "final class Foo". Review by moors.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Case accessors are always public else the pattern matcher goes south. A
more discriminating fix may be possible at some point, but it looks to
be an involved endeavor. Closes #3714, review by odersky.
|
|
|
|
|
|
|
|
| |
Another attempt to fix a bug which has plagued me for a year or more but
which I am apparently the only one who enjoys it. I enclose some thread
dumps in anticipation that someday someone else will experience it too.
No review.
|
|
|
|
|
|
|
| |
protected and its bevy of corner cases. Closes #3939, #3947. This patch
is intended for both trunk and 2.8.1. Already reviewed and co-authored
by moors, and review by oderksy.
|
|
|
|
|
|
|
|
| |
The tree checkers revealed that Volatile*Refs were being constructed
without being given a constructor argument. Added a mkZero to treegen
for creating zero trees of any type, and used it to construct those
refs. Review by moors.
|
|
|
|
|
| |
Now short-circuits reload work items that are superseded by later ones.
|
|
|
|
|
|
| |
Two comments where presentation compiler sanity assertions should be
inserted.
|
| |
|
|
|
|
|
|
|
| |
Plus one wild goose chase and test fixes.
No review.
|
|
|
|
|
| |
No review
|
|
|
|
|
|
|
|
| |
Some exception handling fixes in parallel collections. Fixed some
regressions. Fixed some tests.
No review.
|
|
|
|
|
|
|
|
|
|
|
| |
Changed HashTable interface.
Fixed one test.
Implemented hash map iterators.
Implementing hash map combiners.
Extracting common functionalities of bucket-based combiners.
No review.
|
| |
|
|
|
|
|
| |
Changed hash code strategy in hash table - now taking most significant bits when transforming the hash code into an index.
|
| |
|
|
|
|
|
|
| |
Refactoring certain tasks to accept empty splitters. Adding parallel
mutable hash maps. No review
|
|
|
|
|
|
|
|
| |
Closes #3059, #3895 (the only difference between this and r23232 is the
forced info transformation that ensures that nested objects are viewed
as lazy vals). sbt integration requires new starr for this commit to
work.
|
| |
|