MCPcopy Create free account
hub / github.com/argotorg/solidity / functionSort

Function functionSort

libsolidity/formal/PredicateSort.cpp:72–90  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

70}
71
72SortPointer functionSort(FunctionDefinition const& _function, ContractDefinition const* _contract, SymbolicState& _state)
73{
74 auto smtSort = [](auto _var) { return smt::smtSortAbstractFunction(*_var->type()); };
75 auto varSorts = _contract ? stateSorts(*_contract) : std::vector<SortPointer>{};
76 auto inputSorts = applyMap(_function.parameters(), smtSort);
77 auto outputSorts = applyMap(_function.returnParameters(), smtSort);
78 return std::make_shared<FunctionSort>(
79 std::vector<SortPointer>{_state.errorFlagSort(), _state.thisAddressSort()} +
80 getBuiltInFunctionsSorts(_state) +
81 std::vector<SortPointer>{_state.txSort(), _state.stateSort()} +
82 varSorts +
83 inputSorts +
84 std::vector<SortPointer>{_state.stateSort()} +
85 varSorts +
86 inputSorts +
87 outputSorts,
88 SortProvider::boolSort
89 );
90}
91
92SortPointer functionBodySort(FunctionDefinition const& _function, ContractDefinition const* _contract, SymbolicState& _state)
93{

Callers 3

createSummaryBlockMethod · 0.85
constructorSortFunction · 0.85
functionBodySortFunction · 0.85

Calls 6

smtSortAbstractFunctionFunction · 0.85
stateSortsFunction · 0.85
applyMapFunction · 0.85
getBuiltInFunctionsSortsFunction · 0.85
parametersMethod · 0.80
typeMethod · 0.45

Tested by

no test coverage detected