Only 9 results in google, and the only documentation I can find about it is:
Indicates that method is *pure* linq method, with postponed enumeration. C# iterator methods (yield ...) are always LinqTunnel
So basically any method returning IEnumerable<T> with deferred enumeration should be marked with it ?
If so, what does R# do with this information ?
Also, isn't the whole point of IEnumerable<T> is that it's always deferred (thus making this attribute redundant)?
After all, if it's not, you should really be returning ICollection<>, IList<>, array, etc.
(there are some debatable tricks and excuses to return IEnumerable<T> even though an actual collection is returned - e.g. when you don't want to return an internal structure as modifiable, so maybe it caters to those cases?)