summaryrefslogtreecommitdiff
path: root/test/files/run/t5940.scala
blob: 7b025b43af57a57bb1644d6ae6ba216a0b5076a3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import scala.tools.partest._

object Test extends DirectTest {
  def code = ???

  def macros_1 = """
    import scala.reflect.macros.blackbox.Context

    object Impls {
      def impl(c: Context) = { import c.universe._; c.Expr[Unit](q"()") }
    }

    object Macros {
      //import Impls._
      def impl(c: Context) = { import c.universe._; c.Expr[Unit](q"()") }
      def foo: Unit = macro impl
    }
  """
  def compileMacros() = {
    val classpath = List(sys.props("partest.lib"), sys.props("partest.reflect")) mkString sys.props("path.separator")
    compileString(newCompiler("-language:experimental.macros", "-cp", classpath, "-d", testOutput.path))(macros_1)
  }

  def test_2 = """
    object Test extends App {
      println(Macros.foo)
    }
  """
  def compileTest() = {
    val classpath = List(sys.props("partest.lib"), testOutput.path) mkString sys.props("path.separator")
    compileString(newCompiler("-cp", classpath, "-d", testOutput.path))(test_2)
  }

  def show(): Unit = {
    log("Compiling Macros_1...")
    if (compileMacros()) {
      log("Compiling Test_2...")
      if (compileTest()) log("Success!") else log("Failed...")
    }
  }
}