status.addFatalError(RefactoringCoreMessages.getString("ExtractMethodAnalyzer.assignments_to_local"));
status.addFatalError(RefactoringCoreMessages.getString("ExtractMethodAnalyzer.assignments_to_local"), JavaSourceContext.create(fCUnit, getSelection()));
	private void computeOutput(RefactoringStatus status) {		// First find all writes inside the selection.		FlowContext flowContext= new FlowContext(0, fMaxVariableId + 1);		flowContext.setConsiderAccessMode(true);		flowContext.setComputeMode(FlowContext.RETURN_VALUES);		FlowInfo returnInfo= new InOutFlowAnalyzer(flowContext, getSelection()).perform(getSelectedNodes());		IVariableBinding[] returnValues= returnInfo.get(flowContext, FlowInfo.WRITE | FlowInfo.WRITE_POTENTIAL | FlowInfo.UNKNOWN);				int counter= 0;		flowContext.setComputeMode(FlowContext.ARGUMENTS);		FlowInfo argInfo= new InputFlowAnalyzer(flowContext, getSelection()).perform(fEnclosingMethod);		IVariableBinding[] reads= argInfo.get(flowContext, FlowInfo.READ | FlowInfo.READ_POTENTIAL | FlowInfo.UNKNOWN);		outer: for (int i= 0; i < returnValues.length && counter <= 1; i++) {			IVariableBinding binding= returnValues[i];			for (int x= 0; x < reads.length; x++) {				if (reads[x] == binding) {					counter++;					fReturnValue= binding;					continue outer;				}			}		}		switch (counter) {			case 0:				fReturnValue= null;				break;			case 1:				break;			default:				fReturnValue= null;				status.addFatalError(RefactoringCoreMessages.getString("ExtractMethodAnalyzer.assignments_to_local")); //$NON-NLS-1$				return;		}		List callerLocals= new ArrayList(5);		IVariableBinding[] writes= argInfo.get(flowContext, FlowInfo.WRITE);		for (int i= 0; i < writes.length; i++) {			IVariableBinding write= writes[i];			if (getSelection().covers(ASTNodes.findDeclaration(write, fEnclosingMethod)))				callerLocals.add(write);		}		fCallerLocals= (IVariableBinding[])callerLocals.toArray(new IVariableBinding[callerLocals.size()]);		if (fReturnValue != null && getSelection().covers(ASTNodes.findDeclaration(fReturnValue, fEnclosingMethod)))			fReturnLocal= fReturnValue;	}