@eagleoutice/flowr - v2.17.4
    Preparing search index...

    The bounded set abstract domain as sets of possible values bounded by a limit indicating the maximum number of inferred values. The Bottom element is defined as the empty set and the Top element is defined as Top symbol.

    Type Parameters

    • T

      Type of the values in the abstract domain

    • Value extends BoundedSetLift<T> = BoundedSetLift<T>

      Type of the constraint in the abstract domain (Top, Bottom, or an actual value)

    Hierarchy (View Summary)

    Implements

    Index
    • Type Parameters

      • T

        Type of the values in the abstract domain

      • Value extends BoundedSetLift<T> = BoundedSetLift<T>

        Type of the constraint in the abstract domain (Top, Bottom, or an actual value)

      Parameters

      • value: Value | T[]

        The abstract value to start from.

      • limit: number = DEFAULT_INFERENCE_LIMIT

        A limit for the maximum number of elements to store in the set

      • setType: typeof Set = Set

        An optional set constructor for the domain elements if the type T is not storable in a HashSet

      Returns BoundedSetDomain<T, Value>

    _value: Value
    limit: number
    setType: typeof Set
    • Parameters

      • other: this
      • merge: (
            first: BoundedSetValue,
            second: BoundedSetValue,
        ) => typeof Top | ReadonlySet<never> | BoundedSetValue<T>
      • bottomDefault: (
            other: typeof Top | ReadonlySet<never> | BoundedSetValue<T>,
        ) => typeof Top | ReadonlySet<never> | BoundedSetValue<T>
      • topDefault: (
            other: typeof Top | ReadonlySet<never> | BoundedSetValue<T>,
        ) => typeof Top | ReadonlySet<never> | BoundedSetValue<T>

      Returns this

    • Parameters

      • other: this
      • merge: (
            first: typeof Top | BoundedSetValue<T>,
            second: typeof Top | BoundedSetValue<T>,
        ) => typeof Top | ReadonlySet<never> | BoundedSetValue<T>
      • bottomDefault: (
            other: typeof Top | ReadonlySet<never> | BoundedSetValue<T>,
        ) => typeof Top | ReadonlySet<never> | BoundedSetValue<T>

      Returns this

    • Parameters

      • other: this
      • merge: (
            first: typeof Top | ReadonlySet<never> | BoundedSetValue<T>,
            second: typeof Top | ReadonlySet<never> | BoundedSetValue<T>,
        ) => typeof Top | ReadonlySet<never> | BoundedSetValue<T>

      Returns this

    • Parameters

      • transform: (value: BoundedSetValue) => typeof Top | ReadonlySet<never> | BoundedSetValue<T>
      • bottomDefault: typeof Top | ReadonlySet<never> | BoundedSetValue<T>
      • topDefault: typeof Top | ReadonlySet<never> | BoundedSetValue<T>

      Returns this

    • Parameters

      • transform: (
            value: typeof Top | BoundedSetValue<T>,
        ) => typeof Top | ReadonlySet<never> | BoundedSetValue<T>
      • bottomDefault: typeof Top | ReadonlySet<never> | BoundedSetValue<T>

      Returns this

    • Parameters

      • transform: (
            value: typeof Top | ReadonlySet<never> | BoundedSetValue<T>,
        ) => typeof Top | ReadonlySet<never> | BoundedSetValue<T>

      Returns this