Summary: | [search] Search still finds overridden method | ||||||
---|---|---|---|---|---|---|---|
Product: | [Eclipse Project] JDT | Reporter: | Stephan Herrmann <stephan.herrmann> | ||||
Component: | Core | Assignee: | Frederic Fusier <frederic_fusier> | ||||
Status: | VERIFIED FIXED | QA Contact: | |||||
Severity: | normal | ||||||
Priority: | P3 | CC: | amj87.iitr, kompiro, Olivier_Thomann | ||||
Version: | 3.3.1 | ||||||
Target Milestone: | 3.6 M1 | ||||||
Hardware: | Other | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Attachments: |
|
Description
Stephan Herrmann
2008-03-02 10:42:31 EST
I think this bug is still alived in Version: 3.4.0 Build id: I20080617-2000 Is there any plan to fix this bug? (In reply to comment #0) > Build ID: M20080221-1800 > (can't yet select version 3.3.2 in bugzilla?) > > I'm afraid I found a bug in the fix for bug 160301: > ... > > Just to make sure I correctly understand the exact meaning of "overridden" > in this context: > when searching for references to an abstract method, this translates to > "find all references to any implementations of this method" > whereas searching for references to a concrete method means > "find all references to this exact method, > but no references definitely referring to an overriding method" > right? > It may be a good explanation :-) I just want to add, to be sure that it's perfectly clear, that even while searching for references to an abstract method, matches on overriding methods of any implementations will not be returned... E.g. interface I { void foo(); } class A implements I { public void foo() {} } class B extends A { public void foo() {} void bar () { foo(); } } Searching for reference to I.foo() will not return the match in B.bar() as foo() is overridden in B... Created attachment 139636 [details]
Proposed patch
Look for for the corresponding method of matching type to see if it's abstract or not. If no method was found, use the type instead (as it was done before).
Released for 3.6M1 in HEAD stream. Verified for 3.6M1 using build I20090802-2000 |