@@ -130,7 +130,7 @@ module CryptographyBase<LocationSig Location, InputSig<Location> Input> {
130130 /**
131131 * An element that is flow-aware, i.e., it has an input and output node implicitly used for data flow analysis.
132132 */
133- abstract class FlowAwareElement extends LocatableElement {
133+ abstract private class FlowAwareElementImpl extends LocatableElement {
134134 /**
135135 * Gets the output node for this element, which should usually be the same as `this`.
136136 */
@@ -155,6 +155,8 @@ module CryptographyBase<LocationSig Location, InputSig<Location> Input> {
155155 abstract predicate flowsTo ( FlowAwareElement other ) ;
156156 }
157157
158+ final class FlowAwareElement = FlowAwareElementImpl ;
159+
158160 /**
159161 * An element that represents a _known_ cryptographic asset with a determinable value OR an artifact.
160162 *
@@ -187,7 +189,7 @@ module CryptographyBase<LocationSig Location, InputSig<Location> Input> {
187189 * 1. A value (e.g., a string or integer literal) *or*
188190 * 1. An input for which a value cannot be determined (e.g., `argv`, file system reads, and web request headers)
189191 */
190- abstract class GenericSourceInstance extends FlowAwareElement {
192+ abstract class GenericSourceInstance extends FlowAwareElementImpl {
191193 final override ConsumerInputDataFlowNode getInputNode ( ) { none ( ) }
192194
193195 abstract string getInternalType ( ) ;
@@ -257,7 +259,7 @@ module CryptographyBase<LocationSig Location, InputSig<Location> Input> {
257259 *
258260 * A consumer can consume multiple instances and types of assets at once, e.g., both a `PaddingAlgorithm` and `CipherAlgorithm`.
259261 */
260- abstract private class ConsumerElement extends FlowAwareElement {
262+ abstract private class ConsumerElement extends FlowAwareElementImpl {
261263 abstract KnownElement getAKnownSource ( ) ;
262264
263265 override predicate flowsTo ( FlowAwareElement other ) { none ( ) }
@@ -337,7 +339,7 @@ module CryptographyBase<LocationSig Location, InputSig<Location> Input> {
337339 /**
338340 * An element that represents a _known_ cryptographic artifact.
339341 */
340- abstract class ArtifactInstance extends KnownElement , FlowAwareElement {
342+ abstract class ArtifactInstance extends KnownElement , FlowAwareElementImpl {
341343 abstract predicate isConsumerArtifact ( ) ; // whether this is an input artifact defined by its consumer
342344 }
343345
0 commit comments