title: Postpone implicit resolution until macro expansion
body: <p>Consider trivial macro:</p>
  <pre><code>def test[A](a: A): Unit = macro testImpl[A]
  
  def testImpl[A: c.WeakTypeTag](c: blackbox.Context)(a: c.Expr[A]): c.Expr[Unit] = {
    import c.universe._
    println(&quot;Test running&quot;)
    c.Expr[Unit](q&quot;&quot;)
  }
  </code></pre>
  <p>and its invocation</p>
  <pre><code>def foo(a: String)(implicit b: Int): Unit = ???
  
  test(foo(&quot;123&quot;))
  </code></pre>
  <p>It gives an error that</p>
  <pre><code>[error] Main.scala:19:18: could not find implicit value for parameter b: Int
  [error]     test(foo(&quot;123&quot;))
  </code></pre>
  <p>Is it possible to defer implicit resolution until macro expansion time or writing macro annotation is necessary for such cases?</p>