private bool RequiresAllocation(IFieldReference field) { // we are assuming that a IManagedPointerType can not be a pointer of a pointer Contract.Assume(!(field.Type is IManagedPointerType) || !ReferenceFinder.IsReferenced(field)); return(ReferenceFinder.IsReferenced(field)); }