| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Most are pattern matcher bugs fixed by virtpatmat. A few are reifier,
package object, or miscellaneous. I threw in an original test for
SI-2337, to go with those for SI-1697, SI-3705, SI-4415, and SI-1357,
all of which (in the interests of making sure this basket has all the
eggs) I am closing.
|
|
|
|
|
|
|
| |
And for a bunch of other tickets where we unleash a stack
trace rather than printing a sensible error message. But
SI-3718 is a continuations plugin crash, now a reasonable
if somewhat vague error.
|
| |
|
|
|
|
|
|
| |
Anyone who doubts the importance of avoiding duplication is
invited to look closely at the cause of this bug as revealed in
this one line patch.
|
|
|
|
|
| |
Still some issues with the repl namespace, which should
be managed in a first class way, not defensively/reactively.
|
|
|
|
| |
Closes SI-5728.
|
|
|
|
|
|
| |
Eventually "-Xlint would have told you not to do that" will
be a catchphrase, like "I love it when a plan comes together"
or "respect mah authoritah."
|
|\ \ \
| | | |
| | | |
| | | | |
'refs/pull/469/head'; commit 'refs/pull/470/head' into develop
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
to improve Array[T] java-interop with T[],
normalize Object with Object{} to Object
fix #SI-5688 by flattening refined types in parents
updated check files to reflect flattening of refined types and updated position for refined types
|
| | |\ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This patch is really by Lanny Ripple <lanny@spotinfluence.com>,
but I reworked it because I didn't want to put any more methods
onto String. Instead, there is a method on Regex which removes
the anchoring quality.
"""\d\d'"".r.unanchored
|
| | |\ \
| | | |/
| | |/| |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This patch fixes the motivating bug by detecting when a method is
the default arg getter for a constructor parameter. That requires
fixing a secondary bug where an arbitrary string was used to encode
<init> in lieu of <init>.encode. There is no speculative mangling.
|
| | | |\
| | | | |
| | | | |
| | | | |
| | | | | |
Reverts name unenmanglement that was objectionable in the previous patch
commit 47bfd744177121de08fed489a5b0b1b59a1ae06a.
|
| | | | | |
|
| | | | | | |
| | | \ \ | |
| | | \ \ | |
| | | \ \ | |
| | |\ \ \ \ \
| |_|_|_|/ / /
|/| | | | | |
| | | | | | | |
'refs/pull/459/head'; commit 'refs/pull/460/head'; commit 'refs/pull/461/head'; commit 'refs/pull/462/head'; commit 'refs/pull/463/head'; commit 'refs/pull/464/head'; commit 'refs/pull/465/head' into develop
|
| | | | | | | |
|
| |_|_|/ / /
|/| | | | | |
|
| | | | | | |
|
| | | | | | | |
| | | \ \ \ | |
| |/|\ \ \ \ \
|/| | | |/ / /
| | | |/| | |
| | | | | | | |
'refs/pull/459/head'; commit 'refs/pull/460/head'; commit 'refs/pull/461/head'; commit 'refs/pull/462/head' into develop
|
| |_|_|/ / /
|/| | | | | |
|
| | | | | | |
|
| |_|/ / /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
sort field accessors, necessary after typers -- apparently...
don't throw TypeError, use issueTypeError
don't run patmat phase when -Xoldpatmat
only virtualize matches when -Xexperimental
recycle cps type of match for re-typechecking:
when one of the internal cps-type-state annotations is present, strip all CPS annotations
a cps-type-state-annotated type makes no sense as an expected type (matchX.tpe is used as pt in translateMatch)
don't synth FunctionN impls during typer, only do this for PartialFunction
updated check now function synth for match is deferred until uncurry
patmat-transform try/catch with match in cps
cleanup in selective anf
remove TODO: can there be cases that are not CaseDefs -- nope
|
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | | |
it used to also be enabled by -Yvirtpatmat, which is now on by default,
but this type hackery is no longer necessary to bootstrap under the new pattern matching scheme,
so let's only turn it on when people are feeling -Xexperimental
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
A one-line change to blockWithQualifier. The symptom is
undefined tmp var symbols in the backend; lamba lift thinks
the tmp var is free and adds it to anonfun ctors.
|
|/ / /
| | |
| | |
| | |
| | | |
Since getSimpleName will be crashing us indefinitely, took the
expedient route and wrapped the call.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Closes SI-5666 again.
(I don't have the least clue how I'm supposed to issue the error.)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
ResetAttrs shouldn't be side-effecting on the original tree,
since it can lead to NPEs in erroneous trees (or maybe even for valid ones?).
Review by @odersky
(Patch by plocinic, applied without his complicity by extempore)
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
OnceCanBuildFrom.
Removed the implicit modifier on the OnceCanBuildFrom, as we don't
support implicit classes with zero arguments.
Added an implicit OnceCanBuildFrom method.
The idea behind OnceCanBuildFrom is for it to be used by methods which
construct collections, but are defined outside of collection classes.
OnceCanBuildFrom so far worked only for objects of type TraversableOnce:
shuffle(List(1, 2, 3).iterator: TraversableOnce[Int])
but this used to result in an implicit resolution error:
shuffle(List(1, 2, 3).iterator)
because after the type parameter M for `shuffle` was inferred to Iterator, no implicit
of type CanBuildFrom[Iterator[_], A, Iterator[A]] could be found.
Introduced another CanBuildFrom to the Iterator companion object.
Modified Future tests appropriately.
|
|\ \ \ |
|
| |\ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
All those wildcards in a default-scoped implicit are expensive,
they each lead to a typevar on every search. Restructured the
Tuple2/Tuple3 Zipped classes, they're better this way anyway.
This also gets all that Tuple[23] code out of genprod.
|
| |/ / /
| | | |
| | | |
| | | | |
Removed some unneeded indirection in the testing framework.
|
|\| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
The ones which remain I'm not removing on purpose, as I know
from experience it's more trouble than it's yet worth.
|
| | | | |
|
| |\ \ \ |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This reverts commit 1d0372f84f9a7325a47beb55169cc454895ef74b.
I forgot about polymorphic dispatch. Have to seek another way.
|
| | | | | | |
| | \ \ \ | |
| |\ \| | |
| | | | | |
| | | | | |
| | | | | | |
'refs/pull/447/head' into develop
|
| | |/ / / |
|
| |/ / / |
|
| | | | | |
| | \ \ | |
| |\ \ \ \
| | |_|_|/
| |/| | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
In patterns, the parser halts when it sees stars.
This means it does not handle infix notation for a case class
named "*". This patch uses lookahead to decide whether to parse
'_' '*' as a sequence pattern or as the start of infix.
(For both normal and error cases, the tokens are always consumed
immediately.) Error messages are improved for _* (as a help to learners)
and slightly improved recovery helps the parse continue.
The entry point for XML patterns is now distinct; otherwise,
the change is local to pattern3-simplepattern; the entry point
for simplepattern() is unchanged because it is commented
"hook for IDE."
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
the implicit beta-reduction performed by typedFunction on a Function(.., Match(EmptyTree, ...))
must of course only be done when the selector actually is empty...
(yes, typedMatchAnonFun needs to be cleaned up, I know)
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Try it: ./tools/dump-class ./build/quick/classes
The output is intended to be easy to filter on the command line.
This is a starting point for lots of interesting bytecode analysis
for which we have waited too long.
Example. All generic signatures we produce.
// almost 20K classfiles
% find build/quick/classes -name '*.class' |wc -l
18519
// fully parsed in 6 seconds
tools/dump-class build/quick/classes |grep "^ signature" | wc -l
50802
real 0m6.230s
It's designed to be easy to make faster if you don't care about
particular classfile bits; you can override those methods to jump
forward in the input stream rather than building a structure.
For just a little sampling, here are our most frequently
repeated name/signature combinations.
194 signature <init> ()V // this one is weird, wonder why there's a generic signature
115 signature $div$colon$bslash <A1:Ljava/lang/Object;>(TA1;Lscala/Function2<TA1;TA1;TA1;>;)TA1;
105 signature applyOrElse <A1:Ljava/lang/Object;B1:Ljava/lang/Object;>(TA1;Lscala/Function1<TA1;TB1;>;)TB1;
103 signature view ()Ljava/lang/Object;
101 signature toSet <B:Ljava/lang/Object;>()Lscala/collection/immutable/Set<TB;>;
And the top five name/descriptor combinations.
11170 descriptor <clinit> ()V
10155 descriptor serialVersionUID J
7130 descriptor apply (Ljava/lang/Object;)Ljava/lang/Object;
3028 descriptor apply ()Ljava/lang/Object;
2426 descriptor <init> ()V
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Ported most of the future tests.
|
|/ / /
| | |
| | |
| | | |
Fixed a bug in Future.zip.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Hopefully there are useful examples to be had in here.
Please note that you should never be testing "x.size != 0",
use isEmpty or nonEmpty. Even if these happen to be small
collections, it's not a habit you want to form: size is O(n)
on a number of collections. (Most pointedly, Lists.)
|