summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #1645 from scalamacros/ticket/6673Josh Suereth2012-11-214-4/+28
|\ | | | | SI-6673 fixes macro problems with eta expansions
| * adds comments to standard attachmentsEugene Burmako2012-11-181-0/+15
| |
| * SI-6673 fixes macro problems with eta expansionsEugene Burmako2012-11-184-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Eta expansions previously caused the typer to disable macros. That was done in order to detect eta expansion of macro defs and show the user an appropriate error message. Macros were disabled because to find out whether we're expanding a macro def, we need to get its symbol, and to get a symbol of something we need to typecheck that something. However typechecking automatically expands macros, so, unless we disable macros, after a typecheck we won't be able to analyze macro occurrences anymore. Unfortunately this solution has a fatal flaw. By disabling macros we not only prevent the eta-expandee from macro expanding, but also all the subtrees of that eta-expandee (see SI-6673). This commit adds a mechanism for fine-grained control over macro expansion. Now it's possible to prohibit only the node, but not its children from macro expanding.
* | Merge pull request #1653 from retronym/ticket/6695Josh Suereth2012-11-211-0/+18
|\ \ | | | | | | SI-6695 Test case for fixed Array match bug
| * | SI-6695 Test case for fixed Array match bugJason Zaugg2012-11-211-0/+18
| | |
* | | Merge pull request #1596 from soc/SI-6632+SI-6633Josh Suereth2012-11-205-49/+112
|\ \ \ | | | | | | | | SI-6632 SI-6633 Fixes issues and data corruption in ListBuffer
| * | | SI-6632 SI-6633 Fixes issues and data corruption in ListBufferSimon Ochsenreither2012-11-095-49/+112
| | | | | | | | | | | | | | | | | | | | - Disallow negative positions for ListBuffer#insert/insertAll/update - Fix data corruption issue in ListBuffer#insert
* | | | Merge pull request #1597 from soc/SI-6634Josh Suereth2012-11-203-0/+116
|\ \ \ \ | | | | | | | | | | SI-6634 Fixes data corruption issue in ListBuffer#remove
| * | | | SI-6634 Fixes data corruption issue in ListBuffer#removeSimon Ochsenreither2012-11-163-0/+116
| | | | | | | | | | | | | | | | | | | | | | | | | This is the cut-down version with minimally invasive changes, e. g. keeping the "auto-correcting" bounds algorithm.
* | | | | Merge pull request #1620 from namin/si-6551Josh Suereth2012-11-202-4/+18
|\ \ \ \ \ | | | | | | | | | | | | Fixes SI-6551.
| * | | | | SI-6551: don't insert apply call in polymorphic expression.Nada Amin2012-11-162-4/+18
| | | | | | | | | | | | | | | | | | | | | | | | Don't rewrite an explicit apply method to dynamic polytypes.
* | | | | | Merge pull request #1621 from jannic/SI-6663-2.10.xJosh Suereth2012-11-205-1/+49
|\ \ \ \ \ \ | | | | | | | | | | | | | | Si 6663 2.10.x fix type parameter on selectDynamic
| * | | | | | SI-6663: don't ignore type parameter on selectDynamic invocationJan Niehusmann2012-11-165-1/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix mkInvoke to handle selectDynamic calls of the form new C.foo[T].xyz or new C.foo[T].xyz :U (where C extends Dynamic) Without this patch, the type parameter was silently ignored, and possibly inferred to a different. This patch fixes mkInvoke to handle these cases, where ctxTree has the form Select(TypeApply(fun, targs), nme) or Typed(...)
* | | | | | | Merge pull request #1641 from sschaef/doc-update/multimapJosh Suereth2012-11-201-3/+32
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Scaladoc update for collection.mutable.MultiMap
| * | | | | | | Scaladoc update for collection.mutable.MultiMapSimon Schaefer2012-11-171-3/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Addition of source code example on how to use a MultiMap and its defined methods. Minor correction in documentation for method `removeBinding`.
* | | | | | | | Merge pull request #1644 from vigdorchik/group_searchJosh Suereth2012-11-201-19/+7
|\ \ \ \ \ \ \ \ | |_|_|_|_|_|/ / |/| | | | | | | Restore the opimization apparently lost after merge.
| * | | | | | | Restore the opimization apparently lost after merge.Eugene Vigdorchik2012-11-181-19/+7
| |/ / / / / /
* | | | | | | Merge pull request #1628 from axel22/issue/6150-backportJosh Suereth2012-11-196-31/+91
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | Fixes SI-6150 - backport to 2.10.x branch.
| * | | | | | Fixes SI-6150 - backport to 2.10.x branch.Aleksandar Prokopec2012-11-146-31/+91
| |/ / / / /
* | | | | | Merge pull request #1624 from adriaanm/paulp-issue/5330-2.10.xAdriaan Moors2012-11-165-3/+61
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | SI-5330, SI-6014 deal with existential self-type
| * | | | | SI-5330, SI-6014 deal with existential self-typeAdriaan Moors2012-11-145-3/+61
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This has been broken since https://github.com/scala/scala/commit/b7b81ca2#L0L567. The existential rash is treated in a similar manner as in fc24db4c. Conceptually, the fix would be `def selfTypeSkolemized = widen.skolemizeExistential.narrow`, but simply widening before narrowing achieves the same thing. Since we're in existential voodoo territory, let's go for the minimal fix: replacing `this.narrow` by `widen.narrow`. -- Original patch by @retronym in #1074, refined by @paulp to only perform widen.narrow incantation if there are existentials present in the widened type, as narrowing is expensive when the type is not a singleton. The result is that compiling the entirety of quick, that code path is hit only 143 times. All the other calls hit .narrow directly as before. It looks like the definition of negligible in the diff of -Ystatistics when compiling src/library/scala/collection: < #symbols : 306315 --- > #symbols : 306320 12c13 < #unique types : 293859 --- > #unique types : 293865 I'm assuming based on the 2/1000ths of a percent increase in symbol and type creation that wall clock is manageable, but I didn't measure it.
* | | | | Merge pull request #1593 from adriaanm/guidelines-2.10.xAdriaan Moors2012-11-161-0/+66
|\ \ \ \ \ | |_|/ / / |/| | | | show developer guidelines on opening pull request
| * | | | show developer guidelines on opening pull requestAdriaan Moors2012-11-081-0/+66
| | |/ / | |/| | | | | | | | | | | | | | Includes "Improvements and typo fixes to CONTRIBUTING.md" by @heathercmiller as well as feedback from @retronym.
* | | | Merge pull request #1612 from scalamacros/topic/showrawEugene Burmako2012-11-153-2/+22
|\ \ \ \ | |_|/ / |/| | | sane printing of renamed imports
| * | | sane printing of renamed importsEugene Burmako2012-11-133-2/+22
| | |/ | |/| | | | | | | | | | Having a select named "foo" with an underlying symbol named "bar" and trying to make sense of all that by prettyprinting is very confusing
* | | Merge pull request #1585 from retronym/ticket/6539-2Eugene Burmako2012-11-147-0/+57
|\ \ \ | | | | | | | | SI-6539 Annotation for methods unfit for post-typer ASTs
| * | | Refine @compileTimeOnlyJason Zaugg2012-11-086-23/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Don't default the message, and show it exclusively. - Fix cut-and-pasto in the @since tag - Be tolerant if the annotaion class is missing, as seems to have been the case compiling the continuations plugin. - s/\t/ / in the test file to show the errors are positioned correctly. - Use defensive getOrElse
| * | | SI-6539 Annotation for methods unfit for post-typer ASTsJason Zaugg2012-11-067-0/+52
| | |/ | |/| | | | | | | | | | | | | | | | | | | Motivated by the `.value` method in the SBT task-syntax branch, which should only be called within the context of the argument to a setting initialization macro. The facility is akin to a fatal deprecation.
* | | Merge pull request #1618 from scalamacros/ticket/6662Eugene Burmako2012-11-144-1/+18
|\ \ \ | | | | | | | | Fix for SI-6662, macro failing too early.
| * | | Fix for SI-6662, macro failing too early.Paul Phillips2012-11-144-1/+18
| | |/ | |/| | | | | | | | | | Don't give up before you try tupling. Who knows what someone might be doing with a Unit.
* | | Merge pull request #1583 from dragos/issue/fix-6616Adriaan Moors2012-11-134-9/+41
|\ \ \ | |/ / |/| | SI-6616 Check that unsafe operations are only called on the presentation...
| * | SI-6616 Check that unsafe operations are only called on the presentation ↵Iulian Dragos2012-11-064-9/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | compiler thread. The method that checks the actual constraint is @elidable, expecting it to be used for nightly builds but stripped-off in release builds. This way we don't lose any performance, but 'fail-fast' in IDE nightlies. This assumes that release builds will have at least `-Xelide-below ASSERTION`, but this pull request does not do that.
* | | Merge pull request #1610 from scalamacros/topic/typetags-local-classesEugene Burmako2012-11-122-2/+2
|\ \ \ | | | | | | | | better error when typetagging local classes
| * | | better error when typetagging local classesEugene Burmako2012-11-122-2/+2
| | |/ | |/| | | | | | | Inspired by https://issues.scala-lang.org/browse/SI-6649
* | | Merge pull request #1609 from scalamacros/topic/showraw-nodeprintersEugene Burmako2012-11-121-1/+1
|\ \ \ | | | | | | | | -Yshow-trees-compact respects other options
| * | | -Yshow-trees-compact respects other optionsEugene Burmako2012-11-111-1/+1
| |/ / | | | | | | | | | | | | | | | | | | | | | The aforementioned tree printer now respects other tree printing options such as -uniqid and -Xprint-types. This helps debugging reify, which uses `nodePrinters`, not `showRaw` to print its trees, because back then `showRaw` didn't exist yet.
* | | Merge pull request #1602 from gkossakowski/wrong-implicit-classTagAdriaan Moors2012-11-121-3/+3
|\ \ \ | |/ / |/| | Fix type of the custom `ClassTag` in `PatternMatching.scala`
| * | Fix type of the custom `ClassTag` in `PatternMatching.scala`Grzegorz Kossakowski2012-11-091-3/+3
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In fb315772 custom ClassTags were introduced to optimize array creation in hot places. The idea was that if `Array[T]` is allocated through `ClassTag[T]` (which is essentially a factory for Array[T]) we would introduce a custom class implementing `ClassTag[T]` interface and would have specialized array allocation instruction instead of having reflective call as it's being done with default (compiler synthesized) implementation of `ClassTag[T]`. In case of `PatternMatching.scala` I made a mistake of providing `ClassTag[Array[Clause]]` instead of `ClassTag[Clause]` so that value would never be used and compiler still would resolve implicit through default mechanism. This has been discovered thanks to @paulp's work on unused value detection. Review by @paulp.
* | Merge pull request #1574 from jsuereth/merge-2.10.0Adriaan Moors2012-11-051332-3797/+1970
|\ \ | |/ |/| Merge 2.10.0-RC2 into 2.10.x
| * Merge branch '2.10.0-wip' into merge-2.10.0Josh Suereth2012-11-051332-3797/+1970
|/|
| * Merge pull request #1569 from jsuereth/fix/osgi-manifestsv2.10.0-RC2Adriaan Moors2012-11-041-1/+2
| |\ | | | | | | Fixing issue where OSGi bundles weren't getting used for distribution.
| | * Fixing issue where OSGi bundles weren't getting used for distribution.Josh Suereth2012-11-041-1/+2
| | |
| * | Merge pull request #1566 from densh/topic/asSeenFrom-exampleJosh Suereth2012-11-041-4/+20
| |\ \ | | | | | | | | Fixes example in Type.asSeenFrom
| | * | Fixes example in Type.asSeenFromDen Shabalin2012-11-031-4/+20
| | |/ | | | | | | | | | | | | | | | It was written in some form of non-executable pseudo-code before and that might be quite confusing for people who are not familiar with scala reflection.
| * | Merge pull request #1559 from heathermiller/copyright-updateJosh Suereth2012-11-041240-1249/+1248
| |\ \ | | |/ | |/| Updated copyright dates throughout compiler and stdlib for upcoming release
| | * Brings copyrights in Scaladoc footer and manpage up-to-date, from 2011/12 to ↵Heather Miller2012-11-022-2/+2
| | | | | | | | | | | | 2013
| | * Brings all copyrights (in comments) up-to-date, from 2011/12 to 2013Heather Miller2012-11-021240-1247/+1246
| | |
| * | Merge pull request #1562 from paulp/issue/6600Josh Suereth2012-11-023-6/+23
| |\ \ | | | | | | | | Fix for SI-6600, regression with ScalaNumber.
| | * | Fix for SI-6600, regression with ScalaNumber.Paul Phillips2012-11-023-6/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not much in the end; I divided ScalaNumericConversions into two traits such that the ScalaNumericAnyConversions can be used in value classes, and ScalaNumericConversions can override methods in ScalaNumber (since one trait cannot do both those things.) The fact that ScalaNumber is privileged for equality but a) extends java.lang.Number and therefore b) cannot be a value class is something we will want to revisit real soon.
| * | | Merge pull request #1561 from gkossakowski/ticket/6562Adriaan Moors2012-11-024-8/+31
| |\ \ \ | | |/ / | |/| | SI-6562 Fix crash with class nested in @inline method