chisel
chisel copied to clipboard
Combine LTL assert-like intrinsic factories into a single trait
As discussed in #4681, the LTL assert-like intrinsics all contain the same snippet of code which only differs by the intrinsic name:
private[chisel3] object VerifEnsureIntrinsic {
def apply(label: Option[String] = None)(prop: Bool, enable: Option[Bool])(implicit sourceInfo: SourceInfo) =
VerifAssertLikeIntrinsic("ensure", label)(prop, enable)
}
@seldridge suggested to factor this out into a base trait with an abstract def intrinsicName: String that we define in the concrete intrinsic.