private IImmutableSet <Subroutine> GetInheritedRequires(Method method) { IImmutableSet <Subroutine> result = ImmutableSet <Subroutine> .Empty(); if (MetaDataProvider.IsVirtual(method) && ContractProvider.CanInheritContracts(method)) { Method rootMethod; if (MetaDataProvider.TryGetRootMethod(method, out rootMethod)) { Subroutine sub = Get(MetaDataProvider.Unspecialized(method)); if (sub != null) { result = result.Add(sub); } } foreach (Method implMethod in MetaDataProvider.ImplementedMethods(method)) { Subroutine sub = Get(MetaDataProvider.Unspecialized(implMethod)); if (sub != null) { result = result.Add(sub); } } } return(result); }