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

    The set upper bound abstract domain as sets capturing possible values of the concrete set bounded by a limit for the maximum number of inferred values. The Bottom element is defined as theBottom and the Top element is defined as Top symbol.

    Type Parameters

    • T

      Type of the values in the abstract domain

    • Value extends SetUpperBoundLift<T> = SetUpperBoundLift<T>

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

    Hierarchy (View Summary)

    • AbstractDomain<
          SetUpperBoundValue<T>,
          SetUpperBoundTop,
          SetUpperBoundBottom,
          Value,
      >
      • SetUpperBoundDomain

    Implements

    Index
    • Type Parameters

      • T

        Type of the values in the abstract domain

      • Value extends SetUpperBoundLift<T> = SetUpperBoundLift<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 SetUpperBoundDomain<T, Value>

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

      • other: this
      • merge: (
            first: SetUpperBoundValue,
            second: SetUpperBoundValue,
        ) => typeof Bottom | typeof Top | SetUpperBoundValue<T>
      • bottomDefault: (
            other: typeof Bottom | typeof Top | SetUpperBoundValue<T>,
        ) => typeof Bottom | typeof Top | SetUpperBoundValue<T>
      • topDefault: (
            other: typeof Bottom | typeof Top | SetUpperBoundValue<T>,
        ) => typeof Bottom | typeof Top | SetUpperBoundValue<T>

      Returns this

    • Parameters

      • other: this
      • merge: (
            first: typeof Top | SetUpperBoundValue<T>,
            second: typeof Top | SetUpperBoundValue<T>,
        ) => typeof Bottom | typeof Top | SetUpperBoundValue<T>
      • bottomDefault: (
            other: typeof Bottom | typeof Top | SetUpperBoundValue<T>,
        ) => typeof Bottom | typeof Top | SetUpperBoundValue<T>

      Returns this

    • Parameters

      • other: this
      • merge: (
            first: typeof Bottom | typeof Top | SetUpperBoundValue<T>,
            second: typeof Bottom | typeof Top | SetUpperBoundValue<T>,
        ) => typeof Bottom | typeof Top | SetUpperBoundValue<T>

      Returns this