summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #3687 from smarter/fix_analysisBudget_offJason Zaugg2014-04-211-2/+9
|\ | | | | SI-8520 Fix -Dscalac.patmat.analysisBudget=off
| * SI-8520 Fix -Dscalac.patmat.analysisBudget=offGuillaume Martres2014-04-211-2/+9
| | | | | | | | Correctly parse "off" instead of throwing java.lang.NumberFormatException
* | Merge pull request #3682 from retronym/ticket/8497Jason Zaugg2014-04-213-15/+30
|\ \ | | | | | | SI-8497 Fix regression in pickling of AnnotatedTypes
| * | SI-8497 Fix regression in pickling of AnnotatedTypesJason Zaugg2014-04-143-15/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes an inconsistency introduced in these two spots: https://github.com/scala/scala/pull/3033/files#diff-6ce1a17ebee31068f41c36a8a2b3bc9aR79 https://github.com/scala/scala/pull/3033/files#diff-c455cb229f5227b1bcaa1544478fe3acR452 The bug shows up when pickling then unpickling an AnnotatedType that has only non-static annotations.
* | | Merge pull request #3618 from mkubala/SI-8144Jason Zaugg2014-04-219-53/+247
|\ \ \ | | | | | | | | SI-8144 permalinks in scaladoc
| * | | SI-8144 permalinks in scaladocMarcin Kubala2014-03-149-53/+247
| | | |
* | | | Merge pull request #3645 from retronym/ticket/8430Jason Zaugg2014-04-214-6/+66
|\ \ \ \ | | | | | | | | | | SI-8430 Less non-determinism in patmat exhautiveness warnings
| * | | | SI-8430 Less non-determinism in patmat exhautiveness warningsJason Zaugg2014-03-244-6/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Another mole whacked on the head by using `LinkedHashMap`. Caution: `LinkedHashMap` doesn't preserve its runtime type if you map through the generic interface. I've noted this gotcha as SI-8434. I've structured this patch to enforce that concrete collection with types, which is a good idea anyway. My method to track this down was to place breakpoints in `Hash{Map,Set}`.{foreach,iterator}` to see where that was used from within pattern match translation. This approach was drastically faster than my previous rounds of whack-a-mole. The counter-examples are still a bit off; I'm going to merge that aspect of this ticket with SI-7746, in which we've pinpointed the culpable part of the implementation, but haven't had success in fixing the bug.
* | | | | Merge pull request #3633 from som-snytt/issue/repl-needs-typerJason Zaugg2014-04-213-4/+15
|\ \ \ \ \ | | | | | | | | | | | | SI-8415 Exception handling in REPL init
| * | | | | SI-8415 Exception handling in REPL initSom Snytt2014-03-153-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Incremental robustness, and probe for typer phase. The probe would be unnecessary if repl contributed a terminal phase that "requires" whatever it needs; that is checked when the Run is built.
* | | | | | Merge pull request #3683 from retronym/release/2.11.0-bump-versionsJason Zaugg2014-04-212-5/+5
|\ \ \ \ \ \ | | | | | | | | | | | | | | Bump versions after release of 2.11.0-final
| * | | | | | master now targets 2.11.1-SNAPSHOTJason Zaugg2014-04-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unlike in previous major releases, we haven't branched for 2.12 yet. So for the time being, master will continue to host 2.11.x, and we'll focus on BC changes in 2.11.1 for the next month before branching.
| * | | | | | Bump versions after release of 2.11.0-finalJason Zaugg2014-04-161-4/+4
| | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | New versions.properties generated by: https://scala-webapps.epfl.ch/jenkins/view/scala-release-2.11.x/job/scala-release-2.11.x/57/
* | | | | | Merge pull request #3634 from retronym/ticket/7992Jason Zaugg2014-04-213-0/+40
|\ \ \ \ \ \ | | | | | | | | | | | | | | SI-7992 Fix super-accessor generation after a local class
| * | | | | | SI-7992 Fix super-accessor generation after a local classJason Zaugg2014-03-153-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The transformer in the superaccessors phase uses the var `validCurrentOwner` to track whether we're in a part of the code that won't end up in the host method, and as such, will need to access super-method via a super-accessor. But, this bit of bookkeeping was not correctly reset after traversing out of a local class. A `VerifyError` ensued. This commit changes `atOwner` to save and restore that flag, rather than leaving it set to `true`. I've also added a test variation using a by-name argument.
* | | | | | | Merge pull request #3658 from adriaanm/t8450Jason Zaugg2014-04-214-3/+22
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-8450 no "implicit numeric widening" in silent mode
| * | | | | | | SI-8450 no "implicit numeric widening" in silent modeAdriaan Moors2014-03-264-3/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this fix, we get a second, spurious warning. ``` t8450.scala:5: warning: implicit numeric widening def elapsed: Foo = (System.nanoTime - 100L).foo ^ t8450.scala:11: warning: implicit numeric widening def elapsed: Foo = (System.nanoTime - 100L).foo ^ error: No warnings can be incurred under -Xfatal-warnings. two warnings found one error found ``` By respecting silent contexts, we now get only one. I sneakily fixed similar occurrences without adding a test.
* | | | | | | | Merge pull request #3673 from retronym/ticket/8461Jason Zaugg2014-04-211-2/+4
|\ \ \ \ \ \ \ \ | |_|_|/ / / / / |/| | | | | | | SI-8461 -Xsource:2.10 mode for macro signature checks
| * | | | | | | SI-8461 -Xsource:2.10 mode for macro signature checksJason Zaugg2014-04-041-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I can't get the test to fail in partest, so I've resorted to a manual test case. % qbin/scalac -nobootcp -Dscala.usejavacp=false -Xsource:2.10 -classpath $HOME/.m2/repository/org/scala-lang/scala-library/2.10.3/scala-library-2.10.3.jar:$HOME/.m2/repository/org/scala-lang/scala-reflect/2.10.3/scala-reflect-2.10.3.jar test/files/pos/t8461/Impl.scala warning: there were 1 deprecation warning(s); re-run with -deprecation for details one warning found % qbin/scalac -nobootcp -Dscala.usejavacp=false -Xsource:2.11 -classpath $HOME/.m2/repository/org/scala-lang/scala-library/2.10.3/scala-library-2.10.3.jar:$HOME/.m2/repository/org/scala-lang/scala-reflect/2.10.3/scala-reflect-2.10.3.jar test/files/pos/t8461/Impl.scala test/files/pos/t8461/Impl.scala:6: error: macro implementations cannot have implicit parameters other than WeakTypeTag evidences def reads[A] = macro readsImpl[A] ^ one error found Before this change, when using a 2.10 JAR for scala-reflect, the macro signature validation checks failed. This was due to the fact that `scala.reflect.macros.Context` was changed in 2.11 to be a type alias. To get things working again, I've had to route both `defintions.{WhiteBoxContextClass, BlackBoxContextClass}` to the old location. This might mean that we misclassify the boxity under this mode. All that we can actually handle are blackbox macros, really, as macro expansion is likely to hit binary incompatibilites very quickly. We can refine this in subsequent releases.
* | | | | | | | Merge pull request #3676 from retronym/release/bump-versions-2.11.0-RC4v2.11.0Jason Zaugg2014-04-151-5/+5
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Bump versions after release of Scala 2.11.0-RC4
| * | | | | | | | Bump Akka version to 2.3.2Jason Zaugg2014-04-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Quoth @rkuhn: > seeing that you are cutting a Scala release, we’ll need to > decide on which Akka version to bundle with it. 2.3.0 has > some remoting bugs which we’d like to leave behind Given the difficult of overriding the bundled Akka version from the Scala script runner (SI-8472), we've deemed it worthwhile to bump the Akka version before releasing 2.11.0.
| * | | | | | | | Bump versions after release of Scala 2.11.0-RC4Jason Zaugg2014-04-151-4/+4
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Based on: https://scala-webapps.epfl.ch/jenkins/view/scala-release-2.11.x/job/scala-release-2.11.x/52/artifact/scala/versions.properties With a manual edit of the new property, scala.full.version, which was not written out by `ant -Dupdate.versions`. That has since been remedied.
* | | | | | | | Merge pull request #3679 from kurnevsky/masterJason Zaugg2014-04-101-1/+2
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Correction in the documentation.
| * | | | | | | | Correction in the documentation.kurnevsky2014-04-081-1/+2
| | |_|_|_|_|_|/ | |/| | | | | |
* | | | | | | | Merge pull request #3674 from densh/topic/ref-qq-guideJason Zaugg2014-04-102-5/+5
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Update references to quasiquotes guide
| * | | | | | | | Update references to quasiquotes guideDenys Shabalin2014-04-032-5/+5
| |/ / / / / / /
* | | | | | | | Merge pull request #3675 from adriaanm/renderfullverJason Zaugg2014-04-102-3/+9
|\ \ \ \ \ \ \ \ | |/ / / / / / / |/| | | | | | | Render scala.full.version to versions.properties.
| * | | | | | | Render scala.full.version to versions.properties.Adriaan Moors2014-04-042-3/+9
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When called with -Dupdate.versions, the build will render its current set of versions to versions properties. This is used during releases, when bootstrapping to a consistent set of modules that constitute a release. Particularly, scala.full.version is the non-SNAPSHOT full version of scala that's closed to maven.version.number. It's similar in spirit to the module build's snapshotScalaBinaryVersion, except that it's always the full version, so, e.g., 2.11.1 rather than 2.11. This version is so far only used to determine the dependency on scala-continuations-plugin in scala-dist.
* | | | | | | Merge pull request #3672 from retronym/topic/binary-versionv2.11.0-RC4Grzegorz Kossakowski2014-04-033-1/+8
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | Further tweak version of continuations plugin in scala-dist.pom
| * | | | | | Further tweak version of continuations plugin in scala-dist.pomJason Zaugg2014-04-033-1/+8
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While we must use full version, rather than the cross version (12720e699), we need to use latest non-snapshot version. This should avoid failures like: https://jenkins.scala-ide.org:8496/jenkins/view/Scala%20Xsource%20flag%20nightlies/job/Akka/63/console Such as: [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] :: UNRESOLVED DEPENDENCIES :: [warn] :::::::::::::::::::::::::::::::::::::::::::::: [warn] :: org.scala-lang.plugins#scala-continuations-plugin_2.11.0-SNAPSHOT;1.0.1: not found [warn] :::::::::::::::::::::::::::::::::::::::::::::: sbt.ResolveException: unresolved dependency: org.scala-lang.plugins#scala-continuations-plugin_2.11.0-SNAPSHOT;1.0.1:
* | | | | | Merge pull request #3671 from densh/si/8466Jason Zaugg2014-04-023-5/+20
|\ \ \ \ \ \ | | | | | | | | | | | | | | SI-8466 fix quasiquote crash on recursively iterable unlifting
| * | | | | | SI-8466 fix quasiquote crash on recursively iterable unliftingDenys Shabalin2014-04-023-5/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to handle unquoting quasiquotes needs to know if type is iterable and whats the depth of the iterable nesting which is called rank. (e.g. List[List[Tree]] is rank 2 iterable of Tree) The logic that checks depth of iterable nesting didn't take a situation where T is in fact Iterable[T] which caused infinite recursion in stripIterable function. In order to fix it stripIterable now always recurs no more than non-optional limit times.
* | | | | | | Merge pull request #3669 from adriaanm/rebase-3667Jason Zaugg2014-04-023-42/+92
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | SI-8460 Fix regression in implicit divergence recovery
| * | | | | | Refactor rankImplicits, add some more docsAdriaan Moors2014-04-011-24/+26
| | | | | | |
| * | | | | | Refactor: keep DivergentImplicitRecovery logic together.Adriaan Moors2014-04-011-12/+12
| | | | | | |
| * | | | | | SI-8460 Fix regression in divergent implicit recoveryJason Zaugg2014-03-313-5/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implicit search detects likely cycles by looking at the stack of open implicits and checking the same implicit appears twice, and if the second occurrence is trying satisfy an implicit search for a "dominant" type. Originally, this condition immediately failed the entire implicit search. However, since Scala 2.10, this mechanism has been refined to continue searching after the first divergent implicit is detected. If a second divergence is found, we fail immediately. If the followup search fails, we report the first divergence. Otherwise, we take the successful result. This mechanism was originally built around exceptions. This proved to be fragile, and was refactored in SI-7291 / accaa314 to instead use the `Context.errors` to control the process. But, since that change, the pattern of implicits in scalanlp/breeze and Shapeless have been prone to reporting the divergent implicit errors where they used to recover. So long as we left the `DivergentImplictTypeError` that originates from a nested implicit search in `context.errors`, we are unable to successfully typecheck other candidates. This commit instead stashes the first such error away in `DivergentImplicitRecovery`, to clear the way for the alternative path to succeed. We must retain any other divergent implicit errors, as witnessed by test/files/neg/t2031.scala, which loops unless we retain divergent implicit errors that we don't stash in `DivergentImplicitRecovery`.
| * | | | | | Refactor handling of failures in implicit searchJason Zaugg2014-03-312-18/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Better encapsulation for `DivergentImplicitRecovery` by replacing the vars `countDown` and `implicitSym` with a single var holding `Option[DivergentImplicitTypeError]`. Also adds a pending test for SI-8460 that will be addressed in the next commit. This commit is just groundwork and should not change any results of implicit search.
* | | | | | | Rebase #3665Adriaan Moors2014-03-311-3/+3
|/ / / / / /
* | | | | | Merge pull request #3668 from retronym/topic/travis-sshAdriaan Moors2014-03-311-3/+1
|\ \ \ \ \ \ | | | | | | | | | | | | | | Disable more of the Travis spec build for PR validation
| * | | | | | Disable more of the Travis spec build for PR validationJason Zaugg2014-03-311-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So as to avoid: $ ssh-add -D All identities removed. $ ssh-add spec/id_dsa_travis Enter passphrase for spec/id_dsa_travis: No output has been received in the last 10 minutes, this potentially indicates a stalled build or something wrong with the build itself.
* | | | | | | Merge pull request #3664 from iainmcgin/lexicalfixAdriaan Moors2014-03-311-19/+20
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | Minor typographical fixes for lexical syntax chapter
| * | | | | | Minor typographical fixes for lexical syntax chapterIain McGinniss2014-03-281-19/+20
| | | | | | |
* | | | | | | Merge pull request #3666 from adriaanm/specAdriaan Moors2014-03-304-71/+46
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | Spec cleanups
| * | | | | | Don't mention C#Adriaan Moors2014-03-302-6/+5
| | | | | | |
| * | | | | | Reducing overlap of code and math.Adriaan Moors2014-03-281-36/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prefer smaller islands of `code` in bigger sections of $math$. Do not include $`code` in math$, and avoid `$math$ in code`.
| * | | | | | Simplify CSS, bigger monospace to match mathAdriaan Moors2014-03-281-29/+8
|/ / / / / /
* | | | | | Merge pull request #3663 from adriaanm/specAdriaan Moors2014-03-2820-217/+244
|\ \ \ \ \ \ | | | | | | | | | | | | | | More cleanup for the spec. Ported over @som-snytt's PRs.
| * | | | | | SI-6054 Modern eta-expansion examples that almost runSom Snytt2014-03-281-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This wasn't so easy after all. The clever one is to show that `Option.fold(=>Z)` preserves the by-nameness of the zero value, which may or may not be in the spec yet. The addition to 6.26.5 was (I think) rejected as implementation-specific; it should use the wording from 6.6 about "preserving by-nameness" or "by-namity" (the latter has the advantage of sounding both more technical and somewhat inane).
| * | | | | | SI-6069 Preserve by-name during eta-expansionSom Snytt2014-03-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This wording attempts to describe the behavior change in SI-5610 while remaining non-committal about the mechanism. It refers to the section on function applications and attempts to use similar language.
| * | | | | | Stubs for references chapter, remains TODOAdriaan Moors2014-03-281-0/+14
| | | | | | |