diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2013-08-10 15:16:09 +0200 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2013-08-16 19:20:18 +0200 |
commit | 4a273659e0e25ccfe7ea9d4eafa4a9c87ee2fc82 (patch) | |
tree | ec6fbd3100fb8adb1d98dd31d6fe6872d114775b /src/compiler/scala/tools/nsc/CompilationUnits.scala | |
parent | 83e95c0fa5168e64299d85b081b21c577ce4e8ef (diff) | |
download | scala-4a273659e0e25ccfe7ea9d4eafa4a9c87ee2fc82.tar.gz scala-4a273659e0e25ccfe7ea9d4eafa4a9c87ee2fc82.tar.bz2 scala-4a273659e0e25ccfe7ea9d4eafa4a9c87ee2fc82.zip |
kills introduceTopLevel
As we've figured out from the practice, introduceTopLevel is seductively
useful but unfortunately not robust, potentially bringing compilation
order problems.
Therefore, as discussed, I'm removing it from the public macro API.
Alternatives are either: 1) delving into internals, or
2) using macro paradise and experimenting with macro annotations:
http://docs.scala-lang.org/overviews/macros/annotations.html.
Diffstat (limited to 'src/compiler/scala/tools/nsc/CompilationUnits.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/CompilationUnits.scala | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/CompilationUnits.scala b/src/compiler/scala/tools/nsc/CompilationUnits.scala index b52e6fdf57..efe436f004 100644 --- a/src/compiler/scala/tools/nsc/CompilationUnits.scala +++ b/src/compiler/scala/tools/nsc/CompilationUnits.scala @@ -57,8 +57,8 @@ trait CompilationUnits { self: Global => // SBT compatibility (SI-6875) // // imagine we have a file named A.scala, which defines a trait named Foo and a module named Main - // Main contains a call to a macro, which calls c.introduceTopLevel to define a mock for Foo - // c.introduceTopLevel creates a virtual file Virt35af32.scala, which contains a class named FooMock extending Foo, + // Main contains a call to a macro, which calls compileLate to define a mock for Foo + // compileLate creates a virtual file Virt35af32.scala, which contains a class named FooMock extending Foo, // and macro expansion instantiates FooMock. the stage is now set. let's see what happens next. // // without this workaround in scalac or without being patched itself, sbt will think that |