From fbf5e6f1a0e8bf535d465b748ad554575fe62156 Mon Sep 17 00:00:00 2001 From: Jack Koenig Date: Sun, 22 Mar 2020 18:13:58 -0700 Subject: Rename subprojects to more canonical names * Rename coreMacros to macros * Rename chiselFrontend to core Also make each subproject publish with "chisel3-" as a prefix --- macros/src/main/scala/chisel3/SourceInfoDoc.scala | 38 +++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 macros/src/main/scala/chisel3/SourceInfoDoc.scala (limited to 'macros/src/main/scala/chisel3/SourceInfoDoc.scala') diff --git a/macros/src/main/scala/chisel3/SourceInfoDoc.scala b/macros/src/main/scala/chisel3/SourceInfoDoc.scala new file mode 100644 index 00000000..c44da915 --- /dev/null +++ b/macros/src/main/scala/chisel3/SourceInfoDoc.scala @@ -0,0 +1,38 @@ +// 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 conversion to a + * [[scala.collection.Seq 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.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.

+ * + * @groupprio SourceInfoTransformMacro 1001 + */ +trait SourceInfoDoc -- cgit v1.2.3