| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Dist cleanup
|
| |
| |
| |
| |
| | |
My understanding is distributionManagement is only needed to configure
maven locally for publishing. Since we do that it ant, getting rid of it.
|
|\ \
| | |
| | | |
don't loop forever in ContextTrees.locateContextTree
|
| | |
| | |
| | |
| | | |
Made loop invariant / recursion metric explicit.
|
|\ \ \
| | | |
| | | | |
Add repl as dependency of test-junit Eclipse project.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Since 8f20fa23dbb5b000f0889132b8c6e2acfff096b3 junit tests depend on
repl. We need to reflect that dependency in our Eclipse project files.
|
|\ \ \ \
| | | | |
| | | | | |
Another grab bag of compiler optimizations
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
scalaPrimitives.init() represented 1% of a small (1s)
compilation run.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Only perform HashMap lookup of a tree until after checking more
cheaply if it refers to a symbol with by-name parameter type.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
- Don't create names just to perform prefix/suffix checks
- Don't create names, decode, *and* intern strings in ICode
|
| | | | | |
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
SI-8228 Avoid infinite loop with erroneous code, overloading
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
`isApplicableBasedOnArity` couldn't get of the ferris wheel after
as `followApply` kept insisting on another spin.
scala> ErrorType nonPrivateMember nme.apply
res0: $r.intp.global.Symbol = value apply
scala> res0.info
res1: $r.intp.global.Type = <error>
This commit makes `followApply` consider that an `ErrorType`
does not contain an `apply` member.
I also considered whether to do a deep check on the type
(`isErroneous`), but I can't motivate this with a test.
I tend to think we *shouldn't* do that: `List[${ErrorType}]`
still has an `apply` member that we should follow, right?
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Improve ExecutionContext implicitNotFound and docs
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
It is not good practice to import a specific ExecutionContext
all over the place; we shouldn't recommend that. People should
allow callers to specify the context in most cases and only
import the context in some central location in their code.
While we are at it, add some more comprehensive docs to
ExecutionContext which will hopefully give people enough understanding
to make decisions about it.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
SI-4997 deprecate StringLike.linesIterator for StringLike.lines
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Deprecated. lines is by far more consistent with the rest of the naming in the library.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
SI-8233 Fix regression in backend with boxed nulls
|
| | |_|_|_|/ /
| |/| | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Regressed in SI-7015 / 1b6661b8.
We do need to "unbox" the null (ie, drop a stack from and load
a null) in general. The only time we can avoid this is if the
tree we are adapting is a `Constant(Literal(null))`.
I've added a test for both backends. Only GenICode exhibited
the problem.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
SI-8170 Fix regression in TypeRef#transform w. PolyTypes
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
We'll get to the bottom of this as soon as we get
one of those Round Tuits.
|
| | |_|_|_|_|/
| |/| | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Regressed in SI-8046 / edc9edb7, by my hand.
At the time, I noticed the problem: transform wasn't accounting
for the potential Poly-Type-ness of its argument, and this would
lead to under-substituted types. The commit comment of edc9edb7
shows an example.
But the remedy wasn't the right one. The root problem is
that a TypeMap over a PolyType can return one with cloned
type parameter symbols, which means we've lose the ability
to substitute the type arguments into the result.
This commit detects up front whether the type-under-transform
is a PolyType with the current TypeRef's type parameters, and
just runs the `asSeenFrom` over its result type.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
PR #3233 cleanup
|
| | |/ / / / /
| |/| | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
- `::.head` became a `val`; excessive accessor removed
- SerializationProxy moved to `object List`
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
In addition to the invariant "parsing doesn’t enter new symbols",
which was respected and tested in 760df9843a910d6, we also must
ensure that "parsing doesn't call Symbol#info".
That happend indirectly if we call `companionModule`.
This commit just converts the name of `class TupleN` to a term
name, rather than getting the name of its companion.
No test is included. This is tested upstream in:
https://jenkins.scala-ide.org:8496/jenkins/view/Memory%20Leak%20Tests/job/scalac-memory-leaks-test-2.11.0/
|
|/ / / / / / |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
SI-8215: Document IllegalStateExceptions thrown by uninitialized MatchIterator from Regex (review by @heathermiller)
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
MatchIterator
See https://groups.google.com/forum/#!topic/scala-language/2T2wKVQiyVg
|
| | |_|_|/ /
| |/| | | |
| | | | | |
| | | | | |
| | | | | | |
The Content Hierarchy contains the same information, properly formatted.
See https://groups.google.com/d/msg/scala-language/2T2wKVQiyVg/3-iu19XSTxwJ
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Optimizations in tail calls
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Only store the position and reason for a failure to tailcall
transform a method if we ever need to report it, ie, if the
method was annotated with @tailrec.
Saves object hashing and map updates, profiling suggests
that this reduces the tailcalls phase from about 2% of compilation
time to about 1%.
Also, clear the maps eagerly after each compilation unit,
rather than letting them accumulate entries for the entire
run. Working with smaller maps can't hurt.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
From the "if a tree falls" department: don't bother create a finely
distinguished error messages about why the transform is inapplicable
if the current context doesn't demand it.
|
| | |_|_|_|/
| |/| | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Grab bag of compiler optimizations
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Cache it, rather than recreating it for each candidate overriden
method we encounter.
We can't do this eagerly as we trip a cycle in neg/t5093.scala.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Use `hasAttachment` rather than `getAttachment.exists`
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Shadowing is rarer than implausbility; this seems to be
the most efficient way to order these filters.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Avoid creating a throwaway array in existentialsNeeded.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
isPossibleRefinement reported as 1% of my profile, about half of that
was reported from the `EraserTyper`.
This commit restricts `checkMethodStructuralCompatible` to
the typer phase, and also moves in the feature warning for
implicits which was nearby.
I've also made a minor optimization to `overriddenSymbol` by
avoiding computing the method schema repeatedly.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Anything we can do to make erasure faster.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
It's called rather frequently. Tree#symbol is a megamorphic call,
which featured in profiles.
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Avoid the Applied extractor altogether, as that eagerly
creates `argss` which we don't need and which is quite
expensive.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
SI-7266 Stream leaks memory
|
| | |_|_|/ /
| |/| | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Changed tail-generation function to mutable and clear it after it's used to allow any captured memory to be freed once the tail has been generated.
(This is a case where a by-name parameter was used when a lazy val parameter was wanted instead. If we ever get lazy val parameters, we should switch to that.)
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
SI-7322 Interpolator idents must be encoded
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Otherwise, they are not found.
This matters for term names with a differential encoding.
Footnote, normally ident() encodes, but INTERPOLATIONID
is !isIdent, so that is not used here. Maybe that would
be the better improvement.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
SI-7124 make macro definitions prettier in scaladoc
|
| | |_|_|/ / /
| |/| | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Macros are now prettier in scaladoc, by
- hiding the `macroImpl` annotation
- showing the `macro` modifier in front
|