Bug 234172 - [1.5][select] no hover in qualified name with generics
Summary: [1.5][select] no hover in qualified name with generics
Status: VERIFIED FIXED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.4   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 3.4.1   Edit
Assignee: Jerome Lanneluc CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-05-27 11:04 EDT by Philipe Mulet CLA
Modified: 2008-08-28 12:26 EDT (History)
2 users (show)

See Also:


Attachments
Proposed fix and regression test (1.66 KB, patch)
2008-05-29 11:41 EDT, Jerome Lanneluc CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Philipe Mulet CLA 2008-05-27 11:04:09 EDT
Build 3.4rc2

In following code, the hover will not appear when mouse is over 'value' in 'b.value.next' qualified name. Hover does appear in either leading 'b' or trailing 'next' in same expression.

Steps: hover on this line:
    b.value.next = new Box<B, B>(new B()); // error
in 'value' part of left-hande side.

----------------------
public class X {
	public static void main(String[] args) {
		Box<Box<A, A>, Box<A, A>> a = new Box<Box<A, A>, Box<A, A>>(new Box<A, A>(new A()));
		Box<?, ?> b = a;
		b.value.next = new Box<B, B>(new B()); // error
		A c = a.value.next.value;
	}
}

class Box<U extends Box<?, ?>, V extends U> {
	V value;
	Box<U, V> next;
	Box(V v) {
		this.value = v;
	}
	Box() {
	}
}

class A extends Box<A, A> {
}
class B extends Box<B, B> {
}


Note that F3 did work fine.
Comment 1 David Audel CLA 2008-05-29 04:38:31 EDT
The conversion from the binding key given by code select to a signature fails. When JavaElementLabels try to use the broken signature an IllegalArgumentException occurs.

java.lang.IllegalArgumentException
	at org.eclipse.jdt.core.Signature.getTypeSignatureKind(Signature.java:1135)
	at org.eclipse.jdt.ui.JavaElementLabels.getTypeSignatureLabel(JavaElementLabels.java:988)
	at org.eclipse.jdt.ui.JavaElementLabels.getFieldLabel(JavaElementLabels.java:848)
	at org.eclipse.jdt.ui.JavaElementLabels.getElementLabel(JavaElementLabels.java:523)
	at org.eclipse.jdt.ui.JavaElementLabels.getStyledElementLabel(JavaElementLabels.java:483)
	at org.eclipse.jdt.ui.JavaElementLabels.getStyledTextLabel(JavaElementLabels.java:417)
	at org.eclipse.jdt.ui.JavaElementLabels.getElementLabel(JavaElementLabels.java:469)
	at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.getInfoText(JavadocHover.java:613)
	at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.getHoverInfo(JavadocHover.java:548)
	at org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover.internalGetHoverInfo(JavadocHover.java:509)
Comment 2 Jerome Lanneluc CLA 2008-05-29 11:41:16 EDT
Created attachment 102667 [details]
Proposed fix and regression test
Comment 3 Jerome Lanneluc CLA 2008-05-29 11:42:14 EDT
Since this is not a regression comparing to 3.3.2, targeting 3.5 and with possible backport to 3.4.1
Comment 4 Philipe Mulet CLA 2008-05-29 12:28:07 EDT
Fix in 3.4.1 would be nice... since we see 1.5 adoption becoming significant.
Comment 5 Jerome Lanneluc CLA 2008-06-24 07:17:11 EDT
Fix and test released for 3.5M1
Comment 6 Jerome Lanneluc CLA 2008-06-24 10:44:36 EDT
Fix and test released for 3.4.1
Comment 7 Olivier Thomann CLA 2008-08-06 14:09:26 EDT
Verified for 3.5M1 using I20080805-1307
Comment 8 Frederic Fusier CLA 2008-08-28 12:26:21 EDT
Verified for 3.4.1 using build M20080827-2000.