Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | blackbox and whitebox macros | Eugene Burmako | 2013-11-12 | 1 | -13/+13 |
| | | | | | | | | | | | | | | | | | | This is the first commit in the series. This commit only: 1) Splits Context into BlackboxContext and WhiteboxContext 2) Splits Macro into BlackboxMacro and WhiteboxMacro 3) Introduces the isBundle property in the macro impl binding Here we just teach the compiler that macros can now be blackbox and whitebox, without actually imposing any restrictions on blackbox macros. These restrictions will come in subsequent commits. For description and documentation of the blackbox/whitebox separation see the official macro guide at the scaladoc website: http://docs.scala-lang.org/overviews/macros/blackbox-whitebox.html Some infrastructure work to make evolving macros easier: compile partest-extras with quick so they can use latest library/reflect/... | ||||
* | changes some manual tree constructions in macro tests to quasiquotes | Eugene Burmako | 2013-10-18 | 1 | -12/+12 |
| | |||||
* | deprecates raw tree manipulation facilities in macros.Context | Eugene Burmako | 2013-10-18 | 1 | -12/+12 |
| | |||||
* | macro engine refactoring | Eugene Burmako | 2013-05-28 | 1 | -0/+32 |
Macro impl bindings now store more information in signatures. Previously it was a flattened List[Int] corresponding to flattened paramss, now it's List[List[Int]] to preserve the lengths of parameter lists. Also now we distinguish between c.Expr parameters and others. Previously actual and reference macro signatures were represented as tuples of vparamss, rets, and sometimes tparams. Now they are all abstracted behind MacroImplSig. Finally this patch provides better error messages in cases of argsc <-> paramsc and argc <-> paramc mismatches. |