Bug 106834

Summary: IMethodBinding#isEqualTo(..) wrong with overloaded parameterized methods
Product: [Eclipse Project] JDT Reporter: Markus Keller <markus.kell.r>
Component: CoreAssignee: Olivier Thomann <Olivier_Thomann>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: P3    
Version: 3.2   
Target Milestone: 3.2 M2   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
Proposed fix
none
Regression test none

Description Markus Keller CLA 2005-08-12 08:40:13 EDT
I20050811-1530

public class Try {
	<S extends Number, T> void take(S e, T f) {} //1
	<S extends Number, T> void take(T e, S f) {} //2
	<S extends Number, T extends S> void take(T e, S f) {} //3
}

The binding keys are:
1: Lb/Try;.take<S:Ljava/lang/Number;T:Ljava/lang/Object;>(TS;TT;)V
2: Lb/Try;.take<S:Ljava/lang/Number;T:Ljava/lang/Object;>(TT;TS;)V
3: Lb/Try;.take<S:Ljava/lang/Number;T:TS;>(TT;TS;)V

The following invocations of IMethodBinding#isEqualTo(..) wrongly return true:
1.isEqualTo(2)
2.isEqualTo(1)
3.isEqualTo(1)
3.isEqualTo(2)
Comment 1 Olivier Thomann CLA 2005-08-12 11:33:17 EDT
Created attachment 26051 [details]
Proposed fix
Comment 2 Olivier Thomann CLA 2005-08-12 11:33:50 EDT
Created attachment 26052 [details]
Regression test
Comment 3 Olivier Thomann CLA 2005-08-12 11:34:24 EDT
Jérôme, please review fix.
Comment 4 Olivier Thomann CLA 2005-08-12 11:39:12 EDT
Fixed and released in HEAD.
Regression test added in ASTConverter15Test.test0195
Comment 5 Olivier Thomann CLA 2005-09-20 14:09:01 EDT
Verified using I20050920-0010 for 3.2M2