LocalVariableBinding[] reads= flowInfo.getArguments(flowContext);
LocalVariableBinding[] reads= flowInfo.get(flowContext, FlowInfo.READ | FlowInfo.READ_POTENTIAL | FlowInfo.UNKNOWN);
	private void computeOutput(RefactoringStatus status) {		// First find all writes inside the selection.		FlowContext flowContext= new FlowContext(0, fOuterMostMethodScope.analysisIndex);		flowContext.setConsiderExecutionFlow(false);		flowContext.setConsiderAccessMode(true);		flowContext.setComputeMode(FlowContext.RETURN_VALUES);		FlowInfo flowInfo= new InOutFlowAnalyzer(flowContext, fSelection).analyse(fTopNodes, (BlockScope)getEnclosingScope());		LocalVariableBinding[] returnValues= flowInfo.getReturnValues(flowContext);				flowContext.setComputeMode(FlowContext.ARGUMENTS);		flowInfo= new InputFlowAnalyzer(flowContext, fSelection).analyse(getEnclosingMethod(), fClassScope);		LocalVariableBinding[] reads= flowInfo.getArguments(flowContext);		int counter= 0;		outer: for (int i= 0; i < returnValues.length && counter <= 1; i++) {			LocalVariableBinding 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"));				return;		}		List callerLocals= new ArrayList(5);		LocalVariableBinding[] writes= flowInfo.get(flowContext, FlowInfo.WRITE);		for (int i= 0; i < writes.length; i++) {			LocalVariableBinding write= writes[i];			if (fSelection.covers(write.declaration))				callerLocals.add(write);		}		fCallerLocals= (LocalVariableBinding[])callerLocals.toArray(new LocalVariableBinding[callerLocals.size()]);		if (fReturnValue != null && fSelection.covers(fReturnValue.declaration))			fReturnLocal= fReturnValue;	}