Open hrhino opened 4 years ago
https://github.com/scala/scala/blob/546a57105e33678d9d0aba9da486006e4715924c/src/compiler/scala/tools/nsc/typechecker/Macros.scala#L848-859
private def calculateUndetparams(expandee: Tree): scala.collection.mutable.Set[Symbol] = if (forced(expandee)) scala.collection.mutable.Set[Symbol]() else delayed.getOrElse(expandee, { val calculated = scala.collection.mutable.Set[Symbol]() expandee foreach (sub => { def traverse(sym: Symbol) = if (sym != null && (undetparams contains sym)) calculated += sym if (sub.symbol != null) traverse(sub.symbol) if (sub.tpe != null) sub.tpe foreach (sub => traverse(sub.typeSymbol)) }) macroLogVerbose("calculateUndetparams: %s".format(calculated)) calculated })
https://github.com/scala/scala/blob/546a57105e33678d9d0aba9da486006e4715924c/src/compiler/scala/tools/nsc/typechecker/Macros.scala#L848-859