Skip to content

Commit

Permalink
Make "deprecated public" binding APIs private (#4177)
Browse files Browse the repository at this point in the history
* Make "deprecated public" binding APIs private

This is done by adding a new package private object "binding" within
which all bindings live. This required changing imports in lots of files
but it makes it much easier to not accidentally create a public binding
in the future.

* [cleanup] Delete @deprecated and private[chisel3] from Binding.scala

These are no longer needed now that all binding are packaged up in a
package private object.
  • Loading branch information
jackkoenig authored Jun 17, 2024
1 parent 9ec0fa2 commit 59c97bd
Show file tree
Hide file tree
Showing 30 changed files with 195 additions and 182 deletions.
1 change: 1 addition & 0 deletions core/src/main/scala/chisel3/Aggregate.scala
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import scala.language.experimental.macros
import chisel3.experimental.{BaseModule, BundleLiteralException, HasTypeAlias, OpaqueType, VecLiteralException}
import chisel3.experimental.{requireIsChiselType, requireIsHardware, SourceInfo, UnlocatableSourceInfo}
import chisel3.internal._
import chisel3.internal.binding._
import chisel3.internal.Builder.pushCommand
import chisel3.internal.firrtl.ir._
import chisel3.internal.sourceinfo.{SourceInfoTransform, VecTransform}
Expand Down
13 changes: 2 additions & 11 deletions core/src/main/scala/chisel3/ChiselEnum.scala
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,8 @@ import chisel3.internal.Builder.pushOp
import chisel3.internal.firrtl.ir.PrimOp._
import chisel3.internal.firrtl.ir._
import chisel3.internal.sourceinfo._
import chisel3.internal.{
containsProbe,
throwException,
Binding,
Builder,
BuilderContextCache,
ChildBinding,
ConstrainedBinding,
Warning,
WarningID
}
import chisel3.internal.{containsProbe, throwException, Builder, BuilderContextCache, Warning, WarningID}
import chisel3.internal.binding.{Binding, ChildBinding, ConstrainedBinding}

import chisel3.experimental.EnumAnnotations._

Expand Down
1 change: 1 addition & 0 deletions core/src/main/scala/chisel3/Data.scala
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import chisel3.experimental.{prefix, SourceInfo, UnlocatableSourceInfo}
import chisel3.experimental.dataview.reifySingleData
import chisel3.internal.Builder.pushCommand
import chisel3.internal._
import chisel3.internal.binding._
import chisel3.internal.sourceinfo._
import chisel3.internal.firrtl.ir._
import chisel3.properties.Property
Expand Down
1 change: 1 addition & 0 deletions core/src/main/scala/chisel3/Element.scala
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import chisel3.internal.firrtl.ir._
import chisel3.experimental.SourceInfo
import chisel3.experimental.dataview.reify
import chisel3.internal._
import chisel3.internal.binding._

/** Element is a leaf data type: it cannot contain other [[Data]] objects. Example uses are for representing primitive
* data types, like integers and bits.
Expand Down
3 changes: 2 additions & 1 deletion core/src/main/scala/chisel3/Intrinsic.scala
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ package chisel3
import chisel3._
import chisel3.experimental.{requireIsChiselType, Param, SourceInfo}
import chisel3.internal.firrtl.ir._
import chisel3.internal.{Builder, OpBinding}
import chisel3.internal.Builder
import chisel3.internal.binding.OpBinding
import chisel3.internal.Builder.pushCommand

object Intrinsic {
Expand Down
1 change: 1 addition & 0 deletions core/src/main/scala/chisel3/Mem.scala
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import scala.language.experimental.macros
import firrtl.{ir => fir}

import chisel3.internal._
import chisel3.internal.binding._
import chisel3.internal.Builder.pushCommand
import chisel3.internal.firrtl.ir._
import chisel3.internal.sourceinfo.{MemTransform, SourceInfoTransform}
Expand Down
3 changes: 2 additions & 1 deletion core/src/main/scala/chisel3/Module.scala
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import scala.collection.mutable.{ArrayBuffer, HashMap, LinkedHashSet}
import scala.language.experimental.macros

import chisel3.internal._
import chisel3.internal.binding._
import chisel3.internal.Builder._
import chisel3.internal.firrtl.ir._
import chisel3.experimental.{requireIsChiselType, BaseModule, SourceInfo, UnlocatableSourceInfo}
Expand Down Expand Up @@ -833,7 +834,7 @@ package experimental {
require(!isFullyClosed, "Cannot create secret ports if module is fully closed")

Module.assignCompatDir(iodef)
iodef.bind(internal.SecretPortBinding(this), iodef.specifiedDirection)
iodef.bind(SecretPortBinding(this), iodef.specifiedDirection)
iodef
}

Expand Down
1 change: 1 addition & 0 deletions core/src/main/scala/chisel3/RawModule.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import scala.util.Try
import scala.language.experimental.macros
import chisel3.experimental.{BaseModule, SourceInfo, UnlocatableSourceInfo}
import chisel3.internal._
import chisel3.internal.binding._
import chisel3.experimental.hierarchy.{InstanceClone, ModuleClone}
import chisel3.properties.{DynamicObject, Property, StaticObject}
import chisel3.internal.Builder._
Expand Down
1 change: 1 addition & 0 deletions core/src/main/scala/chisel3/Reg.scala
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ package chisel3
import scala.language.experimental.macros

import chisel3.internal._
import chisel3.internal.binding._
import chisel3.internal.Builder.pushCommand
import chisel3.internal.firrtl.ir._
import chisel3.experimental.{requireIsChiselType, requireIsHardware, SourceInfo}
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/scala/chisel3/connectable/Alignment.scala
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ package chisel3.connectable
import chisel3.{Aggregate, Data, DontCare, SpecifiedDirection}
import chisel3.experimental.Analog
import chisel3.reflect.DataMirror
import chisel3.internal.{ChildBinding, TopBinding}
import chisel3.internal.binding.{ChildBinding, TopBinding}

// Represent aligned or flipped relative to an original root.
// Used for walking types and their alignment, accounting for coercion.
Expand Down
1 change: 1 addition & 0 deletions core/src/main/scala/chisel3/experimental/Analog.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
package chisel3.experimental

import chisel3.internal._
import chisel3.internal.binding._
import chisel3.{ActualDirection, Bits, Data, Element, PString, Printable, RawModule, SpecifiedDirection, UInt, Width}

import scala.collection.mutable
Expand Down
3 changes: 2 additions & 1 deletion core/src/main/scala/chisel3/experimental/OpaqueType.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
package chisel3.experimental

import chisel3._
import chisel3.internal.{Builder, ChildBinding}
import chisel3.internal.Builder
import chisel3.internal.binding.ChildBinding
import chisel3.internal.firrtl.ir.Arg

/** Indicates if this Record represents an "Opaque Type"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ package chisel3.experimental

import chisel3._
import chisel3.internal._
import chisel3.internal.binding._
import chisel3.properties.Property

import scala.annotation.{implicitNotFound, tailrec}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ import scala.collection.mutable.HashMap
import chisel3._
import chisel3.experimental.dataview.{isView, reify, reifySingleData}
import chisel3.internal.firrtl.ir.{Arg, ILit, Index, ModuleIO, Slot, ULit}
import chisel3.internal.{throwException, AggregateViewBinding, Builder, ChildBinding, ViewBinding, ViewParent}
import chisel3.internal.{throwException, Builder, ViewParent}
import chisel3.internal.binding.{AggregateViewBinding, ChildBinding, CrossModuleBinding, ViewBinding}

/** Represents lookup typeclass to determine how a value accessed from an original IsInstantiable
* should be tweaked to return the Instance's version
Expand Down Expand Up @@ -71,7 +72,7 @@ object Lookupable {
case Clone(m: BaseModule) =>
val newChild = data.cloneTypeFull
newChild.setRef(data.getRef, true)
newChild.bind(internal.CrossModuleBinding)
newChild.bind(CrossModuleBinding)
newChild.setAllParents(Some(m))
newChild
case _ => throw new InternalErrorException("Match error: newParent=$newParent")
Expand Down
1 change: 1 addition & 0 deletions core/src/main/scala/chisel3/internal/BiConnect.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import chisel3._
import chisel3.experimental.dataview.{isView, reify, reifyToAggregate}
import chisel3.experimental.{attach, Analog, BaseModule, SourceInfo}
import chisel3.properties.Property
import chisel3.internal.binding._
import chisel3.internal.Builder.pushCommand
import chisel3.internal.firrtl.ir.{Connect, DefInvalid}
import chisel3.internal.firrtl.Converter
Expand Down
Loading

0 comments on commit 59c97bd

Please sign in to comment.