summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* streamline implementation of annotation splicingDen Shabalin2013-09-055-37/+34
| | | | | | Syntax spec mislead me to believe that annotation can't have type parameters or multiple argument lists... I guess the lesson here is don't trust the spec.
* unify handling of references to scala members for functions and tuplesDen Shabalin2013-09-052-20/+36
|
* make the postfixOps warning go awayDen Shabalin2013-09-051-1/+1
|
* better support for ValDefs, VarDefs and DefDefsDen Shabalin2013-09-055-0/+64
|
* rename TupleN and TupleTypeN into SyntacticTuple and SyntacticTupleTypeDen Shabalin2013-09-054-11/+11
|
* SI-7723 better support for deconstruction of new expressionsDen Shabalin2013-09-055-1/+43
|
* SI-7803 support for matching of anonymous function literalsDen Shabalin2013-09-058-8/+60
|
* first-class early def splicing and extraction supportDen Shabalin2013-09-0510-66/+334
|
* extract out isHole(name)Den Shabalin2013-09-051-3/+5
|
* add support for function type splicing and extractionDen Shabalin2013-09-0510-3/+62
|
* reify ScalaPackage symbol with the help of ScalaDotDen Shabalin2013-09-055-1/+24
|
* refine block and applied/typeapplied splicing/matching semanticsDen Shabalin2013-09-0512-60/+82
| | | | | | | | | | | | | | | | | | | 1. blocks now match single term-level expressions to account for automatic block elimination. E.g. val q"{ ..$stats }" = q"foo" will match into stats = List(q"foo"). This is useful to uniformly deal with blocks on term level. 2. blocks in quasiquotes collapse into single expressions 3. Applied and TypeApplied now have constructors too which helps to unify matching and extraction in quasiquote reifier 4. TypeApplied now matches AppliedTypeTree too 5. Add Syntactic prefix to Applied and TypeApplied
* SI-7196 add support for refineStat splicing and extractionDen Shabalin2013-09-059-25/+67
|
* reduce amount of clutter on -Yquasiquote-debugDen Shabalin2013-09-051-3/+3
|
* minor changes to TreeGen.mkTemplateDen Shabalin2013-09-051-8/+9
| | | | | 1. Make superPos parameter optional with default value NoPosition 2. use Option instead of List for local optional constructor variable
* move mkNew from tools.nsc.ast.TreeGen to reflect.internal.TreeGenDen Shabalin2013-09-052-36/+35
| | | | This is needed for quasiquotes to implement SyntacticNew combinator.
* use NoMods and NoFlags for reification of empty valuesDen Shabalin2013-09-053-41/+49
|
* merge flagsFromBits and FlagsAsBits into FlagsReprDen Shabalin2013-09-058-22/+30
|
* rename mkAnnotationCtor into mkAnnotationDen Shabalin2013-09-054-5/+5
|
* add missing copyTypeDef utility functionDen Shabalin2013-09-051-0/+16
|
* refactor definition tests into separate subsuiteDen Shabalin2013-09-055-249/+326
|
* add toolbox-based utility methods to quasiquotes' testsDen Shabalin2013-09-051-6/+15
|
* Merge pull request #2877 from som-snytt/issue/repl-stack-truncGrzegorz Kossakowski2013-09-047-15/+285
|\ | | | | SI-7781 REPL stack trunc shows cause
| * SI-7781 Comments to SessionTestSom Snytt2013-09-021-5/+16
| | | | | | | | | | | | Also, it would be nice if code and expected results were calculated lazily. That would allow tests with infinite code but which terminate on various conditions.
| * SI-7781 Improve test and add commentSom Snytt2013-09-022-5/+13
| | | | | | | | | | | | | | The test should normalize the elided message, not strip it. (Thanks qerub; I was frustrated with kitteh's turnaround that night, hence unwilling to improve once it passed.)
| * Target junit.clean to clean junit artifactsSom Snytt2013-09-021-1/+5
| | | | | | | | And all.clean will also junit.clean.
| * SI-7781 REPL stack trunc shows causeSom Snytt2013-09-025-9/+256
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The handy stack trace truncation in REPL doesn't show cause like a regular trace. This commit fixes that and also adds the usual indicator for truncation, viz, "... 33 more". The example from the ticket produces: ``` scala> rewrapperer java.lang.RuntimeException: java.lang.RuntimeException: java.lang.RuntimeException: Point of failure at .rewrapper(<console>:9) at .rewrapperer(<console>:10) ... 32 elided Caused by: java.lang.RuntimeException: java.lang.RuntimeException: Point of failure at .wrapper(<console>:8) ... 34 more Caused by: java.lang.RuntimeException: Point of failure at .sample(<console>:7) ... 35 more ``` Suppressed exceptions on Java 7 are handled reflectively. ``` java.lang.RuntimeException: My problem at scala.tools.nsc.util.StackTraceTest.repressed(StackTraceTest.scala:56) ... 27 elided Suppressed: java.lang.RuntimeException: Point of failure at scala.tools.nsc.util.StackTraceTest.sample(StackTraceTest.scala:29) at scala.tools.nsc.util.StackTraceTest.repressed(StackTraceTest.scala:54) ... 27 more ```
* Merge pull request #2864 from retronym/ticket/6240-namesJason Zaugg2013-09-023-43/+71
|\ | | | | SI-6240 Synchronizes Names
| * Lock down methods in NamesJason Zaugg2013-08-311-11/+14
| | | | | | | | | | | | | | | | Marking some methods as final. Once known to be overriden in scala-ide are instead marked with @deprecatedOveriding. This is to signal the new means of synchronization to subclasses.
| * SI-6240 Synchronizes NamesJason Zaugg2013-08-223-33/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we didn't have all possible name creation facilities covered with locks, so some of them silently misbehaved and caused much grief: http://groups.google.com/group/scala-internals/browse_thread/thread/ec1d3e2c4bcb000a. This patch gets all the name factories under control. Rather than relying on subclasses to override mutating methods and add synchronization, they should instead override `synchronizeNames` to return true and leave the placement of the locks up to `reflect.internal.Names`. These locks are placed around sections that mutate `typeHashtable` and `termHashtable`. This is done in the reflection universe, and in the interactive compiler. The latter change will obviate an incomplete attempt do to the same in `ScalaPresentationCompiler` in the scala-ide project.
* | Merge pull request #2880 from huitseeker/update-artifactoryGrzegorz Kossakowski2013-08-302-3/+3
|\ \ | | | | | | update typesafe.artifactory-online.com to private-repo.typesafe.com
| * | update typesafe.artifactory-online.com to private-repoFrançois Garillot2013-08-272-3/+3
| | |
* | | Merge pull request #2861 from densh/topic/deprecate-early-type-defsGrzegorz Kossakowski2013-08-309-8/+18
|\ \ \ | | | | | | | | Deprecate early type defs
| * | | deprecate early type defsDen Shabalin2013-08-289-8/+18
| | | | | | | | | | | | | | | | | | | | | | | | This feature is neither properly supported by Scala compiler nor a part of the language spec and therefore should be removed. Due to source compatiblity with 2.10 we need to deprecate it first.
* | | | Merge pull request #2890 from retronym/topic/one-mans-blissJason Zaugg2013-08-301-10/+15
|\ \ \ \ | | | | | | | | | | Paring back the scope of our shared .gitignore
| * | | | Paring back the scope of our shared .gitignoreJason Zaugg2013-08-301-10/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Importantly, limit the exclusion of build.properties to the file in the root directory, paving the way for the return of an SBT build. - Unignores .bak, .jar, and ~ - limit ignorance of qbin to the root directory .log files, generated by partest, are still ignored. To see ignored files in your workspace, try: git ls-files --others --ignored --exclude-standard -- test | grep log git status --ignored -- test
* | | | | Merge pull request #2886 from gkossakowski/merge-2.10.xJason Zaugg2013-08-3056-76/+558
|\ \ \ \ \ | | | | | | | | | | | | Merge 2.10.x into master
| * \ \ \ \ Merge remote-tracking branch 'scala/2.10.x'Grzegorz Kossakowski2013-08-2956-76/+558
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After the merge, the test/run/t7733 started to fail on Jenkins. I tried to reproduce it locally but I couldn't so I think it's system dependent failure. Per @retronym's suggestion I moved it to pending to not block the whole merge. Conflicts: bincompat-backward.whitelist.conf bincompat-forward.whitelist.conf src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala src/compiler/scala/tools/nsc/typechecker/ContextErrors.scala src/compiler/scala/tools/nsc/typechecker/Macros.scala src/compiler/scala/tools/nsc/typechecker/Namers.scala src/compiler/scala/tools/nsc/typechecker/NamesDefaults.scala src/compiler/scala/tools/nsc/typechecker/RefChecks.scala src/compiler/scala/tools/nsc/util/MsilClassPath.scala src/compiler/scala/tools/reflect/ToolBoxFactory.scala src/reflect/scala/reflect/internal/ClassfileConstants.scala src/reflect/scala/reflect/internal/Importers.scala src/reflect/scala/reflect/internal/Trees.scala src/reflect/scala/reflect/runtime/JavaMirrors.scala test/files/run/macro-duplicate/Impls_Macros_1.scala test/files/run/t6392b.check test/files/run/t7331c.check
| | * \ \ \ \ Merge pull request #2860 from retronym/merge/2.10.2-to-2.10.xJames Iry2013-08-2618-30/+108
| | |\ \ \ \ \ | | | | | | | | | | | | | | | | Merge/2.10.2 to 2.10.x
| | | * | | | | SI-7486 More tests for cycles triggered by implicit searchJason Zaugg2013-08-212-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moved an existing test from `pending` to `pos`. Not sure why it was moved to `pending` in the first place. Adds a new test distilled from building Scalaz with 2.10.3-RC1.
| | | * | | | | Merge remote-tracking branch 'origin/2.10.2' into merge/2.10.2-to-2.10.xJason Zaugg2013-08-2118-30/+100
| | | |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Better late than never. Conflicts: src/compiler/scala/tools/nsc/typechecker/NamesDefaults.scala
| | * | \ \ \ \ \ Merge pull request #2870 from retronym/ticket/7778Adriaan Moors2013-08-234-0/+17
| | |\ \ \ \ \ \ \ | | | |/ / / / / / | | |/| | | | | | SI-942 A test case, five years adrift.
| | | * | | | | | SI-942 A test case, five years adrift.Jason Zaugg2013-08-234-0/+17
| | |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I'm looking at the changes made in 47f35b587, which prevented cyclic errors in class file parsing. That fix is insufficient for, or otherwise complicit in, SI-7778, for which I've enclosed a pending test.
| | * | | | | | Merge pull request #2838 from retronym/ticket/7716v2.10.3-RC1James Iry2013-08-162-1/+19
| | |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | SI-7716 Exclude patmat synthetics from bounds checking
| | | * | | | | | SI-7716 Exclude patmat synthetics from bounds checkingJason Zaugg2013-08-162-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consider this pattern match translation, that occurs *before* refchecks: scala> val e: java.lang.Enum[_] = java.util.concurrent.TimeUnit.SECONDS scala> e match { case x => x } <console>:9: error: type arguments [_$1] do not conform to class Enum's type parameter bounds [E <: Enum[E]] e match { case x => x } ^ [[syntax trees at end of refchecks]] // <console> package $line5 { case <synthetic> val x1: Enum[_$1] = $line3.$read.$iw.$iw.e; case4(){ matchEnd3(x1) }; matchEnd3(x: Enum[_$1]){ x } RefChecks turns a blind eye to the non-conformant type `Enum[_$1]` in the label defs because of `65340ed4ad2e`. (Incidentally, that is far too broad, as I've noted in SI-7756.) This commit extends this exception to cover the synthetic ValDef `x1`. Commit log watchers might notice the similarities to SI-7694.
| | * | | | | | | Merge pull request #2842 from retronym/ticket/7603-2James Iry2013-08-162-30/+14
| | |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SI-7603 Fix thread safety of FlagTranslation
| | | * | | | | | | SI-7603 Remove diagnostic code for annotation errorJason Zaugg2013-08-161-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We've fingered the true culprit in the previous commit.
| | | * | | | | | | SI-7603 Fix thread safety of FlagTranslationJason Zaugg2013-08-161-22/+14
| | | |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is outside of the Global cake, so we can't assume single threaded access. A var was introduced in af3daf6fdb that can lead to incorrect flag interpretation. The reported bug was triggered in a multi-project SBT build. Java Annotations read from classfiles were occasionally conferred the TRAIT|INFERFACE|ABSTRACT flag set, leading to "@Foo is abstract, cannot be instatiated" later down the line.
| | * | | | | | | Merge pull request #2814 from xeno-by/topic/auto-duplicate-expansionsJames Iry2013-08-1611-5/+107
| | |\ \ \ \ \ \ \ | | | |/ / / / / / | | |/| | | | | | [nomaster] macro expansions are now auto-duplicated
| | | * | | | | | [nomaster] macro expansions are now auto-duplicatedEugene Burmako2013-08-1411-5/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The fix still requires macro developers to be careful about sharing trees by references, because attributed DefTrees will still bring trouble. However this is an improvement, because it doesn't make matters worse and automatically fixes situations similar to one in the test. A much more thorough discussion with a number of open questions left: http://groups.google.com/group/scala-internals/browse_thread/thread/492560d941b315cc Was fixed ages ago in master in one of the paradise backports. Never got to 2.10.x, but it's very useful, so I'm backporting it now.