public HashSet <FunctionDefinition> GetFuncDefintionsInContract(ContractDefinition contract) { if (ContractToFunctionsMap.ContainsKey(contract)) { return(ContractToFunctionsMap[contract]); } return(new HashSet <FunctionDefinition>()); }
public void AddFunctionToContract(ContractDefinition contract, FunctionDefinition funcDef) { if (!ContractToFunctionsMap.ContainsKey(contract)) { Debug.Assert(!ContractToFuncSigsMap.ContainsKey(contract)); ContractToFunctionsMap[contract] = new HashSet <FunctionDefinition>(); ContractToFuncSigsMap[contract] = new HashSet <string>(); } Debug.Assert(!ContractToFunctionsMap[contract].Contains(funcDef), $"Duplicated function definition: {funcDef.Name}"); ContractToFunctionsMap[contract].Add(funcDef); string signature = TransUtils.ComputeFunctionSignature(funcDef); Debug.Assert(!ContractToFuncSigsMap[contract].Contains(signature), $"Duplicated function signature: {signature}"); ContractToFuncSigsMap[contract].Add(signature); Debug.Assert(!FunctionToContractMap.ContainsKey(funcDef), $"Duplicated function: {funcDef.Name}"); FunctionToContractMap[funcDef] = contract; }