| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
SI-6673 fixes macro problems with eta expansions
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Eta expansions previously caused the typer to disable macros. That was
done in order to detect eta expansion of macro defs and show the user
an appropriate error message.
Macros were disabled because to find out whether we're expanding
a macro def, we need to get its symbol, and to get a symbol of something
we need to typecheck that something. However typechecking automatically
expands macros, so, unless we disable macros, after a typecheck we won't
be able to analyze macro occurrences anymore.
Unfortunately this solution has a fatal flaw. By disabling macros we
not only prevent the eta-expandee from macro expanding, but also all
the subtrees of that eta-expandee (see SI-6673).
This commit adds a mechanism for fine-grained control over macro
expansion. Now it's possible to prohibit only the node, but not its
children from macro expanding.
|
|\ \
| | |
| | | |
SI-6695 Test case for fixed Array match bug
|
| | | |
|
|\ \ \
| | | |
| | | | |
SI-6632 SI-6633 Fixes issues and data corruption in ListBuffer
|
| | | |
| | | |
| | | |
| | | |
| | | | |
- Disallow negative positions for ListBuffer#insert/insertAll/update
- Fix data corruption issue in ListBuffer#insert
|
|\ \ \ \
| | | | |
| | | | | |
SI-6634 Fixes data corruption issue in ListBuffer#remove
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This is the cut-down version with minimally invasive changes,
e. g. keeping the "auto-correcting" bounds algorithm.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fixes SI-6551.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Don't rewrite an explicit apply method to dynamic polytypes.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Si 6663 2.10.x fix type parameter on selectDynamic
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Fix mkInvoke to handle selectDynamic calls of the form
new C.foo[T].xyz
or
new C.foo[T].xyz :U
(where C extends Dynamic)
Without this patch, the type parameter was silently ignored, and
possibly inferred to a different.
This patch fixes mkInvoke to handle these cases, where ctxTree has
the form Select(TypeApply(fun, targs), nme) or Typed(...)
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
Scaladoc update for collection.mutable.MultiMap
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Addition of source code example on how to use a MultiMap and its
defined methods. Minor correction in documentation for method
`removeBinding`.
|
|\ \ \ \ \ \ \ \
| |_|_|_|_|_|/ /
|/| | | | | | | |
Restore the opimization apparently lost after merge.
|
| |/ / / / / / |
|
|\ \ \ \ \ \ \
| |/ / / / / /
|/| | | | | | |
Fixes SI-6150 - backport to 2.10.x branch.
|
| |/ / / / / |
|
|\ \ \ \ \ \
| |_|/ / / /
|/| | | | | |
SI-5330, SI-6014 deal with existential self-type
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This has been broken since https://github.com/scala/scala/commit/b7b81ca2#L0L567.
The existential rash is treated in a similar manner as in fc24db4c.
Conceptually, the fix would be `def selfTypeSkolemized =
widen.skolemizeExistential.narrow`, but simply widening before
narrowing achieves the same thing. Since we're in existential voodoo
territory, let's go for the minimal fix: replacing `this.narrow` by
`widen.narrow`.
--
Original patch by @retronym in #1074, refined by @paulp to
only perform widen.narrow incantation if there are
existentials present in the widened type, as
narrowing is expensive when the type is not a singleton.
The result is that compiling the entirety of quick, that
code path is hit only 143 times. All the other calls hit
.narrow directly as before. It looks like the definition
of negligible in the diff of -Ystatistics when compiling
src/library/scala/collection:
< #symbols : 306315
---
> #symbols : 306320
12c13
< #unique types : 293859
---
> #unique types : 293865
I'm assuming based on the 2/1000ths of a percent increase
in symbol and type creation that wall clock is manageable,
but I didn't measure it.
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
show developer guidelines on opening pull request
|
| | |/ /
| |/| |
| | | |
| | | |
| | | | |
Includes "Improvements and typo fixes to CONTRIBUTING.md" by @heathercmiller
as well as feedback from @retronym.
|
|\ \ \ \
| |_|/ /
|/| | | |
sane printing of renamed imports
|
| | |/
| |/|
| | |
| | |
| | | |
Having a select named "foo" with an underlying symbol named "bar"
and trying to make sense of all that by prettyprinting is very confusing
|
|\ \ \
| | | |
| | | | |
SI-6539 Annotation for methods unfit for post-typer ASTs
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- Don't default the message, and show it exclusively.
- Fix cut-and-pasto in the @since tag
- Be tolerant if the annotaion class is missing, as seems to
have been the case compiling the continuations plugin.
- s/\t/ / in the test file to show the errors are positioned
correctly.
- Use defensive getOrElse
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | | |
Motivated by the `.value` method in the SBT task-syntax branch,
which should only be called within the context of the argument
to a setting initialization macro.
The facility is akin to a fatal deprecation.
|
|\ \ \
| | | |
| | | | |
Fix for SI-6662, macro failing too early.
|
| | |/
| |/|
| | |
| | |
| | | |
Don't give up before you try tupling. Who knows what
someone might be doing with a Unit.
|
|\ \ \
| |/ /
|/| | |
SI-6616 Check that unsafe operations are only called on the presentation...
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
compiler thread.
The method that checks the actual constraint is @elidable, expecting it to be used
for nightly builds but stripped-off in release builds. This way we don't lose any
performance, but 'fail-fast' in IDE nightlies.
This assumes that release builds will have at least `-Xelide-below ASSERTION`, but
this pull request does not do that.
|
|\ \ \
| | | |
| | | | |
better error when typetagging local classes
|
| | |/
| |/|
| | |
| | | |
Inspired by https://issues.scala-lang.org/browse/SI-6649
|
|\ \ \
| | | |
| | | | |
-Yshow-trees-compact respects other options
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The aforementioned tree printer now respects other tree printing
options such as -uniqid and -Xprint-types.
This helps debugging reify, which uses `nodePrinters`, not `showRaw`
to print its trees, because back then `showRaw` didn't exist yet.
|
|\ \ \
| |/ /
|/| | |
Fix type of the custom `ClassTag` in `PatternMatching.scala`
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In fb315772 custom ClassTags were introduced to optimize array
creation in hot places. The idea was that if `Array[T]` is allocated
through `ClassTag[T]` (which is essentially a factory for Array[T])
we would introduce a custom class implementing `ClassTag[T]` interface
and would have specialized array allocation instruction instead of
having reflective call as it's being done with default (compiler
synthesized) implementation of `ClassTag[T]`.
In case of `PatternMatching.scala` I made a mistake of providing
`ClassTag[Array[Clause]]` instead of `ClassTag[Clause]` so that value
would never be used and compiler still would resolve implicit through
default mechanism. This has been discovered thanks to @paulp's work
on unused value detection.
Review by @paulp.
|
|\ \
| |/
|/| |
Merge 2.10.0-RC2 into 2.10.x
|
|/| |
|
| |\
| | |
| | | |
Fixing issue where OSGi bundles weren't getting used for distribution.
|
| | | |
|
| |\ \
| | | |
| | | | |
Fixes example in Type.asSeenFrom
|
| | |/
| | |
| | |
| | |
| | |
| | | |
It was written in some form of non-executable pseudo-code before and
that might be quite confusing for people who are not familiar with scala
reflection.
|
| |\ \
| | |/
| |/| |
Updated copyright dates throughout compiler and stdlib for upcoming release
|
| | |
| | |
| | |
| | | |
2013
|
| | | |
|
| |\ \
| | | |
| | | | |
Fix for SI-6600, regression with ScalaNumber.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Not much in the end; I divided ScalaNumericConversions
into two traits such that the ScalaNumericAnyConversions can
be used in value classes, and ScalaNumericConversions can
override methods in ScalaNumber (since one trait cannot do
both those things.)
The fact that ScalaNumber is privileged for equality but a) extends
java.lang.Number and therefore b) cannot be a value class is something
we will want to revisit real soon.
|
| |\ \ \
| | |/ /
| |/| | |
SI-6562 Fix crash with class nested in @inline method
|