summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | introduces extensibility hooks into the reifierEugene Burmako2013-07-082-11/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Quasiquoting macros are surprisingly similar to reifying macros, since both take something and then produce Scala ASTs for that something. Therefore the upcoming quasiquote patch reuses the vanilla reifier, adjusting it in key points to enable splicing and extraction to support string interpolation syntax. In this commit we prepare the reifier for being reused later on, adding a modest amound of extensibility hooks.
| * | | | | | moves template creation logic from nsc to reflectDen Shabalin2013-07-086-79/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This routine is going to be necessary in scala-reflect.jar to support ClassDef construction/deconstruction in the upcoming quasiquote patch.
| * | | | | | adds the lookahead routine to the parserDen Shabalin2013-07-083-20/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduces a scoping operator used to temporarily look into the future. Backs up scanner data before evaluating a block and restores it after. Not used anywhere, only necessary for the upcoming quasiquote patch in order to reliably detect and accordingly process holes in quasiquoted Scala syntax.
| * | | | | | extensibility hooks for parserDen Shabalin2013-07-081-8/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the second of the two patches to the parser necessary for quasiquotes to function. This one applies just a couple of minor changes to the way parser works, so that quasiquotes will be able to extend it to support some corner cases arising from splicing (see the subsequent quasiquote commit for more details).
| * | | | | | moves TreeBuilder into the parserDen Shabalin2013-07-085-64/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the first of the two patches to the parser necessary for quasiquotes to function. This one moves TreeBuilder from Global to the internals of the Parsers, so that quasiquotes will be able to override it later to support some corner cases arising from splicing (see the subsequent quasiquote commit for more details). Surprisingly enough, almost noone used TreeBuilder outside the parser, and it was necessary to move just a couple of methods to TreeGen to satisfy broken dependencies.
* | | | | | | Merge pull request #2717 from retronym/ticket/6574Adriaan Moors2013-07-106-4/+79
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-6574 Support @tailrec for extension methods.
| * | | | | | | SI-6574 Support @tailrec for extension methods.Jason Zaugg2013-07-106-4/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, when the body of an extension method is transplanted to the companion object, recursive calls point back to the original instance method. That changes during erasure, but this is too late for tail call analysis/elimination. This commit eagerly updates the recursive calls to point to the extension method in the companion. It also removes the @tailrec annotation from the original method.
* | | | | | | | Merge pull request #2713 from VladUreche/issue/7638-masterAdriaan Moors2013-07-102-1/+52
|\ \ \ \ \ \ \ \ | |_|_|_|_|_|_|/ |/| | | | | | | SI-7638 Superaccessor lookup after specialization
| * | | | | | | SI-7638 Superaccessor lookup after specializationVlad Ureche2013-07-082-1/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The crash was caused by a symbol lookup to rewire the super calls, done after pickler, but specialization added new traits and new members, thus making the super rewiring impossible. To avoid such problems, this patch moves symbol lookup after specialization, so the changes done by specialization (and miniboxing) become visible to mixin. Review by @adriaanm or @retronym.
* | | | | | | | Merge pull request #2704 from adriaanm/modularizeAdriaan Moors2013-07-09151-507/+814
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Separate jars for XML, Parser Combinators. Use released JLine.
| * | | | | | | | scaladoc needs xml and parser-combinatorsAdriaan Moors2013-07-081-23/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Concretely, update scala-compiler's pom to list scala-xml and scala-parser-combinators on behalf of scaladoc. NOTE: when spinning off scaladoc, move dependencies to its own pom
| * | | | | | | | Updated eclipse project files.Adriaan Moors2013-07-0516-75/+138
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Set everything up so that soon-to-be independent modules are compiled with the Eclipse plugin's compiler & library (2.11.0-M3 currently). Most projects still compile with 2.11.0-M3, but partest will need a nightly build of 2.11.
| * | | | | | | | Add meta-information for dbuild.Adriaan Moors2013-07-052-0/+313
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The next version of [dbuild](http://typesafehub.github.io/distributed-build/0.5.3/index.html) will parse `dbuild-meta.json` to determine which jars are produced by a Scala build. This way we can modularize without changing dbuild itself. Yes, I know `dbuild-meta.json` should be generated during the build. However, given the state of our build.xml, I think this is pointless. My goal is to generate build.xml, dbuild-meta.json and Eclipse projects from a higher-level description of our build. Baby steps... Including improvements by @cunei: - Removing outdated field "uri" from ExtractedBuildMeta - Changed "partest" to "scala-partest" (the actual jar name)
| * | | | | | | | Unfork jline: use vanilla jline 2.11 as a dependency.Adriaan Moors2013-07-0513-109/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Notes: - no longer specifying terminal by class name in scripts (using 'unix') - jline doesn't need a separate jansi dependency; it includes its own version according to: http://mvnrepository.com/artifact/jline/jline/2.11
| * | | | | | | | Spin off parser combinators to scala-parser-combinators.jar.Adriaan Moors2013-07-0533-11/+110
| | | | | | | | |
| * | | | | | | | Spin off src/library/scala/xml to src/xml/scala/xml.Adriaan Moors2013-07-0593-49/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: - Remove the last vestiges of xml from Predef and Contexts. - Change build to compile scala.xml to scala-xml.jar. - Deploy scala-xml module to maven. - Update partest accordingly. Note: An older compiler cannot use the new standard library to compile projects that use XML. Thus, skipping locker will break the build until we use 2.11.0-M4 for STARR. In the future build process, where we drop locker, we would have to release a milestone that supports the old and the new approach to xml. As soon as we'd be using that new milestone for starr, we could drop support for the old approach.
| * | | | | | | | No more duplication in maven-deploy.xml.Adriaan Moors2013-07-055-287/+87
| | |_|_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I just couldn't stand the incredible mess in there anymore. More cleanup to come. For now, suffice it to say you need only add one line per new module.
* | | | | | | | Merge pull request #2650 from paulp/issue/6221Adriaan Moors2013-07-088-18/+80
|\ \ \ \ \ \ \ \ | |_|_|_|/ / / / |/| | | | | | | SI-6221 inference with Function1 subtypes.
| * | | | | | | SI-6221 inference with Function1 subtypes.Paul Phillips2013-06-138-18/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There appears to be no upper bound on the number of places we have to remove calls to typeSymbol and introduce calls to baseType. This one was type inference for function parameter types: worked when expected type was A => B, but not if there was an implicit conversion from A => B to the expected type.
* | | | | | | | Merge pull request #2688 from yllan/SI-7614Grzegorz Kossakowski2013-07-063-2/+122
|\ \ \ \ \ \ \ \ | |_|_|_|_|/ / / |/| | | | | | | SI-7614 Minimize the times of evaluation f in TraversableOnce.maxBy/minBy
| * | | | | | | SI-7614 Minimize the times of evaluation f in TraversableOnce.maxBy/minBy.yllan2013-07-063-2/+122
| | |_|/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the previous implementation, maxBy/minBy will evaluate most of its elements with f twice to get the ordering. That results (2n - 2) evaluations of f. I save both the element and result of evaluation to a tuple so that it doesn't need to re-evaluate f on next comparison. Thus only n evaluations of f, that is the optimal. Note that the original implementation always returns the first matched if more than one element evaluated to same largest/smallest value of f. I document this behavior explicitly in this commit as well.
* | | | | | | Merge pull request #2707 from jedesah/patch-1Adriaan Moors2013-07-051-1/+1
|\ \ \ \ \ \ \ | |_|_|_|_|_|/ |/| | | | | | Fix typo in documentation
| * | | | | | Fix typo in documentationJean-Remi Desjardins2013-07-051-1/+1
|/ / / / / /
* | | | | | Merge pull request #2695 from xuwei-k/bigint-bigdecimal-typoAdriaan Moors2013-07-032-2/+2
|\ \ \ \ \ \ | | | | | | | | | | | | | | fix typo
| * | | | | | fix typoxuwei-k2013-06-302-2/+2
| | |_|_|_|/ | |/| | | |
* | | | | | Merge pull request #2687 from soc/topic/io-to-interactiveAdriaan Moors2013-07-036-7/+7
|\ \ \ \ \ \ | | | | | | | | | | | | | | Move some code from s.t.n.io to s.t.n.interactive
| * | | | | | Move some code from s.t.n.io to s.t.n.interactiveSimon Ochsenreither2013-06-276-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The only usages of scala.tools.nsc.io.{Lexer,Pickler,PrettyWriter, Replayer} can be found in scala.tools.nsc.interactive. Let's move those files closer to their dependencies.
* | | | | | | Merge pull request #2660 from retronym/ticket/7582Adriaan Moors2013-07-0313-4/+105
|\ \ \ \ \ \ \ | |_|_|_|_|/ / |/| | | | | | SI-7582 Only inline accessible calls to package-private Java code
| * | | | | | SI-7582 Only inline accessible calls to package-private Java codeJason Zaugg2013-06-199-3/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Two problems here. The inliner was using `isPrivate` / `isProtected` to determine access. The fallthrough considered things to be (bytecode) public. This is okay in practice for Scala code, which never emits package private code. Secondly, we must check accessibility of the called symbol *and* its owner. This case is tested in `run/t7582b`. This commit tightens the check for Java defined symbols: a) check the owner, and b) don't assume that `! isPrivate` is accessible.
| * | | | | | SI-7582 ClassfileParser: populate privateWithin of Java module classJason Zaugg2013-06-164-1/+43
| | |_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `privateWithin` attribute of Java companion module classes was correctly set under joint compilation (ie, when using JavaParser), but not under separate compilation. This commit remedies this. The test covers variety of Java symbols.
* | | | | | Merge pull request #2699 from adriaanm/fix-2637-windowsJason Zaugg2013-07-021-1/+2
|\ \ \ \ \ \ | | | | | | | | | | | | | | Use forward slash in #2637's test on windows
| * | | | | | Use forward slash in #2637's test on windowsAdriaan Moors2013-07-011-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't use toString to output file names in tests, its output is platform dependent -- use `testIdent` instead.
* | | | | | | Merge pull request #2663 from soc/SI-7592Adriaan Moors2013-07-013-84/+20
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-7592 Replace s.t.n.u.TreeSet with s.c.m.TreeSet
| * | | | | | | SI-7592 Replace s.t.n.u.TreeSet with s.c.m.TreeSetSimon Ochsenreither2013-06-193-84/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This means - migrating usages from the compiler-specific implementation to the one in the standard library - removing the now unused compiler-specific implementation
* | | | | | | | Merge pull request #2693 from lexspoon/semmle-lintAdriaan Moors2013-07-0121-29/+90
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Lint-like fixes found by Semmle
| * | | | | | | | Adds equals and hashCode to three classes that implement Ordered.Lex Spoon2013-06-262-0/+20
| | | | | | | | |
| * | | | | | | | Adds a hashCode method to the Settings class for Ant.Lex Spoon2013-06-261-0/+14
| | | | | | | | |
| * | | | | | | | Seals some case class hierarchies.Lex Spoon2013-06-2611-28/+28
| | | | | | | | |
| * | | | | | | | Unseal a uselessly sealed case class.Lex Spoon2013-06-261-1/+1
| | | | | | | | |
| * | | | | | | | Updates .gitignore files.Lex Spoon2013-06-266-0/+27
| | | | | | | | |
* | | | | | | | | Merge pull request #2694 from adriaanm/masterGrzegorz Kossakowski2013-07-0115-565/+322
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Merge 2.10.x into master
| * \ \ \ \ \ \ \ \ Merge 2.10.x into masterAdriaan Moors2013-06-282-5/+15
| |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/compiler/scala/tools/nsc/typechecker/Namers.scala src/partest/scala/tools/partest/PartestTask.scala
| | * \ \ \ \ \ \ \ \ Merge pull request #2680 from retronym/ticket/7603Adriaan Moors2013-06-271-3/+12
| | |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | SI-7603 Speculative fix for annotation binding error
| | | * | | | | | | | | SI-7603 Speculative fix for annotation binding errorJason Zaugg2013-06-241-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reports of: error: trait Test is abstract; cannot be instantiated 11:09:50 [ant:scalac] @Test def testClientRequestNum = { 11:09:50 [ant:scalac] ^ Suggest that the deferred processing of a LazyAnnotationInfo is binding the identifier `Test` to the wrong symbol. Inspection of the code shows that the closure also defers capture of the (mutable) field `Namer#typer.context`. This commit captures the context eagerly, and adds logging to let us know if that eagerly captured context ever differs from the its value at the point when the annotation info is forced. I spent a few hours trying to craft a test to back this up, but to no avail. Here's what the log output will look like: [log typer] The var `typer.context` in scala.tools.nsc.typechecker.Namers$NormalNamer@1f5ebb08 was mutated before the annotation new a() was forced. current value = Context(C@Import unit=<console> scope=123861466 errors=false, reportErrors=true, throwErrors=false) original value = Context(C@Import unit=<console> scope=123861466 errors=false, reportErrors=true, throwErrors=false) This confirms the hypothesis for the cause of SI-7603. If you see this message, please comment on that ticket.
| | * | | | | | | | | | Merge pull request #2686 from retronym/topic/partest-task-no-stack-traceAdriaan Moors2013-06-271-2/+3
| | |\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | Less noise on a partest failure.
| | | * | | | | | | | | | Less noise on a partest failure.Jason Zaugg2013-06-271-2/+3
| | | |/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Throwing a BuildException is the polite way to fail the Ant build. Before: BUILD FAILED /Users/jason/code/scala2/build.xml:1522: java.lang.RuntimeException: Test suite finished with 1 case failing: /Users/jason/code/scala2/test/files/pos/lub-dealias-widen.scala [FAILED] at scala.sys.package$.error(package.scala:27) [20 lines elided] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) Total time: 2 minutes 35 seconds After: BUILD FAILED /Users/jason/code/scala2/build.xml:1522: Test suite finished with 1 case failing: /Users/jason/code/scala2/test/files/pos/lub-dealias-widen.scala [FAILED] Total time: 2 minutes 34 seconds
| | * | | | | | | | | | Merge pull request #2655 from VladUreche/issue/7344Adriaan Moors2013-06-262-24/+147
| | |\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | SI-7344 Specialize methods in private scopes
| | | * | | | | | | | | | SI-7344 Specialize methods in private scopesVlad Ureche2013-06-252-24/+147
| | | |/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This performs method specialization inside a scope other than a {class, trait, object}: could be another method or a value. This specialization is much simpler, since there is no need to record the new members in the class signature, their signatures are only visible locally. It works according to the usual logic: - we use normalizeMember to create the specialized symbols - we leave DefDef stubs in the tree that are later filled in by tree duplication and adaptation The solution is limited by SI-7579: since the duplicator loses the sym annotations when duplicating, this expansion and rewiring can only take place in code that has not been subject to duplication. You can see the test case for an example. Review by @dragos, @paulp or @axel22.
| * | | | | | | | | | | Merge 2.10.x into masterAdriaan Moors2013-06-2813-560/+307
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/compiler/scala/tools/nsc/typechecker/Duplicators.scala src/library/scala/concurrent/Future.scala test/files/jvm/scala-concurrent-tck.scala
| | * | | | | | | | | | Merge pull request #2648 from retronym/ticket/7571Grzegorz Kossakowski2013-06-254-9/+19
| | |\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | SI-7571 Allow nesting of anonymous classes in value classes