public bool HasStateVarInContract(ContractDefinition contract, VariableDeclaration varDecl) { if (!ContractToStateVarsMap.ContainsKey(contract)) { return(false); } return(ContractToStateVarsMap[contract].Contains(varDecl)); }
public void AddStateVarToContract(ContractDefinition contract, VariableDeclaration varDecl) { Debug.Assert(varDecl.StateVariable, $"{varDecl.Name} is not a state variable"); if (!ContractToStateVarsMap.ContainsKey(contract)) { ContractToStateVarsMap[contract] = new HashSet <VariableDeclaration>(); } Debug.Assert(!ContractToStateVarsMap[contract].Contains(varDecl), $"Duplicated state variable: {varDecl.Name}"); ContractToStateVarsMap[contract].Add(varDecl); Debug.Assert(!StateVarToContractMap.ContainsKey(varDecl), $"Duplicated state variable: {varDecl.Name}"); StateVarToContractMap[varDecl] = contract; }
public HashSet <VariableDeclaration> GetStateVarsByContract(ContractDefinition contract) { return(ContractToStateVarsMap.ContainsKey(contract) ? ContractToStateVarsMap[contract] : new HashSet <VariableDeclaration>()); }