| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Moved ClassfileAnnotation/StaticAnnotation/Annotation/TypeConstraint
into scala.annotation and enabled the deprecated type aliases in scala.*
to point there. Also enclosed is a new starr to bootstrap. No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mopping up after the deprecation of exit and error. It is decidedly
non-trivial (at least for the IDE-impaired) to be completely sure of
which error function was being called when there were about twenty with
the same signature in trunk and they are being variously inherited,
imported, shadowed, etc. So although I was careful, the possibility
exists that something is now calling a different "error" function than
before. Caveat programmer.
(And let's all make it our policy not to name anything "error" or "exit"
from here on out....) No review.
|
|
|
|
|
|
| |
Deprecated the rest of the elements with comments saying "deprecate me."
No review.
|
|
|
|
|
|
|
|
|
|
| |
Introducing scala.system, the product of a whirlwind couple of
hours. More useful stuff than you can shake three sticks at. See the
scala.system package object. It's even documented.
And since it has methods error and exit, proceeded to deprecate the ones
in Predef. No review.
|
|
|
|
|
|
|
| |
Some refactoring of genjvm trying to separate out some of the relatively
immutable logic from the parts more in flux, and slightly ease the
process of keeping separable things separate. Review by dragos.
|
|
|
|
|
|
|
|
| |
Fixes an inconsistency in primitive hashcode calculation. I did have a
test trying to spot exactly this situation, which says something about
either me or about testing or about me and testing. Closes #3957, no
review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A selection of collections additions from the lower end of the
controversy scale.
// TraversableOnce
def collectFirst[B](pf: PartialFunction[A, B]): Option[B]
def maxBy[B](f: A => B)(implicit cmp: Ordering[B]): A
def minBy[B](f: A => B)(implicit cmp: Ordering[B]): A
// Iterator
def span(p: A => Boolean): (Iterator[A], Iterator[A])
// Traversable
def inits: Iterator[Repr]
def tails: Iterator[Repr]
def unzip3[A1, A2, A3](implicit asTriple: A => (A1, A2, A3)): (CC[A1], CC[A2], CC[A3])
// Sequences
def permutations: Iterator[Repr]
Review by odersky.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Starting the mopping up now that names have some more sense of their
place in the universe. Cleaned up some heavy multi-boolean logic. Added
more documentation on the relationships between entities in Symbols and
some other compiler things which often blur together.
Fun fact: the incorrect usage of nme.ScalaObject in Contexts which I
reported when first broaching the namespace subject became a compile
time error during the writing of this patch, because there is no longer
any such thing as nme.ScalaObject. It's a little bit like magic. No
review.
|
| |
|
|
|
|
|
|
|
|
| |
Recovered ++: from the dustbin and dropped it on Traversable. Removed
a very unfortunate deprecated method from BufferLike which it was not
authorized to deprecate because it's a Seq. Closes #3471, review by
prokopec.
|
|
|
|
|
|
|
| |
meaningful name inside the pattern matcher. Created a tracker for
TRANS_FLAG which could enforce the transience it promises us, but didn't
turn it on. No review.
|
|
|
|
|
|
| |
Parameterizes TraversableFactory.range so it can be used with any
integral type. Closes #3542, no review.
|
| |
|
|
|
|
|
|
|
| |
Overrides immutable.{ Map, Set, Seq } to return self on
the corresponding toMap/toSet/toSeq. Closes #3953, review
by prokopec.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TermName and TypeName are exposed throughout the compiler based on what
kind of name a given abstraction ought to have. (There remain places
where one needs to create a name without knowing yet what it will be,
and those will always be Names.)
The nme object in the compiler now holds only term names. To reference a
known type name, use tpnme:
nme.List == ("List": TermName)
tpnme.List == ("List": TypeName)
The contents of nme and tpname are defined in traits, many of which
are shared, so if a name should exist only as a Type and not a
Term, it should be defined in CompilerTypeNames, but otherwise in
CompilerTermNames or CompilerCommonNames. This is partially complete but
I'm sure there are still many shared which should pick a side.
Usage of .toTermName and .toTypeName is strongly discouraged. After the
dust has settled, there will be very few places where it will make sense
to hop between namespaces like that.
There are some implicits to smooth everything out, most of which should
be removable eventually.
// these two are in no hurry to go anywhere
String => TermName
String => TypeName
// but not String => Name: def view in the compiler is no longer implicit
// these two are temporary, and can log when they kick off to help us
flush // out remaining issues of "name migration" Name => TermName
Name => TypeName
There is more work to be done before we're properly protected from
naming errors, but I will not allow another eight hour tragedy to befall
lukas or anyone else!
Review by rytz. (Formality.)
|
| |
|
| |
|
|
|
|
|
|
| |
Some collections overrides for more efficient toSeq and toBuffer where
possible. Closes #2972, review by malayeri.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Deprecated the @serializable annotation, introduce a new trait
"scala.Serializable" which has to be extended instead (cross-platform).
Known issues:
- Companion objects of serializable classes (including case classes) are automatically made serializable. However, they don't extend "Serializable" statically because of the known difficulty (should be done before typing, but hard).
- Writing "case class C() extends Serializable" gives "error: trait Serializable is inherited twice"
- Functions are serializable, but don't extend Serializable dynamically (could be fixed by making FunctionN Serializable - shouldn't we?)
Note that @SerialVersionUID continues to be an annotation; it generates
a static field, which is not possible otherwise in scala.
Review by dragos, extempore.
Question to dragos: in JavaPlatform.isMaybeBoxed, why is there a test
for "JavaSerializableClass"? Is that correct?
|
|
|
|
|
|
|
| |
It looks like the fix for #2318 was causing problems, so I gave it some
more graceful failure. Leaving #2318 open because the implementation
could still work harder to find the right method. No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The initial implementation of TraversableOnce could not supply concrete
methods or even signatures for map and flatMap because they have
different signatures in Iterator and TraversableLike. But we can take
another approach which works out as nicely:
1) Create implicits which install those methods and flatten on
TraversableOnce instances. 2) Generalize the signatures of flatten
and flatMap to work with A => TraversableOnce[B] instead of A =>
Traversable[B].
And voila, you can mix and match Iterators and Traversables in a for
comprehension, map, flatMap, and flatten, without the tedious process
of sprinkling .iterator or .toList around to appease the compiler. No
review.
|
|
|
|
|
|
| |
Fleshed out Equiv[T] so that it can be used in a manner similar to
Ordering[T]. No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"I invite everyone to change this rule, and observe what breaks!"
This much beloved comment from #1208 has been on my radar for two years.
The worm has turned. Closes #1208. The inferred type of an object is now
Foo.type instead of "object Foo". What once was this:
scala> val x: Map[Int, Singleton] = Map(1 -> None)
<console>:5: error: type mismatch;
found : (Int, object None)
required: (Int, Singleton)
Now exudes a pleasing aura of workingness:
scala> val x: Map[Int, Singleton] = Map(1 -> None)
x: Map[Int,Singleton] = Map(1 -> None)
No review.
|
|
|
|
|
| |
Followed up on the claim that wrapArray can be removed. No review.
|
|
|
|
|
|
|
|
| |
Refactored parallel collections for pluggable task support
implementations.
No review.
|
|
|
|
|
|
| |
A manifest init order issue motivates some shuffling around and making
confusing identifiers more explicit. No review.
|
|
|
|
|
|
|
| |
Changes to the vector class that will be needed for ParVector.
Review by Rompf.
|
|
|
|
|
|
|
| |
Added toParIterable, toParSeq, toParSet and toParMap conversions.
No review.
|
|
|
|
|
|
|
| |
Added varargs annotation.
Review by Rytz.
|
|
|
|
|
|
| |
Applied patch from davetron5000, improving documentation on ProductN and
FunctionN traits. Closes #4021.
|
|
|
|
|
| |
Review by extempore.
|
| |
|
|
|
|
|
|
|
|
| |
Fixes #3647, closes #3647, adds a test case for it, and a missing test
case for #3935.
No review.
|
| |
|
|
|
|
|
|
|
| |
Removed inline annotation on a private stream method.
No review.
|
|
|
|
|
|
|
|
| |
Fixes #3686 by special casing Stream transformers depending on target
type.
Review by extempore.
|
|
|
|
|
| |
No review.
|
|
|
|
|
| |
No review.x
|
|
|
|
|
| |
No review.
|
|
|
|
|
| |
No review.
|
|
|
|
|
|
| |
Another fix for #3989, regarding the `-` which also used to cause stack
overflows. No review.
|
| |
|
|
|
|
|
| |
No review.
|
|
|
|
|
| |
Review by extempore.
|
|
|
|
|
| |
No review.
|
|
|
|
|
|
|
| |
Fixes #3989, adding test cases for #3989 and #3996.
No review.
|
|
|
|
|
| |
No review.
|
|
|
|
|
|
| |
Cleaned up some hangover from equality struggles of yore. Deprecated now
pointless vals. Close #3998, no review.
|
| |
|