Module fn_info

Module fn_info 

Source

Structs§

AdtInfo
ContractEntry
FnInfo

Enums§

FnKind

Functions§

access_ident_recursive
return the (ident, its fields) of the expr.
append_fn_with_types
check_safety
check_visibility
collect_global_local_pairs
Collects pairs of global static variables and their corresponding local variables within a function’s MIR that are assigned from statics.
dfs_find_unsafe_chains 🔒
display_hashmap
extract_unsafe_callee 🔒
find_generic_in_ty 🔒
Iterate the args’ types recursively and find the matched generic one.
find_generic_param 🔒
Find generic type parameters in the parameter list
find_unsafe_callees_in_function 🔒
generate_contract_from_annotation
Get the annotation in tag-std style. Then generate contract facts for the args. This function will recognize the args name and record states to MIR variable (represent by usize). Return value means Vec<(local_id, fields of this local, contracts)>
generate_contract_from_annotation_without_field_types
Same with generate_contract_from_annotation but does not contain field types.
generate_contract_from_std_annotation_json
Generate contracts from pre-defined std-lib JSON configuration (std_sps_args.json).
generate_mir_cfg_dot
get_adt_def_id_by_adt_method
get_adt_ty
get_adt_via_method
get_all_callees
get_all_mutable_methods
get_all_std_fns_by_rustc_public
get_all_std_unsafe_callees
get_all_std_unsafe_callees_block_id
get_all_std_unsafe_chains
get_cleaned_def_path_name
get_cleaned_def_path_name_ori
get_cons
get_impls_for_struct
get_known_std_names 🔒
We use a json to record known std apis’ arg names. This function will search the json and return the names. Notes: If std gets updated, the json may still record old ones.
get_pointee
get_ptr_deref_dummy_def_id
get_public_fields
get_rawptr_deref
Analyzes the MIR of the given function to collect all local variables that are involved in dereferencing raw pointers (*const T or *mut T).
get_sp
get_sp_tags_and_args_json
get_sp_tags_json
get_std_api_signature_json
get_std_contracts
get_struct_name
get_type
get_unsafe_callees
has_mut_self_param
has_tainted_fields
is_ptr
is_re_exported
is_ref
is_slice
is_strict_ty
is_strict_ty_convert
is_verify_target_func
Filter the function which contains “rapx::proof”
match_primitive_type 🔒
Match built-in primitive types from String
match_std_unsafe_callee
match_std_unsafe_chains_callee
match_ty_with_ident
Match a type identifier string to a concrete Rust type
parse_contract_target
Parse attr.expr into local id and local fields.
parse_expr_into_local_and_ty
parse single expr into (local, fields, ty)
parse_expr_into_number
parse expr into number.
parse_local_signature
Return the Vecs of args’ names and types of local functions.
parse_outside_signature 🔒
Return the Vecs of args’ names and types of outside functions.
parse_signature
Return the Vecs of args’ names and types This function will handle outside def_id by different way.
place_has_raw_deref 🔒
print_hashset
print_unsafe_chains
reflect_generic
reverse_op
search_constructor
try_get_mir 🔒