Skip to content

Commit

Permalink
Add test for top level classes added from defs in nested packages
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolasstucki committed Jan 5, 2023
1 parent ac239fd commit 89c550b
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 7 deletions.
16 changes: 12 additions & 4 deletions tests/run-macros/annot-add-global-class.check
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
macro generated main
executed in: Bar$macro$1
macro generated main
executed in: Bar$macro$2
macro generated class
executed in: Bar$macro$5
macro generated class
executed in: Bar$macro$6
macro generated class
executed in: a.Bar$macro$3
macro generated class
executed in: a.b.Bar$macro$1
macro generated class
executed in: a.Bar$macro$4
macro generated class
executed in: a.c.Bar$macro$2
2 changes: 2 additions & 0 deletions tests/run-macros/annot-add-global-class/Macro_1.scala
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
package mymacro

import scala.annotation.{experimental, MacroAnnotation}
import scala.quoted._
import scala.collection.mutable
Expand Down
31 changes: 28 additions & 3 deletions tests/run-macros/annot-add-global-class/Test_2.scala
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import mymacro.addClass

@addClass def foo(): Unit =
println("macro generated main")
println("macro generated class")
println("executed in: " + (new Throwable().getStackTrace().head.getClassName))
//> class Baz$macro$1 extends Object {
//> def run() =
Expand All @@ -10,16 +12,39 @@
//> new Baz$macro$1.run

@addClass def bar(): Unit =
println("macro generated main")
println("macro generated class")
println("executed in: " + (new Throwable().getStackTrace().head.getClassName))
//> class Baz$macro$2 extends Object {
//> def run() =
//> println("macro generated main")
//> println("executed in: " + getClass.getName)
//> }
//> def foo(): Unit =
//> def bar(): Unit =
//> new Baz$macro$2.run

package a:
@addClass def foo(): Unit =
println("macro generated class")
println("executed in: " + (new Throwable().getStackTrace().head.getClassName))

package b:
@addClass def foo(): Unit =
println("macro generated class")
println("executed in: " + (new Throwable().getStackTrace().head.getClassName))

@addClass def bar(): Unit =
println("macro generated class")
println("executed in: " + (new Throwable().getStackTrace().head.getClassName))

package c:
@addClass def foo(): Unit =
println("macro generated class")
println("executed in: " + (new Throwable().getStackTrace().head.getClassName))

@main def Test(): Unit =
foo()
bar()
a.foo()
a.b.foo()
a.bar()
a.c.foo()

0 comments on commit 89c550b

Please sign in to comment.