title: Java Generics Name Clash error when extending multiple interfaces
body: <p>I've looked through similar questions and have come up short, so here it goes;</p>
  
  <pre><code>public interface Predicate&lt;T&gt;{
      boolean apply(T t);
  }
  public interface Function&lt;F, T&gt;{
      T apply(F f);
  }
  
  public class ConcretePredicate extends Predicate&lt;Foo&gt;, Function&lt;Bar, Boolean&gt;{
      @Override
      public boolean apply(Foo foo){/*stuff*/}
      @Override
      public Boolean apply(Bar bar){/*stuff*/}
  } 
  </code></pre>
  
  <p>ConcretePredicate shows the error,</p>
  
  <p>"Name clash: The method apply(T) of type Predicate has the same erasure as apply(F) of type Function but does not override it"</p>
  
  <p>It looks like it should be working though, Anyone have any ideas as to what is going on?</p>
  
  <hr>
  
  <p>[Edit]
  So it looks like this is an issue with eclipse, Galileo does not show this error, while Helios does. I've submitted a bug report with eclipse and will update once I get a response.</p>
  
  <p>[Edit]
  Changed to a simpler case that shows the same error but removes confusion about erasure.</p>