title: Pattern matching against decimal always fails with a nullable decimal accumulator
body: <p>What causes the <code>sum</code> to be always <code>null</code>?</p>
  
  <pre><code>object[] data = new object[]
  {
      2.2M,
      3m,
      1,
      "string",
      true,
      false,
      2.3f
  };
  
  decimal? sum = null;
  foreach (object x in data)
  {
      if (x is decimal d)
          sum += d;
  }
  </code></pre>