title: "parameter `'a` is never used" error when 'a is used in type parameter bound
body: <pre><code>use std::iter::Iterator;
  
  trait ListTerm&lt;'a&gt; {
      type Iter: Iterator&lt;Item = &amp;'a u32&gt;;
      fn iter(&amp;'a self) -&gt; Self::Iter;
  }
  
  enum TermValue&lt;'a, LT&gt;
  where
      LT: ListTerm&lt;'a&gt; + Sized + 'a,
  {
      Str(LT),
  }
  </code></pre>
  
  <pre class="lang-none prettyprint-override"><code>error[E0392]: parameter `'a` is never used
   --&gt; src/main.rs:8:16
    |
  8 | enum TermValue&lt;'a, LT&gt;
    |                ^^ unused type parameter
    |
    = help: consider removing `'a` or using a marker such as `std::marker::PhantomData`
  </code></pre>
  
  <p><code>'a</code> clearly is being used. Is this a bug, or are parametric enums just not really finished? <code>rustc --explain E0392</code> recommends the use of <code>PhantomData&lt;&amp;'a _&gt;</code>, but I don't think there's any opportunity to do that in my use case.</p>