summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authormergify[bot]2022-06-03 18:33:13 +0000
committerGitHub2022-06-03 18:33:13 +0000
commit63f25ac4b4d7c9bd530ff1875ad38d835a82e051 (patch)
tree51de9ec1f0596a75573d3e9c23868352b0297e09 /core/src
parent5bec54e535dca53c9347caddb0b395c4651a0919 (diff)
Deprecate implicit .U() and .S() syntax for literal bit extracts (backport #2534) (#2559)
* Deprecate .U() and .S() syntax for literal bit extracts (#2534) (cherry picked from commit cadaf33a650ef898fdab2f81244e4ad6a07a9ea8) # Conflicts: # macros/src/main/scala/chisel3/internal/sourceinfo/SourceInfoTransform.scala * Fix backport conflict (#2560) Co-authored-by: Jared Barocsi <82000041+jared-barocsi@users.noreply.github.com>
Diffstat (limited to 'core/src')
-rw-r--r--core/src/main/scala/chisel3/Bits.scala18
-rw-r--r--core/src/main/scala/chisel3/package.scala12
2 files changed, 18 insertions, 12 deletions
diff --git a/core/src/main/scala/chisel3/Bits.scala b/core/src/main/scala/chisel3/Bits.scala
index a135a8e5..c914e88c 100644
--- a/core/src/main/scala/chisel3/Bits.scala
+++ b/core/src/main/scala/chisel3/Bits.scala
@@ -8,7 +8,13 @@ import chisel3.experimental.{FixedPoint, Interval}
import chisel3.internal._
import chisel3.internal.Builder.pushOp
import chisel3.internal.firrtl._
-import chisel3.internal.sourceinfo.{SourceInfo, SourceInfoTransform, SourceInfoWhiteboxTransform, UIntTransform}
+import chisel3.internal.sourceinfo.{
+ IntLiteralApplyTransform,
+ SourceInfo,
+ SourceInfoTransform,
+ SourceInfoWhiteboxTransform,
+ UIntTransform
+}
import chisel3.internal.firrtl.PrimOp._
import _root_.firrtl.{ir => firrtlir}
import _root_.firrtl.{constraint => firrtlconstraint}
@@ -94,7 +100,7 @@ sealed abstract class Bits(private[chisel3] val width: Width) extends Element wi
* @param x an index
* @return the specified bit
*/
- final def apply(x: BigInt): Bool = macro SourceInfoTransform.xArg
+ final def apply(x: BigInt): Bool = macro IntLiteralApplyTransform.safeApply
/** @group SourceInfoTransformMacro */
final def do_apply(x: BigInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Bool = {
@@ -121,12 +127,12 @@ sealed abstract class Bits(private[chisel3] val width: Width) extends Element wi
*
* @param x an index
* @return the specified bit
- * @note convenience method allowing direct use of [[scala.Int]] without implicits
*/
- final def apply(x: Int): Bool = macro SourceInfoTransform.xArg
+ final def apply(x: Int): Bool = macro IntLiteralApplyTransform.safeApply
/** @group SourceInfoTransformMacro */
- final def do_apply(x: Int)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Bool = apply(BigInt(x))
+ final def do_apply(x: Int)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Bool =
+ do_apply(BigInt(x))
/** Returns the specified bit on this wire as a [[Bool]], dynamically addressed.
*
@@ -193,7 +199,7 @@ sealed abstract class Bits(private[chisel3] val width: Width) extends Element wi
/** @group SourceInfoTransformMacro */
final def do_apply(x: BigInt, y: BigInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): UInt =
- apply(castToInt(x, "High index"), castToInt(y, "Low index"))
+ do_apply(castToInt(x, "High index"), castToInt(y, "Low index"))
private[chisel3] def unop[T <: Data](sourceInfo: SourceInfo, dest: T, op: PrimOp): T = {
requireIsHardware(this, "bits operated on")
diff --git a/core/src/main/scala/chisel3/package.scala b/core/src/main/scala/chisel3/package.scala
index 5521c51e..87024683 100644
--- a/core/src/main/scala/chisel3/package.scala
+++ b/core/src/main/scala/chisel3/package.scala
@@ -7,6 +7,8 @@ import scala.collection.mutable
/** This package contains the main chisel3 API.
*/
package object chisel3 {
+ import internal.chiselRuntimeDeprecated
+ import internal.sourceinfo.DeprecatedSourceInfo
import internal.firrtl.{Port, Width}
import internal.Builder
@@ -39,13 +41,11 @@ package object chisel3 {
case bigint => Builder.error(s"Cannot convert $bigint to Bool, must be 0 or 1"); Bool.Lit(false)
}
- /** Int to UInt conversion, recommended style for constants.
- */
- def U: UInt = UInt.Lit(bigint, Width())
+ /** Int to UInt conversion, recommended style for constants. */
+ def U: UInt = UInt.Lit(bigint, Width()) // scalastyle:ignore method.name
- /** Int to SInt conversion, recommended style for constants.
- */
- def S: SInt = SInt.Lit(bigint, Width())
+ /** Int to SInt conversion, recommended style for constants. */
+ def S: SInt = SInt.Lit(bigint, Width()) // scalastyle:ignore method.name
/** Int to UInt conversion with specified width, recommended style for constants.
*/