| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
They were sneaking through as polymorphic Arrays and avoiding boxing.
Closes SI-4216
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change should be transparent to anything using sourceFile,
unless it was drinking from the inheritance well too deeply. Rather
than squander the already allocated field for every ClassSymbol not
being compiled from source, I'm now populating it with the file
representing the class. This will make a broad range of things easier,
like debugging, issuing useful error messages, symbol invalidation,
signature verification, you name it.
def sourceFile - still returns only source code files
def binaryFile - returns only class files
def associatedFile - returns whatever is there, if anything
Performance: I may be mistaken, but I believe this is a zero-impact
change. No new fields are allocated; fields which were null now hold
a useful reference. The reference is to a file instance which was
already being allocated and already long-lived.
Compare error messages:
// Version 1
% scalac a.scala
error: type _$1 is defined twice
// Version 2
% scalac a.scala
error: type _$1 is defined twice
conflicting symbols both originated in file './foo/package.class'
Note: this may be due to a bug in the compiler involving wildcards in package objects
one error found
Bonus for people who read commit logs. Try this in the repl
after starting power mode.
ListClass.info.members groupBy (_.associatedFile) foreach {
case (k, vs) => println("%s\n %s\n".format(k, vs map (_.defString) mkString "\n "))
}
|
|
|
|
| |
sbt needs that spot right after type for its phase xsbt-api
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Closes SI-963, since it was one of my random 30 it won the prize.
The trick after adding the stability check (which has been sitting
there commented out for 3+ years) was that implicit search depended
on the wrongness, because memberWildcardType would create scopes
with members of the form
?{ val name: tp }
And since a def shouldn't match that, fixing it broke everything
until I flipped it around: memberWildcardType should be seeking
?{ def name: tp }
It could also search for a mutable value: the relevant quality
is that it not be stable so it doesn't have a tighter type than
the members it hopes to match.
|
|
|
|
|
| |
Don't change the owner of a return if the new owner is nested
inside the old owner. Closes SI-5612.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New this week, on SCALA.
Implicit class: "Spin me up an implicit method with my name."
Value class: "I need a companion object, pronto."
Narrator: "All was well with this arrangement... UNTIL."
What happens when these two wacky SIPs get together in the very
same class? You'll laugh until, eventually, you cry! Weeknights
at 9:30pm, only on SCALA.
Closes SI-5667.
|
|
|
|
|
|
| |
Removed JacoMetaATTR.
Removed MetaParser.
|
| |
|
|
|
|
|
|
| |
Don't let inaccessible methods prevent calls to *Dynamic,
otherwise we are at the mercy of every "private" alteration
in every class we inherit. Closes SI-5040.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
In favor of a marker attachment using Attachment, as suggested in
comments. (The Attachment interface needs work.) I did this bit trying
to fix SI-5715, but it's still a bit elusive because the Ident node is
thrown away as soon as there's a member definition.
Also, as far as I can see this will if anything propagate the
backquotedness of an identifier less effectively than before, because
TreeCopiers don't copy attachments. Maybe that's on the "todo" list? The
whole idea seems to depend on their being propagated to copies.
|
|
|
|
| |
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
|
| | | |
| | | |
| | | |
| | | |
| | | | |
If a package have a package object, generate the package's "linearization"
from the object.
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | | |
Frobbed knobs and made little traits until all relevant
looking reflective calls were gone.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Suggested by Simon in
https://groups.google.com/forum/?hl=en&fromgroups#!topic/scala-internals/z7s1CCRCz74
Now it eliminates backticks and gracefully bails out with an error
message when it can't remove the wiki syntax.
|
| | |\ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| |_|_|_|/ / /
|/| | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
- Replaced/simplified usages of "wrt".
- Added backticks to $Coll definitions, so stuff like "immutable.Stack"
hopefully stops being interpreted as the end of a sentence and shown
like that in the summary line of ScalaDoc's method description.
See collection.immutable.Stack's sortBy.
Additionally, it looks nicer this way.
- Fixes the typo mentioned in SI-5666.
|
| |_|_|/ / /
|/| | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This line was added on 2621ee63285808785159a3c24c9e5a5a723b8b9c but
no one define sh_highlightDocument and syntax highlighting is done
on Scala-side.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
removed dead code due to new-style matches getting their partialfun treatment during typers
|
| | | | | | | |
| | | \ \ \ | |
| | | \ \ \ | |
| | | \ \ \ | |
| |/|\ \ \ \ \ \
|/| | | | |/ / /
| | | | |/| | |
| | | |/| | | | |
'refs/pull/459/head'; commit 'refs/pull/460/head'; commit 'refs/pull/461/head'; commit 'refs/pull/462/head' into develop
|
| |_|_|_|/ / /
|/| | | | | |
| | | | | | |
| | | | | | | |
We have index/index-z.html but there is no link in HTML.
|
| |_|_|/ / /
|/| | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
... where it belongs, instead of in MatchTransformer
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
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
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
reduce duplication in [typed/translated]Match & co
in preparation of moving match translation out of the type checker,
setting everything up so that we can simply type Match nodes first,
then translate them separately
using DefaultOverrideMatchAttachment to remember the default override for a match
that defines a PartialFunction
only strip annotations when translating match
or cps in matches fails
widen selector type when translating
match-derived partialfunction slightly less cps-specific
|
| |_|/ / /
|/| | | | |
|
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| | |
| | |
| | |
| | | |
Review by @moors.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
// and a few dozen along the same lines
lazy val SeqModule = requiredModule[scala.collection.Seq.type]
With fewer Strings, all things are possible.
|
| | |
| | |
| | |
| | |
| | |
| | | |
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)
|
| | |
| | |
| | |
| | | |
And a couple conveniences elsewhere.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
jQuery 1.4.2 uses event.layerX and event.layerY but these are
deprecated and WebKit logs a lot of warnings.
Additionally jquery.layout 1.3.0 RC 29.3 doesn't work correctly
with jQuery 1.7.2, then we have to upgrade it to 1.3.0 RC 30.5.
http://bugs.jquery.com/ticket/10531
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | | |
Friends don't let friends cut and paste.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
original setting is set to `false`.
This can be witnessed in the IDE, when explicitly setting the `-optimize` flag to false leads to setting all the dependent flags to true (`-Yinline`, `-Ydce`, `-Ycloselim`).
|