Why does this compile
<p>I have trouble understanding what the following code <em>means</em> (and partly, why it even compiles).</p>

<p>We have the following snippet:</p>

<pre><code>if (true) return;
{
    ... // Unreachable code detected
}
</code></pre>

<p>Why does this even compile? </p>

<p><strong>Am I correct in thinking that the compiler <em>assumes an <code>else</code> in this construct</em>?</strong> If not, how does it work?</p>

<p>I think it must be logically equivalent to </p>

<pre><code>if (true) 
    return;
else
{
    ...; // Unreachable code detected.
}
</code></pre>

<p>I'm in doubt, because the compiler doesn't seem to interpret the following as an if-else</p>

<pre><code>if (condition) 
{
    ...
}
{
    ...
}
</code></pre>

<p>It does compile, but the second block gets executed no matter what.</p>

<p>Is this behavior explicitly stated in the C# specs?</p>
