Bug 93509 Code assist insert strange import
public class A<LHS, RHS> { LHS lhs; RHS rhs; { A<? extends Object, ? extends Number> a= null; } L<code assist> } - trigger code assist at the location above - select LHS. Observe you get an import on LHS
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/LazyJavaTypeCompletionProposal.java
import org.eclipse.jdt.internal.corext.codemanipulation.ImportsStructure;
import org.eclipse.jdt.ui.PreferenceConstants;
import org.eclipse.jdt.internal.ui.JavaPlugin;
import org.eclipse.jdt.internal.ui.preferences.JavaPreferencesSettings;
/**
 * If passed compilation unit is not null, the replacement string will be seen as a qualified type name.
  */
public class LazyJavaTypeCompletionProposal extends LazyJavaCompletionProposal {
	
	protected final static char[] TYPE_TRIGGERS= new char[] { '.', '\t', '[', '(', ' ' };
	protected final ICompilationUnit fCompilationUnit;
	
	private boolean fComputeUnqualifiedName= true;
	private String fUnqualifiedTypeName;
	
	private boolean fComputeQualifiedName= true;
	private String fFullyQualifiedTypeName;
	public LazyJavaTypeCompletionProposal(CompletionProposal proposal, ICompilationUnit cu) {
		super(proposal);
		fCompilationUnit= cu;
	}
	
	
	protected final String getFullyQualifiedTypeName() {
		if (fComputeQualifiedName) {
			fComputeQualifiedName= false;
			fFullyQualifiedTypeName= String.valueOf(Signature.toCharArray(fProposal.getSignature()));
		}
		return fFullyQualifiedTypeName;
	}