Bug 119395

Summary: [1.5][compiler] wildcard capture and unnecessary cast warning
Product: [Eclipse Project] JDT Reporter: Noel Grandin <noelgrandin>
Component: CoreAssignee: Philipe Mulet <philippe_mulet>
Status: RESOLVED WORKSFORME QA Contact:
Severity: normal    
Priority: P3    
Version: 3.1.1   
Target Milestone: 3.2 M6   
Hardware: PC   
OS: Windows 2000   
Whiteboard:

Description Noel Grandin CLA 2005-12-06 07:01:39 EST
package noel.bugs;

import java.util.HashMap;
import java.util.Map;

/**
 * Without the cast on the relevant line, the SUN compiler (JDK1.5.0_06) will flag an error.
 * 
 * With the cast, Eclipse issues a warning that the cast is unnecessary. But as far as I can
 * tell, the cast really is necessary.
 */
public class EclipseGenericsBug {

	public static class DatabaseObject {
	}
	
	public static class ObjectFormUI<T extends DatabaseObject>  {
	}
	
	private static final Map<Class<? extends DatabaseObject>, Class<? extends ObjectFormUI>> uiMap 
		= new HashMap<Class<? extends DatabaseObject>, Class<? extends ObjectFormUI>>();
	
	private EclipseGenericsBug() {
	}
	
	public static <T extends DatabaseObject> Class<? extends ObjectFormUI<T>> getUI(Class<T> persistentClass) {
		// >>>>>> THIS LINE IS THE CRITICAL ONE <<<<<<<
		return (Class<? extends ObjectFormUI<T>>) uiMap.get(persistentClass);
		// >>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<
	}

}
Comment 1 Philipe Mulet CLA 2006-02-28 07:04:49 EST
Works fine now. We resolved some extraneous unnecessary cast diagnostics in presence of unchecked conversions.

Added GenericTypeTest#test875
Comment 2 Philipe Mulet CLA 2006-02-28 07:06:00 EST
Also added GenericTypeTest#test876