// See LICENSE for license details. package chisel3 /** Provides ScalaDoc information for "hidden" `do_*` methods * * Mix this into classes/objects that have `do_*` methods to get access to the shared `SourceInfoTransformMacro` * ScalaDoc group and the lengthy `groupdesc` below. * * @groupdesc SourceInfoTransformMacro * *
* '''These internal methods are not part of the public-facing API!'''
*
*
*
* The equivalent public-facing methods do not have the `do_` prefix or have the same name. Use and look at the
* documentation for those. If you want left shift, use `<<`, not `do_<<`. If you want comversion to a [[Seq]] of
* [[Bool]]s look at the `asBools` above, not the one below. Users can safely ignore every method in this group!
*
*
*
* 🐉🐉🐉 '''Here be dragons...''' 🐉🐉🐉
*
*
*
* These `do_X` methods are used to enable both implicit passing of [[SourceInfo]] and
* [[chisel3.core.CompileOptions]] while also supporting chained apply methods. In effect all "normal" methods that
* you, as a user, will use in your designs, are converted to their "hidden", `do_*`, via macro transformations.
* Without using macros here, only one of the above wanted behaviors is allowed (implicit passing and chained
* applies)---the compiler interprets a chained apply as an explicit 'implicit' argument and will throw type errors.
*
*
*
* The "normal", public-facing methods then take no [[SourceInfo]]. However, a macro transforms this public-facing
* method into a call to an internal, hidden `do_*` that takes an explicit [[SourceInfo]] by inserting an
* `implicitly[SourceInfo]` as the explicit argument.
*