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
CompilationUnit astRoot= context.getASTRoot();
		
		
		{
			ASTNode selectedNode= context.getCoveringNode();
			ASTRewrite rewrite= new ASTRewrite(selectedNode.getParent());
			
			for (int i= diff - 1; i >= 0; i--) {
				rewrite.markAsRemoved((Expression) arguments.get(indexSkipped[i]));
			}
			String[] arg= new String[] { getMethodSignature(methodBinding, false) };
			String label;
			if (diff == 1) {
				label= CorrectionMessages.getFormattedString("UnresolvedElementsSubProcessor.removeargument.description", arg); 
			} else {
				label= CorrectionMessages.getFormattedString("UnresolvedElementsSubProcessor.removearguments.description", arg); 
			}			
			Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE);
			ASTRewriteCorrectionProposal proposal= new ASTRewriteCorrectionProposal(label, context.getCompilationUnit(), rewrite, 8, image);
			proposal.ensureNoModifications();
			proposals.add(proposal);				
		}
		
		
		if (declaringType.isFromSource()) {
			ICompilationUnit targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, declaringType);
			if (targetCU != null) {
				ChangeDescription[] changeDesc= new ChangeDescription[argTypes.length];
				ITypeBinding[] changeTypes= new ITypeBinding[diff];
				for (int i= diff - 1; i >= 0; i--) {