| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\ |
|
| | |
|
|/
|
|
|
|
| |
Very first time I tried "reify" in the repl and it crashed.
I changed an assert to issue a proper error, as best I could
figure out how. We probably need to do a lot more of this.
|
|
|
|
|
|
|
| |
Moved compose/andThen off Function1, curried/tupled off Function2.
Pushed Tuple2 zipped into auxiliary class. Created implicits to
plaster over the changes. This drops several hundred classfiles and
takes (unoptimized) scala-library.jar from 7.8 Mb to 7.4 Mb.
|
| |
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
typer synthesized the wrong isDefinedAt method in typedMatchAnon
because a BackQuotedIdent was copied as an Ident, so that the equality check
was performed in applyOrElse (since it operates on the original tree),
but not in isDefinedAt (since it operates on the copy, which collapsed Ident and BackQuotedIdent)
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
val pattern: Type = expr desugared to
val x = expr match { case pattern: Type => (var_1, ..., var_N)}
but `pattern: Type` is only a valid pattern if `pattern` is an Ident
thus, we desugar to
val x = (expr: Type) match { case pattern => (var_1, ..., var_N)}
... in this case (see def makePatDef)
also, MaybeBoundType now fails on illegal patterns (to defend against similar regressions)
|
|
|
|
| |
We thought better of it.
|
|\ \ |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
* all usages of ClassManifest and Manifest are replaced with tags
* all manifest tests are replaced with tag tests
|
| | |
| | |
| | |
| | |
| | | |
* introduces ArrayTag and ErasureTag
* all type tags now feature erasure
|
|\ \ \
| |/ /
|/| | |
|
| | | |
|
|\ \ \
| |_|/
|/| | |
|
| |/ |
|
| | | |
| \ | |
|\ \|
| | |
| | |
| | | |
'refs/pull/421/head'; commit 'refs/pull/422/head' into develop
|
| |/ |
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
|
|
|
| |
For mr. optimizer and his band of merry privates.
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
workaround for inliner bug in run/t3835
see SI-5672 for the optimizer bug
tiny switches (2 cases or less) don't make sense anyway,
so this is not a big deal
the annotDepMethType.flags contained -Xexperimental,
which causes Any* to be considered as a valid return type,
before we weren't exposed to this, because the product methods
used (tiny) switches; with this change, they went back to pattern matches
in any case, the -Xexperimental was intended to turn on dependent method types,
not Any* as valid type (I can only assume), and they are now on by default
the other tests were affected by our refusal to emit tiny switches
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
detect partialfunction in cpsannotationchecker
emit apply/isDefinedAt if PF has @cps targs (applyOrElse can't be typed)
further hacky improvements to selective anf
better try/catch support in selective cps using freshly minted anonfun match
make virtpatmat resilient to scaladoc (after uncurry, don't translate matches
TODO: factor out translation all together so presentation compiler/scaladoc can skip it)
|
| |
| |
| |
| |
| |
| | |
the optimizer generates wrong bytecode for switches in arguments
virtpatmat happily emits a switch for a one-case switch, whereas -Xoldpatmat did not
this is not the focus of this test, hence the temporary workaround
|
| | | |
| \ | |
|\ \ \
| | | |
| | | |
| | | | |
'type-destructure' into develop
|
| |/ /
|/| |
| | |
| | |
| | |
| | | |
Would prefer to bake a little longer, but, scala days.
More elaboration to come.
|
| | |
| | |
| | |
| | | |
@viktorklang
|
| |\ \
| |/ /
|/| | |
|
| | | |
|
| | | |
|
| | | | |
| \ \ | |
| \ \ | |
| \ \ | |
|\ \ \ \ \
| |_|_|_|/
|/| | | |
| | | | | |
'refs/pull/403/head'; commit 'refs/pull/404/head'; commit 'refs/pull/405/head' into develop
|
| |_|/ /
|/| | | |
|
| | | | |
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
the optimizer generates wrong bytecode for switches in arguments
virtpatmat happily emits a switch for a one-case switch, whereas -Xoldpatmat did not
this is not the focus of this test, hence the temporary workaround
|
| | | | |
| \ \ | |
| \ \ | |
| \ \ | |
| \ \ | |
| \ \ | |
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | | |
'refs/pull/392/head'; commit 'refs/pull/397/head' into develop
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
and implicit pimped on members. Thanks to Lukas for pointing it out!
|
| | | | |/ / |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Re-enable testing the sensibility of comparing instances
of two case classes. In particular, warn if we detect that
the two objects inherit from different case classes. In
addition, avoid emitting misleading warnings when comparing "new C".
|
| |/ / / / |
|
| | | | | | |
| \ \ \ \ | |
|\ \ \ \ \ \ |
|
| | | | | | | |
|