Bug 37399 Organize Imports can remove required inner interfaces [code manipulation]
import com.epiphany.shr.sf.ClusterSingletonStepped.SingletonStep; After organize imports, this import is turned into: import com.epiphany.shr.sf.ClusterSingletonStepped; If it is not legal to have inner interfaces I appologize and I will flog the coder. Otherwise, it appears that organize imports can potentially cause compiler errors that are hard to track down. I run it, and things look ok, but part of my import is gone. Interface definition: public abstract class ClusterSingletonStepped extends ClusterSingleton { ..... public interface SingletonStep ..... } Thanks for looking at this. Please let me know if I can add any additional information or answer any questions.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/UnresolvedElementsSubProcessor.java
int idx= indexSkipped[i];
					Expression arg= (Expression) arguments.get(idx);
					String name= arg instanceof SimpleName ? ((SimpleName) arg).getIdentifier() : null;
					ITypeBinding newType= ASTResolving.normalizeTypeBinding(argTypes[idx]);
					if (newType == null) {
						newType= astRoot.getAST().resolveWellKnownType("java.lang.Object"); 
					}
					changeDesc[idx]= new InsertDescription(newType, name);
					changeTypes[i]= newType;
				}
				String[] arg= new String[] { getMethodSignature(methodBinding, !cu.equals(targetCU)), getTypeNames(changeTypes) };
				String label;
				if (methodBinding.isConstructor()) {
					if (diff == 1) {
						label= CorrectionMessages.getFormattedString("UnresolvedElementsSubProcessor.addparam.constr.description", arg); 
					} else {
						label= CorrectionMessages.getFormattedString("UnresolvedElementsSubProcessor.addparams.constr.description", arg); 
					}						
				} else {
					if (diff == 1) {
						label= CorrectionMessages.getFormattedString("UnresolvedElementsSubProcessor.addparam.description", arg); 
					} else {
						label= CorrectionMessages.getFormattedString("UnresolvedElementsSubProcessor.addparams.description", arg); 
					}
				}	
				Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_LOCAL);
				ChangeMethodSignatureProposal proposal= new ChangeMethodSignatureProposal(label, targetCU, astRoot, methodBinding, changeDesc, 1, image);
				proposals.add(proposal);
			}
		}