summaryrefslogtreecommitdiff
path: root/test/files/scalacheck/quasiquotes/QuasiquoteProperties.scala
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/master' into topic/palladium0Eugene Burmako2014-02-161-1/+1
|\ | | | | | | | | | | | | | | Conflicts: src/compiler/scala/reflect/macros/compiler/Resolvers.scala src/compiler/scala/reflect/macros/contexts/Typers.scala src/compiler/scala/tools/reflect/ToolBoxFactory.scala src/reflect/scala/reflect/api/BuildUtils.scala
| * Improve support for patterns in valsDenys Shabalin2014-02-091-1/+1
| | | | | | | | | | | | | | | | This commits adds construction-only support for splicing patterns into vals (a.k.a. PatDef). Due to non-locality of the desugaring it would have been quite expensive to support deconstruction as the only way to do it with current trees is to perform implodePatDefs transformation on every single tree.
* | establishes scala.reflect.api#internalEugene Burmako2014-02-141-2/+2
|/ | | | | | | | | | | | | | | | | | | | | | | | | Reflection API exhibits a tension inherent to experimental things: on the one hand we want it to grow into a beautiful and robust API, but on the other hand we have to deal with immaturity of underlying mechanisms by providing not very pretty solutions to enable important use cases. In Scala 2.10, which was our first stab at reflection API, we didn't have a systematic approach to dealing with this tension, sometimes exposing too much of internals (e.g. Symbol.deSkolemize) and sometimes exposing too little (e.g. there's still no facility to change owners, to do typing transformations, etc). This resulted in certain confusion with some internal APIs living among public ones, scaring the newcomers, and some internal APIs only available via casting, which requires intimate knowledge of the compiler and breaks compatibility guarantees. This led to creation of the `internal` API module for the reflection API, which provides advanced APIs necessary for macros that push boundaries of the state of the art, clearly demarcating them from the more or less straightforward rest and providing compatibility guarantees on par with the rest of the reflection API. This commit does break source compatibility with reflection API in 2.10, but the next commit is going to introduce a strategy of dealing with that.
* SI-8173 add support for patterns like init :+ last to quasiquotesDenys Shabalin2014-02-021-5/+0
| | | | | | | | | | | | Adds support for patterns like: val q"{ ..$init; $last }" = q"{ a; b; c }" // init == List(q"a", q"b") // last == q"c" Which under the hood get compiled as `:+` patterns: SyntacticBlock(init :+ last)
* Merge pull request #3254 from xeno-by/topic/typeCheckJason Zaugg2014-01-031-1/+1
|\ | | | | typeCheck => typecheck
| * typeCheck => typecheckEugene Burmako2013-12-101-1/+1
| | | | | | | | | | This method has always been slightly bothering me, so I was really glad when Denys asked me to rename it. Let’s see how it pans out.
* | Move Liftable into the Universe cake; add additional standard LiftablesDen Shabalin2013-12-101-1/+3
|/ | | | | | | | | | | | Previously we believed that having Liftable outside of the Universe will bring some advantages but it turned out this wasn’t worth it. Due to infectious nature of path dependent types inside of the universe one had to cast a lot. A nice example of what I’m talking about is a change in trait ArbitraryTreesAndNames. Additionally a number of standard Liftables is added for types that are available through Predef and/or default scala._ import: Array, Vector, List, Map, Set, Option, Either, TupleN.
* Merge pull request #3138 from densh/pr/fresh-name-extractorJason Zaugg2013-11-221-7/+6
|\ | | | | Refactor out fresh name prefix extraction logic
| * refactor out fresh name prefix extraction logicDen Shabalin2013-11-171-7/+6
| | | | | | | | | | | | | | | | | | | | | | 1. refactor out FreshNameExtractor out of Quasiquotes cake into SymbolTable (can’t put it outside due to the fact that names are path-dependent) 2. add optional parameter to the fresh name creator to cover additional qq$ prefix needed for quasiquotes 3. add unit tests
* | Removing deprecated code.Paul Phillips2013-11-181-1/+1
|/ | | | | Code which has been deprecated since 2.10.0 and which allowed for straightforward removal.
* make fresh names compare similar in quasiquotesDen Shabalin2013-11-121-1/+23
| | | | | | Otherwise it's annoying that trees that look the same are not equal due to some fresh name hidden underneath. Due to this one test needs to be changed to use plain equalsStructure.
* simplify imports in quasiquotes scalacheck testsDen Shabalin2013-11-121-11/+3
|
* add some post-typecheck tests for quasiquotesDen Shabalin2013-11-121-2/+14
| | | | | | Typecheck trees with toolbox and check that they are still matched by corresponding quasiquote. Fix tuples and function types matchers to account for different shape of trees after typing.
* add toolbox-based utility methods to quasiquotes' testsDen Shabalin2013-09-051-6/+15
|
* tests for quasiquotesDen Shabalin2013-07-081-0/+89
Introduces an extensive ScalaCheck-based test suite for recently implemented quasiquotes. Provides tools for syntactic tree comparison and verifying compilation error messages.