fn contract_linearization_mro( contract_name: &str, contract_map: &HashMap<String, ContractIR>, visiting: &mut HashSet<String>, cache: &mut HashMap<String, Vec<String>>, ) -> Result<Vec<String>, SolidityError>