Module LdcConstraint

module LdcConstraint: sig .. end

type t = [ `Array_type of Descriptor.array_type
| `Class_or_interface of Name.for_class
| `Float of float
| `Int of int32
| `Method_handle of Bootstrap.method_handle
| `Method_type of Descriptor.for_method
| `String of Utils.UTF8.t ]
The type of constant pool elements that can impose a constraint.
type set 
The type of constraint set.


type error = 
| Too_large of int
| Too_many_constraints of int
exception Exception of error
val string_of_error : error -> string


val make : unit -> set
Constructs an new empty set of constraints.
val add : t -> set -> unit
add c s adds the constraint c to the set s.
val encode : set -> ConstantPool.extendable
encode s transforms the constraint set s into a constant pool that can be later used to encode methods imposing the constraints in s. Raises Exception if the constant pool would be too large, or if there is too many constraints.
val equal : t -> t -> bool
Equality over constraints.
val compare : t -> t -> int
Comparison over constraints.
val hash : t -> int
Hash function over constraints.