This is just an "I am Curious" question.
In C#-in-depth Jon Skeet says about lambda expressions:
"if there is a nonvoid return type every code path has to return a compatible value." (Page 233)
The footnote then says:
"Code paths throwing exceptions don't need to return a value, of course, and neither do detectable infinite loops." (Page 233)
I am wondering what constitutes a non-detectable infinite loop?
Can this be done by only logic? or it is done by using external factors like a database or file system?