title: VS 2017 Bug or new features?
body: <p>After upgrading to VS 2017 I got the following error from this code (which has always been working perfectly)</p>
  
  <pre><code>byte[] HexStringToByteArray(string hex)
      {
          if (hex.Length % 2 == 1)
              throw new Exception("The binary key cannot have an odd number of digits");
  
          byte[] arr = new byte[hex.Length &gt;&gt; 1];
  
          for (int i = 0; i &lt; hex.Length &gt;&gt; 1; ++i) // Error in this line
          {
              arr[i] = (byte)((GetHexVal(hex[i &lt;&lt; 1]) &lt;&lt; 4) + (GetHexVal(hex[(i &lt;&lt; 1) + 1])));
          }
  
          return arr;
      }
  </code></pre>
  
  <p>Exception:</p>
  
  <pre><code>Error 1: The variable 'i' cannot be used with type arguments
  Error 2: 'hex' is a variable but is used like a type    
  </code></pre>
  
  <p>the solution was to surround the expression by parentheses.</p>
  
  <pre><code>for (int i = 0; i &lt; (hex.Length &gt;&gt; 1); ++i)
  </code></pre>
  
  <p>But that made me wonder is this a bug or a new functionality?
  Thanks.</p>