title: Why isn't this code unreachable?
body: <p>I found a case where I have some code that I believe to be unreachable and is not detected.
  No warning is issued neither by the compiler nor by Visual Studio.</p>
  
  <p>Consider this code:</p>
  
  <pre><code>enum Foo { A, B, C }
  class Bar { public Foo type; }
  
  static class Program
  {
      private static void Main()
      {
          var bar = new Bar { type = Foo.A };
  
          if (bar.type == Foo.B)
          {
              Console.WriteLine("lol");
          }
      }
  }
  </code></pre>
  
  <p>Obviously, the program will not print out "lol" because the condition in the if statement is false.
  I do not understand why a warning is not issued for the unreachable code though.
  My only hypothesis is that that could potentially be reachable if you have a race condition in a multi-threaded program. Is this correct?</p>