Solidity_postcheck_utils1 Type definitions
type fun_params =
(Solidity_checker_TYPES.type_ * Solidity_common.Ident.t option) listtype ast_annot = Solidity_common.annot * Solidity_common.postype expr_details = {ed_read : ast_annot list Solidity_common.IdentMap.t;ed_writ : ast_annot list Solidity_common.IdentMap.t;ed_fun_calls : (fun_params * ast_annot) list Solidity_common.IdentMap.t;ed_deep_writ : ast_annot list Solidity_common.IdentMap.t;ed_read_access : Solidity_common.pos list;ed_writ_state : Solidity_common.pos list;}type fun_kind = | Modifier of Solidity_ast.modifier_definition| Method of Solidity_ast.function_definition * string| Getter of Solidity_ast.state_variable_definitiontype global_details = {gd_def : global_def;gd_mutab : Solidity_ast.var_mutability;mutable gd_updates : ast_annot list;}type function_details = {fd_details : expr_details;fd_kind : fun_kind;fd_purity : Solidity_ast.fun_mutability;fd_defined : bool;fd_modifiers : (fun_params * modifier_details) list
Solidity_common.AbsLongIdentMap.t;}type contract_env = {env_funs : (fun_params * function_details) list Solidity_common.IdentMap.t;env_glob : global_details Solidity_common.IdentMap.t;env_inherited : (Solidity_common.absolute Solidity_common.LongIdent.t
* contract_env)
list;env_ctr : Solidity_ast.contract_definition;}type env = contract_env Solidity_common.AbsLongIdentMap.t2. Exceptions raised by the postprocessor
val failOnAnnot : Solidity_common.annot -> 'a3 Miscellaneous
val identmap_add_list_unique :
('a -> 'a -> bool) ->
Solidity_common.IdentMap.key ->
('a * 'b) ->
('a * 'b) list Solidity_common.IdentMap.t ->
('a * 'b) list Solidity_common.IdentMap.tval longidentmap_add_list :
Solidity_common.AbsLongIdentMap.key ->
'a ->
'a list Solidity_common.AbsLongIdentMap.t ->
'a list Solidity_common.AbsLongIdentMap.tval typeOf : 'a Solidity_common.node -> Solidity_checker_TYPES.type_val identmap_list_partition :
(Solidity_common.IdentMap.key -> 'a -> bool) ->
'a list Solidity_common.IdentMap.t ->
'a list Solidity_common.IdentMap.t * 'a list Solidity_common.IdentMap.t3.5 Utils on previously defined types
val empty_expr_details : expr_detailsval empty_contract_env : Solidity_ast.contract_definition -> contract_envval empty_project_env : envval equalParams : check_ident:bool -> fun_params -> fun_params -> boolval equalSortedParams : fun_params -> fun_params -> boolval addContractEnv :
Solidity_common.absolute Solidity_common.LongIdent.t ->
contract_env ->
env ->
envval getInInherited :
(contract_env -> 'a option) ->
contract_env ->
(Solidity_common.absolute Solidity_common.LongIdent.t * 'a) optionval getInEnv :
?in_inherited:bool ->
(contract_env -> 'a option) ->
contract_env ->
('a * Solidity_common.absolute Solidity_common.LongIdent.t option) optionval getGlobal :
?in_inherited:bool ->
Solidity_common.IdentMap.key ->
contract_env ->
(global_details * Solidity_common.absolute Solidity_common.LongIdent.t option)
optionval getFun :
?in_inherited:bool ->
fun_identity ->
contract_env ->
((fun_params * function_details)
* Solidity_common.absolute Solidity_common.LongIdent.t option)
optionval fromCurrentContract :
Solidity_common.absolute Solidity_common.LongIdent.t ->
Solidity_common.absolute Solidity_common.LongIdent.t ->
Solidity_common.Ident.t list optionval paramsFromExprs :
Solidity_ast.expression list ->
(Solidity_checker_TYPES.type_ * 'a option) listval getFunInEnvs :
Solidity_common.absolute Solidity_common.LongIdent.t ->
fun_params ->
env ->
(fun_identity * function_details) optionval getFunAtCall :
?in_inherited:bool ->
Solidity_common.Ident.t ->
Solidity_ast.function_call_arguments ->
contract_env ->
((fun_params * function_details)
* Solidity_common.absolute Solidity_common.LongIdent.t option)
optionval iterBySelector :
(Solidity_common.absolute Solidity_common.LongIdent.t option ->
Solidity_ast.function_definition ->
unit) ->
string ->
contract_env ->
unitval getVisibility : fun_kind -> Solidity_ast.visibilityval is_constructor : Solidity_ast.function_definition -> boolval addFun :
Solidity_ast.ident ->
fun_params ->
function_details ->
contract_env ->
contract_envval pp_ident_map :
(Stdlib.Format.formatter -> 'a -> unit) ->
Stdlib.Format.formatter ->
'a Solidity_common.IdentMap.t ->
unitval pp_longident_map :
(Stdlib.Format.formatter -> 'a -> unit) ->
Stdlib.Format.formatter ->
'a Solidity_common.AbsLongIdentMap.t ->
unitval pp_expr_details : Stdlib.Format.formatter -> expr_details -> unitval pp_global_def : Stdlib.Format.formatter -> global_def -> unitval pp_mutab : Stdlib.Format.formatter -> Solidity_ast.var_mutability -> unitval pp_global_details : Stdlib.Format.formatter -> global_details -> unitval pp_fun_details : Stdlib.Format.formatter -> function_details -> unitval pp_ident : Stdlib.Format.formatter -> Solidity_common.Ident.t -> unitval pp_fun_params :
Stdlib.Format.formatter ->
(Solidity_checker_TYPES.type_ * Solidity_common.Ident.t option) list ->
unitval pp_env : Stdlib.Format.formatter -> contract_env -> unitval (--) :
'a Solidity_common.IdentMap.t ->
Solidity_common.IdentMap.key ->
'a Solidity_common.IdentMap.tval (+++) :
'a list Solidity_common.IdentMap.t ->
'a list Solidity_common.IdentMap.t ->
'a list Solidity_common.IdentMap.tval (---) :
'a Solidity_common.IdentMap.t ->
'b Solidity_common.IdentMap.t ->
'a Solidity_common.IdentMap.tval unionAssignDetails : expr_details -> expr_details -> expr_detailsval removeFromAssignDetails :
'a Solidity_common.IdentMap.t ->
expr_details ->
expr_detailsval addWrit :
Solidity_common.IdentMap.key Solidity_common.node ->
expr_details ->
expr_detailsval addRead :
Solidity_common.IdentMap.key Solidity_common.node ->
expr_details ->
expr_detailsval addFunc : fun_identity -> ast_annot -> expr_details -> expr_detailsval isVirtual : function_details -> contract_env -> boolval isConstructor : function_details -> boolval getName : function_details -> Solidity_ast.identval sortContractParts :
Solidity_ast.contract_part Solidity_common.node list ->
Solidity_ast.contract_part Solidity_common.node listval getAbsoluteContractName :
'a Solidity_common.node ->
Solidity_common.absolute Solidity_common.LongIdent.tval minPurity :
Solidity_ast.fun_mutability ->
Solidity_ast.fun_mutability ->
Solidity_ast.fun_mutabilityval purityToString : Solidity_ast.fun_mutability -> stringval purity : Solidity_ast.function_definition -> Solidity_ast.fun_mutabilityval callablePurity :
Solidity_ast.fun_mutability ->
Solidity_ast.fun_mutability ->
bool4. Analysers
val variablesInExpression :
Solidity_ast.expression ->
ast_annot list Solidity_common.IdentMap.t
* ast_annot list Solidity_common.IdentMap.tval getExpressionDetails : Solidity_ast.expression -> expr_detailsval isInherited :
Solidity_common.absolute Solidity_common.LongIdent.t ->
Solidity_ast.contract_definition ->
boolval getterOfVariable :
Solidity_ast.state_variable_definition ->
Solidity_common.pos ->
expr_detailsval getOverriddenContracts :
contract_env ->
Solidity_ast.ident ->
fun_params ->
Solidity_ast.visibility option ->
Solidity_ast.visibility Solidity_common.IdentMap.tval getDetails :
contract_env ->
fun_kind ->
fun_params ->
Solidity_common.pos ->
function_detailsval inheritFrom :
Solidity_common.absolute Solidity_common.LongIdent.t ->
contract_env ->
env ->
contract_env