sbt/sbt — pull request #1408 by Duhemm (2014-06-14 15:35:07+00:00)
Title: Never inspect twice the same macro application, fix (again) #1237

Consider the following macro :
```scala
def foo(a: Any): Any = macro impl
def impl(c: Context)(a: c.Expr[Any]): c.Expr[Any] = a
```
In Scala 2.10.4 (I've not observed this with any other version of Scala), an application of this macro such as :
```scala
foo(someVal)
```
will expand to `someVal`. If we inspect this expansion, we will find that `someVal` is attached the original tree `foo(someVal)`, as expected. However, if we inspect the components of this tree, we will find a cyclic chain of `MacroExpansionAttachment` : The same original tree is attached to `someVal`, and so on, until the stack overflows.

The solution used here consists to filter out the nodes that point to the current node in the `original` tree (I think that the diff may be clearer than my sentence).

Thanks to @dwijnand for reporting the bug !

/cc @xeno-by