code contracts - How do I tell in c# codecontracts that a external method never returns null? -
i have following piece of c# code:
myclaimsidentity.findfirst(claimtypes.nameidentifier).value;   codecontract knows myclaimsidentity never null. complains findfirst(string) method might return null:
warning codecontracts: possibly calling method on null reference. expect system.security.claims.claimsidentity.findfirst(system.string) returns non-null?
i expect this, how can tell codechecker? of course can't change the findfirst(string) since comes external library.
the simple approach is:
var nameidentifier = myclaimsidentity.findfirst(claimtypes.nameidentifier); contract.assume(nameidentifier != null); nameidentifier.value;   code contracts not try prove assume condition, use when proving other requirements.
it's possible create contract reference assembly external code has appropriate ensures post-conditions. code contracts team bcl types. don't know how that.
Comments
Post a Comment