summaryrefslogtreecommitdiff
path: root/test/files/run/t5923a
Commit message (Collapse)AuthorAgeFilesLines
* blackbox restriction #1: can't refine the official return typeEugene Burmako2013-11-121-2/+2
| | | | | | | | | | | When an application of a blackbox macro expands into a tree `x`, the expansion is wrapped into a type ascription `(x: T)`, where `T` is the declared return type of the blackbox macro with type arguments and path dependencies applied in consistency with the particular macro application being expanded. This invalidates blackbox macros as an implementation vehicle of type providers.
* blackbox and whitebox macrosEugene Burmako2013-11-121-2/+2
| | | | | | | | | | | | | | | | | | 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/...
* deprecates raw tree manipulation facilities in macros.ContextEugene Burmako2013-10-181-1/+1
|
* SI-7470 implements fundep materializationEugene Burmako2013-08-131-2/+40
| | | | | | | This fix provides implicit macros with an ability to affect type inference in a more or less sane manner. That's crucial for materialization of multi-parametric type class instances (e.g. Iso's from shapeless). Details of the technique can be found in comments.
* SI-5923 instantiates targs in deferred macro applicationsEugene Burmako2013-05-122-0/+19
In January I submitted a pull request that, as I thought back then, fixes SI-5923: https://github.com/scala/scala/commit/fe60284769. The pull request was merged, and everyone was happy that the bug got fixed. Unfortunately, the fix was: a) incomplete, b) broke something else, as noticed by Miles in https://groups.google.com/d/topic/scala-internals/7pA9CiiD3u8/discussion. Now we got a real fix in 2.10.x (https://github.com/scala/scala/commit/90ac5c4e13), and it's my pleasure to port it to master.