title: NullableAttribute prensent over a non-Nullable string
body: <p>I'm using the code below to detect nullable reference types. It worked fine so far, but today I encountered a situation where it doesn't work as expected.</p>
  
  <p>Why Is the compiler placing <code>[Nullable]</code> on <code>PartnerId</code> in the class below?
  And why is it gone when I comment out the Dummy  property ?</p>
  
  <pre><code>#nullable enable
  
  
  using System;
  using System.Linq;
  using System.Reflection;
  
  namespace NullableStrange
  {
      public class Test1
      {
          public int? Id { get; set; }
          public string PartnerId { get; set; } = null!;
          public string? Dummy { get; set; } // comment out 
          public Test1? PartnerLegal { get; set; }
      }
  
      class Program
      {
          static void Main(string[] args)
          {
              Type t = typeof(Test1);
              var partnerId = t.GetProperty("PartnerId");
  
              // I would expect false, but it's true
              Console.WriteLine(IsNullableReferenceType(partnerId));
          }
  
          static bool IsNullableReferenceType(PropertyInfo propertyInfo)
          {
              return propertyInfo.GetCustomAttributes()
                  .Any(a =&gt; a.GetType().Name == "NullableAttribute");
          }
      }
  }
  </code></pre>