package solidity-typechecker
The ocaml-solidity project
Install
Dune Dependency
github.com
Readme
Changelog
LGPL-2.1-only WITH OCaml-LGPL-linking-exception License
Edit opam file
Versions (1)
Authors
Maintainers
Sources
v0.2.0.tar.gz
sha256=d5d0f31101413c9a36d6a37973aa03fde788644808f34dbff0220ee45c17ece4
doc/solidity-typechecker/Solidity_postcheck_utils/index.html
Module Solidity_postcheck_utils
Source
1 Type definitions
Source
type 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;
}
Source
type fun_kind =
| Modifier of Solidity_ast.modifier_definition
| Method of Solidity_ast.function_definition * string
| Getter of Solidity_ast.state_variable_definition
Source
type global_details = {
gd_def : global_def;
gd_mutab : Solidity_ast.var_mutability;
mutable gd_updates : ast_annot list;
}
Source
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;
}
Source
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;
}
2. Exceptions raised by the postprocessor
3 Miscellaneous
Source
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.t
Source
val longidentmap_add_list :
Solidity_common.AbsLongIdentMap.key ->
'a ->
'a list Solidity_common.AbsLongIdentMap.t ->
'a list Solidity_common.AbsLongIdentMap.t
Source
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.t
3.5 Utils on previously defined types
Source
val addContractEnv :
Solidity_common.absolute Solidity_common.LongIdent.t ->
contract_env ->
env ->
env
Source
val getInInherited :
(contract_env -> 'a option) ->
contract_env ->
(Solidity_common.absolute Solidity_common.LongIdent.t * 'a) option
Source
val getInEnv :
?in_inherited:bool ->
(contract_env -> 'a option) ->
contract_env ->
('a * Solidity_common.absolute Solidity_common.LongIdent.t option) option
Source
val getGlobal :
?in_inherited:bool ->
Solidity_common.IdentMap.key ->
contract_env ->
(global_details * Solidity_common.absolute Solidity_common.LongIdent.t option)
option
Source
val getFun :
?in_inherited:bool ->
fun_identity ->
contract_env ->
((fun_params * function_details)
* Solidity_common.absolute Solidity_common.LongIdent.t option)
option
Source
val fromCurrentContract :
Solidity_common.absolute Solidity_common.LongIdent.t ->
Solidity_common.absolute Solidity_common.LongIdent.t ->
Solidity_common.Ident.t list option
Source
val paramsFromExprs :
Solidity_ast.expression list ->
(Solidity_checker_TYPES.type_ * 'a option) list
Source
val getFunInEnvs :
Solidity_common.absolute Solidity_common.LongIdent.t ->
fun_params ->
env ->
(fun_identity * function_details) option
Source
val 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)
option
Source
val iterBySelector :
(Solidity_common.absolute Solidity_common.LongIdent.t option ->
Solidity_ast.function_definition ->
unit) ->
string ->
contract_env ->
unit
Source
val addFun :
Solidity_ast.ident ->
fun_params ->
function_details ->
contract_env ->
contract_env
Source
val pp_ident_map :
(Format.formatter -> 'a -> unit) ->
Format.formatter ->
'a Solidity_common.IdentMap.t ->
unit
Source
val pp_longident_map :
(Format.formatter -> 'a -> unit) ->
Format.formatter ->
'a Solidity_common.AbsLongIdentMap.t ->
unit
Source
val pp_fun_params :
Format.formatter ->
(Solidity_checker_TYPES.type_ * Solidity_common.Ident.t option) list ->
unit
Source
val pp_pair :
(Format.formatter -> 'a -> unit) ->
(Format.formatter -> 'b -> unit) ->
Format.formatter ->
('a * 'b) ->
unit
Source
val (--) :
'a Solidity_common.IdentMap.t ->
Solidity_common.IdentMap.key ->
'a Solidity_common.IdentMap.t
Source
val (+++) :
'a list Solidity_common.IdentMap.t ->
'a list Solidity_common.IdentMap.t ->
'a list Solidity_common.IdentMap.t
Source
val (---) :
'a Solidity_common.IdentMap.t ->
'b Solidity_common.IdentMap.t ->
'a Solidity_common.IdentMap.t
Source
val addWrit :
Solidity_common.IdentMap.key Solidity_common.node ->
expr_details ->
expr_details
Source
val addRead :
Solidity_common.IdentMap.key Solidity_common.node ->
expr_details ->
expr_details
Source
val sortContractParts :
Solidity_ast.contract_part Solidity_common.node list ->
Solidity_ast.contract_part Solidity_common.node list
Source
val getAbsoluteContractName :
'a Solidity_common.node ->
Solidity_common.absolute Solidity_common.LongIdent.t
Source
val minPurity :
Solidity_ast.fun_mutability ->
Solidity_ast.fun_mutability ->
Solidity_ast.fun_mutability
4. Analysers
Source
val variablesInExpression :
Solidity_ast.expression ->
ast_annot list Solidity_common.IdentMap.t
* ast_annot list Solidity_common.IdentMap.t
Source
val isInherited :
Solidity_common.absolute Solidity_common.LongIdent.t ->
Solidity_ast.contract_definition ->
bool
Source
val getterOfVariable :
Solidity_ast.state_variable_definition ->
Solidity_common.pos ->
expr_details
Source
val getOverriddenContracts :
contract_env ->
Solidity_ast.ident ->
fun_params ->
Solidity_ast.visibility option ->
Solidity_ast.visibility Solidity_common.IdentMap.t
Source
val getDetails :
contract_env ->
fun_kind ->
fun_params ->
Solidity_common.pos ->
function_details
Source
val inheritFrom :
Solidity_common.absolute Solidity_common.LongIdent.t ->
contract_env ->
env ->
contract_env
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>