aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/DependencyAPIMigration.scala
blob: b62b99c5be9aa8c81e799b868c260f9f708a0a96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// SPDX-License-Identifier: Apache-2.0

package firrtl

import firrtl.stage.TransformManager.TransformDependency

/** This trait helps ease migration from old [[firrtl.CircuitForm CircuitForm]] specification of dependencies to
  * Dependency API specification of dependencies. This trait implements deprecated, abstract [[Transform]] methods
  * (`inputForm` and `outputForm`) for you and sets default values for dependencies:
  *
  *    - `prerequisites` are empty
  *    - `optionalPrerequisites` are empty
  *    - `optionalPrerequisiteOf` are empty
  *    - all transforms are invalidated
  *
  * For more information, see: https://bit.ly/2Voppre
  */
trait DependencyAPIMigration { this: Transform =>

  @deprecated("Use Dependency API methods for equivalent functionality. See: https://bit.ly/2Voppre", "FIRRTL 1.3")
  final override def inputForm: CircuitForm = UnknownForm

  @deprecated("Use Dependency API methods for equivalent functionality. See: https://bit.ly/2Voppre", "FIRRTL 1.3")
  final override def outputForm: CircuitForm = UnknownForm

  override def prerequisites: Seq[TransformDependency] = Seq.empty

  override def optionalPrerequisites: Seq[TransformDependency] = Seq.empty

  override def optionalPrerequisiteOf: Seq[TransformDependency] = Seq.empty

  override def invalidates(a: Transform): Boolean = true

}