| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Add missing tests for SI-6190
|
| |
| |
| |
| |
| | |
This was silently fixed in commit
3cb0e784a05db7d0b542cec9bf4c5fbf3772a6cf but no test was added.
|
|\ \
| | |
| | | |
SI-6280 Scaladoc: Reloading preserves anchors
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Scaladoc redirects from */package.html pages to index.html with the
qualified package name as the anchor. This is done to pop up the left
navigation panel whenever someone links directly to the page. (so
users may navigate the rest of the scaladoc pages)
When linking members directly, one can use */package.html#<signature>,
which translates to index.html#*.package@<signature>. The problem was
that the redirection javascript did not take the <signature> into
account, so it would redirect to the top of the package page instead
of scrolling to the member.
Note: this is a layout change, so there's no test for it.
|
|\ \ \
| | | |
| | | | |
hotfix for SI-6293
|
|/ / /
| | |
| | |
| | |
| | | |
We need to hide scala.reflect.macros.internal from scaladoc,
not the entire scala.reflect.macros.
|
|\ \ \
| | | |
| | | | |
SI-6272 Support lazy vals defined in try in template.
|
| | |/
| |/| |
|
|\ \ \
| | | |
| | | | |
Eliminated a metric ton of allocations.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Thanks to the hotspot DTrace probes. I'm not sure why
this checkfile changed, but hopefully it's innocuous.
Review by @VladUreche for the checkfile and @gkossakowski
so he can tell me how much faster.
|
|\ \ \ \
| |_|_|/
|/| | | |
SI-6281 macroArgs for defs with implicit args
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
macroArgs now correctly calculates the argss in case when a macro def
has implicit parameters.
Macro impls can never have implicit parameters other than type tag evidences,
so tags will always come in a separate parameter list w.r.t other parameters
of macro impls (which are in 1-to-1 correspondence with the parameters of
macro defs).
Example 1:
def w/o implicits: (params1)...(paramsN)
impl w/o tags: (params1')...(paramsN')
Example 2:
def w/o implicits: (params1)...(paramsN)
impl w tags: (params1')...(paramsN')(implicit tags)
Example 3:
def w implicits: (params1)...(paramsN)(implicit paramsN+1)
impl w/o tags: (params1')...(paramsN')(paramsN+1')
Note: paramsN+1' is not an implicit parameter list
because impls cannot have implicit parameters other than tags
Example 4:
def w implicits: (params1)...(paramsN)(implicit paramsN+1)
impl w tags: (params1')...(paramsN')(paramsN+1')(implicit tags)
Therefore we don't need to merge the argss.last (that correspond to implicit
parameters of macro defs) with tags, as it was incorrectly coded before.
We just need to append tags to argss.
|
|\ \ \
| |_|/
|/| | |
SI-6052 - fix groupBy on parallel collections
|
|/ / |
|
|\ \
| | |
| | | |
adds weak_<:< to the API
|
| | |
| | |
| | |
| | |
| | | |
quite a fundamental method to be left to be implemented manually
by the users of the reflection API
|
|\ \ \
| | | |
| | | | |
exposes overridenSymbol/overridingSymbol in API
|
| |/ /
| | |
| | |
| | | |
it seems like we completely overlooked this functionality
|
|\ \ \
| |_|/
|/| | |
reverts changes to ClassTag.Nothing
|
| |/
| |
| |
| |
| |
| |
| |
| | |
It seemed to be a good idea to have ClassTag.Nothing crash
in agreement with its incalculable nature.
However this breaks CanBuildFrom for the situations when Nothing is inferred
or provided explicitly. Hence the rollback.
|
|\ \
| | |
| | | |
Improved fix for SI-1987, overloading in package objects.
|
| | |
| | |
| | |
| | |
| | |
| | | |
When reformulating an errant package object overload,
don't forget to fully qualify it lest you trade one error
for another.
|
|\ \ \
| | | |
| | | | |
exposes absTypeTag and absTypeOf
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | | |
to be symmetric with typeTag and typeOf.
this is especially important for macro development,
since only c.AbsTypeTag context bounds can be used on macro implementations
|
|\ \ \
| | | |
| | | | |
JavaConversions: Restore source compatibility with 2.9
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Even after the parent change, implicit conversions should still convert
ConcurrentHashMap to concurrent.Map and not to mutable.ConcurrentMap.
I'll include the comment by axel22 which prompting this change (taken
from https://github.com/scala/scala/pull/1172#issuecomment-7928285)
since it is highly informative and links to pull request comments might
not be very stable:
<<
Instead of just testing an implicit conversion to ConcurrentMap, the
test should call ConcurrentMap methods such as putIfAbsent (which
returns an Option[T]) and replace, to see if the correct Scala
concurrent map trait is being resolved.
The problem is that putIfAbsent already exists on juc.ConcurrentMap so
instead of triggering an implicit conversion, a type mismatch error is
output anyway.
And we cannot test that the correct concurrent map trait is returned
using methods like map, flatMap and friends, because concurrent map
traits extends mutable.Map anyway.
For this reason, I recommend to add this to the test:
scala> val a = new java.util.concurrent.ConcurrentHashMap[String,
String]() += (("", ""))
a: scala.collection.concurrent.Map[String,String] = Map("" -> "")
and make sure that the returned map is concurrent.Map, not
mutable.ConcurrentMap (the above += is one of the few methods in
collection that has the return type this.type).
>>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Readd an implicit conversion which was available in 2.9, the one from
`java.util.concurrent.ConcurrentMap` (`juc.ConcurrentMap`) to the (now
deprecated) type `scala.collection.mutable.ConcurrentMap`.
This implicit conversion can also be used to convert from
`juc.ConcurrentMap`
to `collection.Map` and creates an ambiguity error in
test/files/run/map_java_conversions.scala. To fix this, I have given
lower priority to the new conversion.
Moreover, update the documentation in `JavaConversions`: mark this
conversion as deprecated and mention the new conversion which replaces
it, converting to `scala.collection.concurrent.Map`.
I discussed this issue previously with Paul Phillips on scala-language:
https://groups.google.com/d/topic/scala-language/uXKRiGXb-44/discussion
|
|\ \ \ \
| |_|_|/
|/| | | |
Fix stupid logic inversion of try-catch
|
| | | | |
|
|\ \ \ \
| |_|_|/
|/| | | |
Make Stream.withFilter.{map,flatMap} run in constant stack space
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Test a wider range of functionality.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
No need to check the output - checking programmatically that the
produced streams are empty is enough.
|
| | | | |
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The included test currently fails because `map` and `flatMap` do not
run in constant stack space on a stream returned by `Stream.withFilter`,
as I reported here:
https://groups.google.com/d/msg/scala-language/WqJR38REXnk/saaSiDdmyqoJ
Fix the problem and add a simple testcase.
Note that the stack space consumed when producing an element of this stream is
proportional to the number of elements failing the test before the next
success. The stack space consumed to produce the stream itself is the
space needed to produce the first element, that is, is proportional to
the number of failures before the first success.
|
|\ \ \
| | | |
| | | | |
fixes non-determinism in reflection-sorted-decls
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | | |
ordering of synthetic members on java7 with a lot of cores is non-deterministic
that's not a problem, because the doc doesn't promise anything about synthetics
hence I've adjusted the test, so that it no longer includes accessors
discussion: http://groups.google.com/group/scala-internals/msg/087a7d4805313561
|
|\ \ \
| |/ /
|/| | |
Fix for SI-6264, crash in checkCheckable.
|
|/ /
| |
| |
| |
| | |
The classic fail of assuming you will only receive a
specific subclass of Type.
|
|\ \
| | |
| | | |
rebuilt the starr after performance optimizations
|
| | |
| | |
| | |
| | | |
for those who use locker as their main development platform
|
|\ \ \
| |/ /
|/| | |
Fix/try catch libs
|
| | | |
|
| |/ |
|
|\ \
| |/
|/| |
Compiler optimizations (take 3, hopefully final)
|
| |
| |
| |
| |
| |
| |
| | |
Reduced method size of map/flatMap to under 35 bytes to make them
inlinable. Also specialized filterNot code so that it does not create
a second closure. Finally, avoided default argument for sizeHint to
reduce size of methods calling it.
|
| |
| |
| |
| | |
All statistics code is now subject to a switch at each use site, as opposed to a compile-time constant before. We should veryfy that this does not affect performance. Statistics is a useful ability to have for trouble-shooting compile time speeds on specific code bases. But we should not pay a lot for having it on normal runs.
|
| |
| |
| |
| |
| |
| | |
If our theory wrt map is correct (i.e. that it gets inlined by JVM), then closure hoisting is counter-productive because it migh well prevent the closure from being inlined. This commit removes all hoisted closures that are passed to map and leaves only those boolean closures that are passed to exists and forall.
I should have split the early optimizations including closures into separate commits. As that train has left, I am now reverting some bits to see whether the reverts affect performance at all, and in what direction.
|
| | |
|
| | |
|