diff --git a/sbt/src/sbt-test/source-dependencies/macro-arg-dep-stackoverflow/macro-client/Client.scala b/sbt/src/sbt-test/source-dependencies/macro-arg-dep-stackoverflow/macro-client/Client.scala new file mode 100644 index 000000000..facd1062e --- /dev/null +++ b/sbt/src/sbt-test/source-dependencies/macro-arg-dep-stackoverflow/macro-client/Client.scala @@ -0,0 +1,6 @@ +package macros + +object Client { + val a = 1 + def test = Foo.bar(a) +} diff --git a/sbt/src/sbt-test/source-dependencies/macro-arg-dep-stackoverflow/macro-provider/Foo.scala b/sbt/src/sbt-test/source-dependencies/macro-arg-dep-stackoverflow/macro-provider/Foo.scala new file mode 100644 index 000000000..52be7021f --- /dev/null +++ b/sbt/src/sbt-test/source-dependencies/macro-arg-dep-stackoverflow/macro-provider/Foo.scala @@ -0,0 +1,9 @@ +package macros + +import scala.language.experimental.macros +import scala.reflect.macros.Context + +object Foo { + def bar(a: Any): Any = macro impl + def impl(c: Context)(a: c.Expr[Any]): c.Expr[Any] = a +} diff --git a/sbt/src/sbt-test/source-dependencies/macro-arg-dep-stackoverflow/pending b/sbt/src/sbt-test/source-dependencies/macro-arg-dep-stackoverflow/pending new file mode 100644 index 000000000..450fa9cf7 --- /dev/null +++ b/sbt/src/sbt-test/source-dependencies/macro-arg-dep-stackoverflow/pending @@ -0,0 +1,2 @@ +# We only want to make sure we can compile this without stack overflow +> compile \ No newline at end of file diff --git a/sbt/src/sbt-test/source-dependencies/macro-arg-dep-stackoverflow/project/build.scala b/sbt/src/sbt-test/source-dependencies/macro-arg-dep-stackoverflow/project/build.scala new file mode 100644 index 000000000..a5382240f --- /dev/null +++ b/sbt/src/sbt-test/source-dependencies/macro-arg-dep-stackoverflow/project/build.scala @@ -0,0 +1,29 @@ +import sbt._ +import Keys._ + +object build extends Build { + val defaultSettings = Seq( + libraryDependencies <+= scalaVersion("org.scala-lang" % "scala-reflect" % _ ), + incOptions := incOptions.value.withNameHashing(true) + ) + + lazy val root = Project( + base = file("."), + id = "macro", + aggregate = Seq(macroProvider, macroClient), + settings = Defaults.defaultSettings ++ defaultSettings + ) + + lazy val macroProvider = Project( + base = file("macro-provider"), + id = "macro-provider", + settings = Defaults.defaultSettings ++ defaultSettings + ) + + lazy val macroClient = Project( + base = file("macro-client"), + id = "macro-client", + dependencies = Seq(macroProvider), + settings = Defaults.defaultSettings ++ defaultSettings + ) +}