protected virtual IEnumerable<ISourceLocation> GetFragments() { Contract.Ensures(Contract.Result<IEnumerable<ISourceLocation>>() != null); throw new InvalidOperationException(); //This method would be abstract but for the contract. }