From c971d7f45c7475ad26fe5c18df27d9e2f9c4cac6 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Mon, 18 Apr 2016 02:34:53 -0400 Subject: [PATCH] Fix sbt/sbt#2560 traverse(tree: Tree) used to call super.traverse(tree) at the end. sbt/sbt@0f616294c4e713dc415f5dc3ae7aef257decb228 brought the traversing call to inside of the pattern matching. For the case of MacroExpansionOf(original), it amounts to not traveling the macro-expanded code. See sbt/src/sbt-test/source-dependencies/macro-nonarg-dep for the repro. --- compile/interface/src/main/scala/xsbt/Dependency.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compile/interface/src/main/scala/xsbt/Dependency.scala b/compile/interface/src/main/scala/xsbt/Dependency.scala index edcc3bd0c..b10975ec8 100644 --- a/compile/interface/src/main/scala/xsbt/Dependency.scala +++ b/compile/interface/src/main/scala/xsbt/Dependency.scala @@ -146,7 +146,9 @@ final class Dependency(val global: CallbackGlobal) extends LocateClassFile { // In some cases (eg. macro annotations), `typeTree.tpe` may be null. See sbt/sbt#1593 and sbt/sbt#1655. case typeTree: TypeTree if typeTree.tpe != null => symbolsInType(typeTree.tpe) foreach addDependency - case MacroExpansionOf(original) if inspectedOriginalTrees.add(original) => traverse(original) + case m @ MacroExpansionOf(original) if inspectedOriginalTrees.add(original) => + traverse(original) + super.traverse(m) case other => super.traverse(other) }