Bug 88313 [quick fix] Quickfix for qualifying field and inheritance
I'm using I20050219-1500. I have a Java project with the following two files: A.java 1 package xyz; 2 3 public class A 4 { 5 protected Object someObject = new Object(); 6 } B.java 1 package xyz; 2 3 public class B extends A 4 { 5 public void someCode() { 6 Object obj = new Object() { 7 public String toString() { 8 return someObject.getClass().getName(); 9 } 10 }; 11 } 12 } and the compiler settings are such that I get a warning for 'Unqualified access to instance field'. Now I get a warning and a quickfix to 'Qualify with A.this' at line 8. I trigger the quickfix and the result is 8 return A.this.someObject.getClass().getName(); which gives a compiler error ('No enclosing instance').
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/LocalCorrectionsSubProcessor.java
PrefixExpression newPrefixExpr= ast.newPrefixExpression();
					newPrefixExpr.setOperand(newParentExpr);
					newPrefixExpr.setOperator(PrefixExpression.Operator.NOT);
					
					rewrite.replace(parent, newPrefixExpr, null);
					
					Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE);
					ASTRewriteCorrectionProposal proposal= new ASTRewriteCorrectionProposal(label, context.getCompilationUnit(), rewrite, 5, image); 
					proposals.add(proposal);	
				}
			}
		} else if (selectedNode instanceof InfixExpression && isBitOperation((((InfixExpression) selectedNode).getOperator()))) {
			
			CompareInBitWiseOpFinder visitor= new CompareInBitWiseOpFinder();
			selectedNode.accept(visitor);
			if (visitor.compareExpression != null) { 
				ASTNode expr= selectedNode;
				ASTNode parent= expr.getParent(); 
				while (parent instanceof InfixExpression && isBitOperation(((InfixExpression) parent).getOperator())) {
					expr= parent;
					parent= expr.getParent();
				}
				String label= CorrectionMessages.getString("LocalCorrectionsSubProcessor.LocalCorrectionsSubProcessor.setparenteses.bitop.description"); 
				Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CAST);
				CUCorrectionProposal proposal= new CUCorrectionProposal(label, context.getCompilationUnit(), 5, image);
				proposals.add(proposal);
				TextEdit edit= proposal.getTextChange().getEdit();
				ASTNode left= visitor.compareExpression.getLeftOperand();
				
				if (expr.getStartPosition() < left.getStartPosition()) {