Module Data_race_checker.Data_race_checker_env
val elem_in_list : 'a -> 'a list -> bool
val is_subset_of : 'a list -> 'a list -> bool
val intersect_lists : 'a list -> 'a list -> 'a list
val var_lists_are_equal : Ast.Ast_types.Var_name.t list -> Ast.Ast_types.Var_name.t list -> bool
val identifier_matches_var_name : Ast.Ast_types.Var_name.t -> Desugaring.Desugared_ast.identifier -> bool
val capability_mode_present : Ast.Ast_types.mode -> Ast.Ast_types.mode -> bool
val class_has_mode : Ast.Ast_types.Class_name.t -> Ast.Ast_types.mode -> Desugaring.Desugared_ast.class_defn list -> bool
val type_has_mode : Ast.Ast_types.type_expr -> Ast.Ast_types.mode -> Desugaring.Desugared_ast.class_defn list -> bool
val identifier_has_mode : Desugaring.Desugared_ast.identifier -> Ast.Ast_types.mode -> Desugaring.Desugared_ast.class_defn list -> bool
val capability_fields_have_mode : Ast.Ast_types.capability -> Ast.Ast_types.Class_name.t -> Ast.Ast_types.mode -> Desugaring.Desugared_ast.class_defn list -> bool
val get_class_capabilities : Ast.Ast_types.Class_name.t -> Desugaring.Desugared_ast.class_defn list -> Ast.Ast_types.capability list
val get_class_field_capabilities : Ast.Ast_types.Class_name.t -> Ast.Ast_types.Field_name.t -> Desugaring.Desugared_ast.class_defn list -> Ast.Ast_types.capability list
val get_class_capability_fields : Ast.Ast_types.Class_name.t -> Ast.Ast_types.Capability_name.t -> Desugaring.Desugared_ast.class_defn list -> Ast.Ast_types.field_defn list
val get_identifier_name : Desugaring.Desugared_ast.identifier -> Ast.Ast_types.Var_name.t
val get_identifier_capabilities : Desugaring.Desugared_ast.identifier -> Ast.Ast_types.capability list
val set_identifier_capabilities : Desugaring.Desugared_ast.identifier -> Ast.Ast_types.capability list -> Desugaring.Desugared_ast.identifier
val get_function_params : Ast.Ast_types.Function_name.t -> Desugaring.Desugared_ast.function_defn list -> Ast.Ast_types.param list
val get_function_defn : Ast.Ast_types.Function_name.t -> Desugaring.Desugared_ast.function_defn list -> Desugaring.Desugared_ast.function_defn
val get_method_params : Ast.Ast_types.Class_name.t -> Ast.Ast_types.Method_name.t -> Desugaring.Desugared_ast.class_defn list -> Ast.Ast_types.param list
val get_method_defn : Ast.Ast_types.Class_name.t -> Ast.Ast_types.Method_name.t -> Desugaring.Desugared_ast.class_defn list -> Desugaring.Desugared_ast.method_defn
val param_to_obj_var_and_capabilities : Desugaring.Desugared_ast.class_defn list -> Ast.Ast_types.param -> Desugaring.Desugared_ast.obj_var_and_capabilities option
val params_to_obj_vars_and_capabilities : Desugaring.Desugared_ast.class_defn list -> Ast.Ast_types.param list -> Desugaring.Desugared_ast.obj_var_and_capabilities list
Convert a parameter to a representation which contains the capabilities it is allowed to access.
val get_method_capabilities_used : Ast.Ast_types.Class_name.t -> Ast.Ast_types.Method_name.t -> Desugaring.Desugared_ast.class_defn list -> Ast.Ast_types.capability list
val reduce_expr_to_obj_ids : Desugaring.Desugared_ast.expr -> Desugaring.Desugared_ast.identifier list
Use abstract interpretation to return the potential object identifiers this expression reduces to, if it reduces to an identifier.
val reduce_block_expr_to_obj_ids : Desugaring.Desugared_ast.block_expr -> Desugaring.Desugared_ast.identifier list
val find_aliases_in_block_expr : should_match_fields:bool -> Ast.Ast_types.Var_name.t -> Desugaring.Desugared_ast.block_expr -> Ast.Ast_types.Var_name.t list
Find all aliases of x (if should match fields=true then find aliases of x.f x.g etc too)