| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is an obvious place to apply value class goodness and
collect some safety/sanity in typing modes. It does show off
a challenge in introducing value classes without disruption:
there's no way to deprecate the old signature of 'typed',
'adapt', etc. because they erase the same.
class Bippy(val x: Int) extends AnyVal
class A {
@deprecated("Use a bippy") def f(x: Int): Int = 5
def f(x: Bippy): Int = x.x
}
./a.scala:5: error: double definition:
method f:(x: Bippy)Int and
method f:(x: Int)Int at line 4
have same type after erasure: (x: Int)Int
An Int => Mode implicit handles most uses, but nothing can
be done to avoid breaking anything which e.g. extends Typer
and overrides typed.
|
|\
| |
| | |
Merge 2.10.x
|
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Patches applied:
- rename of `dropRepeatedParamType` to `dropIllegalStarTypes` -- required since 8886d22cd6
- fixed test/files/neg/t6406-regextract.flags -- how could this have worked before?
Conflicts:
src/compiler/scala/tools/nsc/interpreter/TypeStrings.scala
src/library/scala/collection/LinearSeqOptimized.scala
src/library/scala/util/Properties.scala
test/files/run/streams.check
test/files/run/streams.scala
|
| |\
| | |
| | | |
SI-6915 Updates copyright properties to 2002-2013
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The .scala header files had the right copyright dates
but properties used to generate the information in
e.g. "scala -version" hadn't been updated.
review @adriaanm
|
| |\ \
| | | |
| | | | |
Backport 1821
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
the manifests for Any, Object/AnyRef, AnyVal, Null and Nothing
now have their `newArray` methods overridden to avoid reflective overhead
of array instantiation.
(backport of 45ef0514e, part 2)
|
| | | |
| | | |
| | | |
| | | | |
(backport of 45ef0514e, part 1)
|
| |\ \ \
| | | | |
| | | | | |
SI-6897, lubs and varargs star.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Don't allow lubs to calculate refinement types which contain
a varargs star outside of legal varargs star position.
|
| |\ \ \ \
| | | | | |
| | | | | | |
SI-6896, spurious warning with overloaded main.
|
| | |/ / /
| | | | |
| | | | |
| | | | |
| | | | | |
Make sure there's no legit main signature before issuing
any warnings about missing main methods.
|
| |\ \ \ \
| | | | | |
| | | | | | |
SI-6911, regression in generated case class equality.
|
| | | |/ /
| | |/| |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Caught out by the different semantics of isInstanceOf and
pattern matching.
trait K { case class CC(name: String) }
object Foo extends K
object Bar extends K
Foo.CC("a") == Bar.CC("a")
That expression is supposed to be false, and with this
commit it is once again.
|
| |\ \ \ \
| | |_|_|/
| |/| | | |
Fix Iterator#copyToArray (fixes SI-6827).
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
As pointed out in #scala, when using a non-zero start it's possible
to get an ArrayIndexOutOfBoundsException due to an incorrect bounds
check. This patch fixes this, as well as another potential bounds
error, and adds test cases.
Incorporates some other suggestions by Som-Snytt to ensure that
callers will get useful error messages in cases where the start
parameter is wrong (negative or out-of-array-bounds).
Review by @som-snytt.
|
| |\ \ \
| | |/ /
| |/| | |
SI-5017 Poor performance of :+ operator on Arrays
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Control performance of :+ and +: operator on my machine were 700-800 ms
After adding size hint on the implementation in SeqLike, it went down to 500-600 ms
But with specialixed implementation in ArrayOps, brings it down to 300-400 ms
Unfortunatly, this method will only be called when the Array object is being referenced directly as it's type, but that should be the case enough times to justify the extra method.
I ended up removing the sizeHint in SeqLike because it made the execution of the "benchmark" slower when the Array was being manipulated as a Seq.
Side note: Interestingly enough, the benchmark performed better on my virtualized Fedora 17 with JDK 7 than natively on Mac OS X with JDK 6
|
| |\ \ \
| | |_|/
| |/| | |
SI-6194, repl crash.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Always a bad idea to use replaceAll on unknown strings,
as we saw here when windows classpaths arrived containing
escape-requiring backslashes.
|
| |\ \ \
| | | | |
| | | | | |
Remove -deprecation from partest default options.
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Who knows why it was ever like this; it's not like anyone
sees the deprecation warnings. In PR #1807 there is now a
test which depends on partest not making this move, so it's
a good time to finally expunge it.
|
| |\ \ \
| | | | |
| | | | | |
SI-6746 Fixes MANIFEST.MF package entry (s.r.makro -> s.r.macros)
|
| | | | | |
|
| |\ \ \ \
| | | | | |
| | | | | | |
Stream.zip naturalsEx example does not compile => remove extra zip call
|
| | | | | | |
|
| |\ \ \ \ \
| | |_|_|/ /
| |/| | | | |
SI-6415, Stream#lengthCompare
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Had to fix up an iffy test: not only was it testing undefined
behavior, it demanded just the right numbers be printed in a
context where all negative or positive numbers are equivalent.
It's the ol' "get them coming and going" trick.
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The lengthCompare method in LinearSeqOptimized was looking one
step further than it needed to in order to give the correct
result, which was creating some unwanted side effects related to
Streams.
|
| |\ \ \ \
| | | | | |
| | | | | | |
SI-6829, NPE during erroneous compilation.
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Have to intercept trees which have a null type due to errors
before they leave the warm confines of 'def typed' because from
that point everything assumes tree.tpe != null.
|
| |\ \ \ \
| | | | | |
| | | | | | |
Remove stray debugging output line.
|
| |/ / / /
| | | | |
| | | | |
| | | | | |
I finally reached my "CHECK THREAD ACCESS" limit.
|
| |\ \ \ \
| | | | | |
| | | | | | |
fixes the unchecked warning in quick.comp
|
| | | |/ /
| | |/| |
| | | | |
| | | | |
| | | | | |
All those months when I thought it was yet another spurious error
in the new pattern matcher...
|
|\ \ \ \ \
| | | | | |
| | | | | | |
adds c.introduceTopLevel
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
So we don't have to clutter everything with null checks.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The first in the family of mutators for the global symbol table,
`introduceTopLevel` is capable of creating synthetic top-level
classes and modules.
The addition of nme.EMPTY_PACKAGE_NAME is necessary to let
programmers insert definitions into the empty package. That's explicitly
discouraged in the docs, but at times might come in handy.
This patch introduce workarounds to avoid incompatibilities with SBT.
First of all SBT doesn't like VirtualFiles having JFile set to null.
Secondly SBT gets confused when someone depends on synthetic files
added by c.introduceTopLevel.
Strictly speaking these problems require changes to SBT, and that will be
done later. However the main target of the patch is paradise/macros,
which needs to be useful immediately, therefore we apply workarounds.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
SI-6916 makes FlatHashTable#remove a Boolean not Option[A]
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Makes FlatHashTable#remove return a boolean instead of Option[A].
Updates HashSet accordingly. Adds a test to make sure remove
works as advertised.
|
|\ \ \ \ \ \ \
| |/ / / / / /
|/| | | | | | |
SI-6918 Changes REPL output from "defined module" to "defined object"
|
|/ / / / / / |
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
SI-6908 Makes FlatHashTable as well as derived classes support nulls
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Uses pattern matching in findEntry instead of an if.
Uses a named object NullSentinel instead of a val.\
Makes NullSentinel private.
Uses isInstanceOf instead of equality on NullSentinel.
Makes searchEntry a val instead of a var.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
In my main commit I missed the scala doc annotation about not
being able to store null.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This change adds a null sentinel object which is used to indicate that a null
value has been inserted in FlatHashTable. It also makes a strong distinction
between logical elements of the Set vs entries in the hash table. Changes
are made to mutable.HashSet and ParHashSet accordingly.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
magarciaEPFL/unnest-closures-supplementErrorMessage
nested closures are flattened by calling supplementErrorMessage() directly
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
A closure C that becomes an argument to the constructor of another closure makes both closures harder to eliminate (either by scalac-optimizer or JIT-compiler) than is the case when C is the argument to an @inline method.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
fusion of loops in Range.foreach() and Range.validateRangeBoundaries()
|