title: Why is a generic typed property nullable?
body: <p>I am trying to create a parameterized class with a <code>lateinit</code> non-nullable property of the generic type:</p>
  <pre><code>class Test&lt;T&gt; {
  
     private lateinit var t : T
  
     private lateinit var s : String
  
  }
  </code></pre>
  <p>The latter is allowed, but the former is not. The compiler returns the following error:</p>
  <blockquote>
  <p>Error:(7, 11) ''lateinit'' modifier is not allowed on nullable properties</p>
  </blockquote>
  <p>Since I didn't declare <code>T?</code>, I am confused as to why this is the case.</p>