| Summary: | method reference should not contain type variable anymore | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] JDT | Reporter: | Martin Aeschlimann <martinae> | ||||||
| Component: | Core | Assignee: | Jerome Lanneluc <jerome_lanneluc> | ||||||
| Status: | CLOSED FIXED | QA Contact: | |||||||
| Severity: | normal | ||||||||
| Priority: | P3 | ||||||||
| Version: | 3.1 | ||||||||
| Target Milestone: | 3.1 RC2 | ||||||||
| Hardware: | PC | ||||||||
| OS: | Windows XP | ||||||||
| Whiteboard: | |||||||||
| Attachments: |
|
||||||||
Actually, the binding key itself is good. But the substitution is not done recursively when transforming it to a Signature. Created attachment 21968 [details]
Proposed fix
Created attachment 21969 [details]
Regression test
+1 for RC2 Released fix and test (renamed to test040()) This is not verified in N20050606-0010. The key is still: 'LMethodArguments;.foo<T:Ljava/lang/Object;>(Ljava/util/List<TT;>;Ljava/lang/Integer;)V%<Ljava/lang/String;>' As said in comment #1, the binding key was good and is still good. The problem was in BindingKey#internalToSignature(). Please verify this. Verified in N20050606-0010 + JDT/Core HEAD Verified for 3.1 RC2 using build I20050610-0010 |
RC1 I'm not 100% sure, but shouldn't the resolved key of the invocation of foo() not be <String> void Test.MethodArguments.foo(List<String> lt, Integer i) it currently is <String> void Test.MethodArguments.foo(List<T> lt, Integer i) public class MethodArguments { public <T> void foo(List<T> lt, Integer i) { } void use() { ArrayList<String> as= null; foo(as, 123); } } (the resolved key we get is Lpack/TestIt$MethodArguments;.foo<T:Ljava/lang/Object;>(Ljava/util/List<TT;>;Ljava/lang/Integer;)V%<Ljava/lang/String;>)