title: no suitable method found for addAll
body: <p>Given the following Java code:</p>
  
  <pre><code>public void addStuff(Collection&lt;? extends Object&gt; aCollection) {
      List&lt;? extends Object&gt; myList = new LinkedList&lt;&gt;(aCollection);
      myList.addAll(aCollection);
  }
  </code></pre>
  
  <p>The constructor call compiles, but the addAll() call fails to compile. I get the following error:</p>
  
  <pre><code>no suitable method found for addAll(Collection&lt;CAP#1&gt;)
      method Collection.addAll(Collection&lt;? extends CAP#2&gt;) is not applicable
        (argument mismatch; Collection&lt;CAP#1&gt; cannot be converted to Collection&lt;? extends CAP#2&gt;)
      method List.addAll(Collection&lt;? extends CAP#2&gt;) is not applicable
        (argument mismatch; Collection&lt;CAP#1&gt; cannot be converted to Collection&lt;? extends CAP#2&gt;)
    where CAP#1,CAP#2 are fresh type-variables:
      CAP#1 extends Object from capture of ? extends Object
      CAP#2 extends Object from capture of ? extends Object
  </code></pre>
  
  <p>Even though they have the same signature, and one calls the other:</p>
  
  <pre><code>public LinkedList(Collection&lt;? extends E&gt; c) {
      this();
      addAll(c);
  }
  
  public boolean addAll(Collection&lt;? extends E&gt; c) {
      return addAll(size, c);
  }
  </code></pre>
  
  <p>What's going on here?</p>