Hi, thanks for posting!
Looking at this code, it does actually make sense to me that the closing braces wouldn't be marked as covered. This is because they actually are not physically covered. You'll likely notice that if you place a breakpoint on any of these lines, you won't be able to break into the code.
This is because of the behaviour of the 'yield return' statement. Were you to place any lines directly after these statements inside the condition, they wouldn't be executed. The logical behaviour of a normal 'return' statement is to load the return value onto the evaluation stack and goto the end of the method, avoiding any further execution of other code in the method. In practice, 'yield return' probably tries to do the same thing, but it does it via a large compiler generated structure that actually bears little resemblance to your original code. My guess would be that the compiler's generation of this structure includes different execution path that results in the 'NOP' of the closing brace not being touched after the return fires.
There really is little that NCrunch can do here to try and report these lines as covered. Making these lines green or hidden would involve NCrunch introducing special behaviour to detect this structure and deliberately manipulating the execution results to make it appear as though something happened that didn't physically happen. That would result in loss in performance, obscurity, maintenance issues and potential risks of breaking important things if such behaviour were to go wrong. So this isn't something that we can fix in NCrunch.
If you're concerned about the effect this has on your metrics, I'd suggest removing the braces around the 'yield return' lines or using code coverage suppression comments.