summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #3395 from adriaanm/dist-cleanupJason Zaugg2014-02-0610-101/+2
|\ | | | | Dist cleanup
| * Remove cruft from pom.Adriaan Moors2014-01-219-100/+1
| | | | | | | | | | My understanding is distributionManagement is only needed to configure maven locally for publishing. Since we do that it ant, getting rid of it.
| * Scaladoc jars should go to /api.Adriaan Moors2014-01-211-1/+1
| |
* | Merge pull request #3469 from adriaanm/t8239Jason Zaugg2014-02-061-2/+14
|\ \ | | | | | | don't loop forever in ContextTrees.locateContextTree
| * | SI-8239 don't loop forever in ContextTrees.locateContextTreeAdriaan Moors2014-02-051-2/+14
| | | | | | | | | | | | Made loop invariant / recursion metric explicit.
* | | Merge pull request #3473 from gkossakowski/update-eclipse-filesAdriaan Moors2014-02-051-0/+1
|\ \ \ | | | | | | | | Add repl as dependency of test-junit Eclipse project.
| * | | Add repl as dependency of test-junit Eclipse project.Grzegorz Kossakowski2014-02-061-0/+1
| | | | | | | | | | | | | | | | | | | | Since 8f20fa23dbb5b000f0889132b8c6e2acfff096b3 junit tests depend on repl. We need to reflect that dependency in our Eclipse project files.
* | | | Merge pull request #3449 from retronym/topic/opt11Grzegorz Kossakowski2014-02-056-22/+49
|\ \ \ \ | | | | | | | | | | Another grab bag of compiler optimizations
| * | | | Avoid work in GenICode#run when inactive.Jason Zaugg2014-01-311-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | scalaPrimitives.init() represented 1% of a small (1s) compilation run.
| * | | | Optimization in UncurryJason Zaugg2014-01-311-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Only perform HashMap lookup of a tree until after checking more cheaply if it refers to a symbol with by-name parameter type.
| * | | | Avoid needless Name creationJason Zaugg2014-01-313-15/+30
| | | | | | | | | | | | | | | | | | | | | | | | | - Don't create names just to perform prefix/suffix checks - Don't create names, decode, *and* intern strings in ICode
| * | | | Optimize generic signatures utility method `dotCleanup`Jason Zaugg2014-01-311-3/+14
| | | | |
* | | | | Merge pull request #3457 from retronym/ticket/8228Adriaan Moors2014-02-053-0/+12
|\ \ \ \ \ | |_|_|/ / |/| | | | SI-8228 Avoid infinite loop with erroneous code, overloading
| * | | | SI-8228 Avoid infinite loop with erroneous code, overloadingJason Zaugg2014-02-023-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `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?
* | | | | Merge pull request #3432 from havocp/patch-1Adriaan Moors2014-02-051-2/+38
|\ \ \ \ \ | | | | | | | | | | | | Improve ExecutionContext implicitNotFound and docs
| * | | | | Improve ExecutionContext implicitNotFound and docsHavoc Pennington2014-01-311-2/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | | Merge pull request #3453 from Ichoran/issue/4997Adriaan Moors2014-02-052-1/+2
|\ \ \ \ \ \ | | | | | | | | | | | | | | SI-4997 deprecate StringLike.linesIterator for StringLike.lines
| * | | | | | SI-4997 deprecate StringLike.linesIterator for StringLike.linesRex Kerr2014-01-312-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Deprecated. lines is by far more consistent with the rest of the naming in the library.
* | | | | | | Merge pull request #3462 from retronym/ticket/8233Adriaan Moors2014-02-054-2/+49
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-8233 Fix regression in backend with boxed nulls
| * | | | | | | SI-8233 Fix regression in backend with boxed nullsJason Zaugg2014-02-054-2/+49
| | |_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | | | Merge pull request #3400 from retronym/ticket/8170Adriaan Moors2014-02-053-5/+84
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-8170 Fix regression in TypeRef#transform w. PolyTypes
| * | | | | | | SI-8170 Posing outstanding questions as TODOsJason Zaugg2014-02-051-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We'll get to the bottom of this as soon as we get one of those Round Tuits.
| * | | | | | | SI-8170 Fix regression in TypeRef#transform w. PolyTypesJason Zaugg2014-01-223-5/+68
| | |_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | | | Merge pull request #3465 from pavelpavlov/list-head-valAdriaan Moors2014-02-052-33/+32
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | PR #3233 cleanup
| * | | | | | | PR #3233 cleanupPavel Pavlov2014-02-052-33/+32
| | |/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | - `::.head` became a `val`; excessive accessor removed - SerializationProxy moved to `object List`
* | | | | | | Merge pull request #3467 from retronym/ticket/8030-companionDen Shabalin2014-02-051-1/+1
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-8030 Restore thread safety to the parser
| * | | | | | | SI-8030 Restore thread safety to the parserJason Zaugg2014-02-051-1/+1
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/
* | | | | | | Merge pull request #3466 from pavelpavlov/typo-anoynmousJason Zaugg2014-02-052-4/+4
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | Fix typo in compiler's error message: anoynmous => anonymous
| * | | | | | Fix typo in compiler's error message: anoynmous => anonymousPavel Pavlov2014-02-052-4/+4
|/ / / / / /
* | | | | | Merge pull request #3439 from demobox/issue-8215Adriaan Moors2014-02-031-11/+28
|\ \ \ \ \ \ | | | | | | | | | | | | | | SI-8215: Document IllegalStateExceptions thrown by uninitialized MatchIterator from Regex (review by @heathermiller)
| * | | | | | SI-8215 Documenting the possibility of IllegalStateExceptions when using ↵Andrew Phillips2014-02-011-2/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MatchIterator See https://groups.google.com/forum/#!topic/scala-language/2T2wKVQiyVg
| * | | | | | SI-8215 Removing ASCII art class diagram in Scaladoc for RegexAndrew Phillips2014-02-011-9/+1
| | |_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | The Content Hierarchy contains the same information, properly formatted. See https://groups.google.com/d/msg/scala-language/2T2wKVQiyVg/3-iu19XSTxwJ
* | | | | | Merge pull request #3438 from Feodorov/ticket/4014Adriaan Moors2014-02-036-4/+74
|\ \ \ \ \ \ | | | | | | | | | | | | | | SI-4014 Scaladoc omits @author
| * | | | | | SI-4014 Scaladoc omits @authorKonstantin Fedorov2014-02-026-4/+74
|/ / / / / /
* | | | | | Merge pull request #3448 from retronym/topic/opt10Grzegorz Kossakowski2014-02-021-4/+23
|\ \ \ \ \ \ | | | | | | | | | | | | | | Optimizations in tail calls
| * | | | | | Optimization in TailCallsJason Zaugg2014-01-311-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | | Optimize tailcall eliminationJason Zaugg2014-01-311-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | | Don't try to eliminate tail calls in constructors.Jason Zaugg2014-01-311-1/+6
| | |_|_|_|/ | |/| | | |
* | | | | | Merge pull request #3445 from retronym/topic/opt7Grzegorz Kossakowski2014-02-029-26/+81
|\ \ \ \ \ \ | | | | | | | | | | | | | | Grab bag of compiler optimizations
| * | | | | | Optimize use of methodTypeSchemaJason Zaugg2014-02-011-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | | Optimize lookup of tree/symbol attachment search.Jason Zaugg2014-02-013-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Use `hasAttachment` rather than `getAttachment.exists`
| * | | | | | More overrides for SetNJason Zaugg2014-02-011-0/+46
| | | | | | |
| * | | | | | Implicits: Move shadowing checks after plausibility checksJason Zaugg2014-02-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Shadowing is rarer than implausbility; this seems to be the most efficient way to order these filters.
| * | | | | | Optimization in InstantiateDependentMapJason Zaugg2014-02-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid creating a throwaway array in existentialsNeeded.
| * | | | | | Optimize typedDefDef: disable some checks post typerJason Zaugg2014-01-311-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | | | Typers#stabilize is a noop in erasure's typer.Jason Zaugg2014-01-312-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Anything we can do to make erasure faster.
| * | | | | | Optimize TreeInfo#isMacroApplication.Jason Zaugg2014-01-311-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's called rather frequently. Tree#symbol is a megamorphic call, which featured in profiles.
| * | | | | | Optimize isSelfSuperCallJason Zaugg2014-01-311-7/+7
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid the Applied extractor altogether, as that eagerly creates `argss` which we don't need and which is quite expensive.
* | | | | | Merge pull request #3450 from Ichoran/issue/7266Grzegorz Kossakowski2014-02-021-2/+6
|\ \ \ \ \ \ | | | | | | | | | | | | | | SI-7266 Stream leaks memory
| * | | | | | SI-7266 Stream leaks memoryRex Kerr2014-01-311-2/+6
| | |_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.)