Switch + Enum = Not all code paths return a value
<p>I'm just curious why this code...</p>

<pre><code>    enum Tile { Empty, White, Black };
    private string TileToString(Tile t)
    {
        switch (t)
        {
            case Tile.Empty:
                return ".";
            case Tile.White:
                return "W";
            case Tile.Black:
                return "B";
        }
    }
</code></pre>

<p>Throws that error. It's not possible for <code>t</code> to take on any other value, is it? Shouldn't the compiler be clever enough to figure that out?</p>
