markAsLinked(rewrite, expression, true, RETURN_EXPRESSION_KEY);
addLinkedPosition(rewrite.track(expression), true, RETURN_EXPRESSION_KEY);
	protected ASTRewrite getRewrite() {		AST ast= fMethodDecl.getAST();				ITypeBinding returnBinding= getReturnTypeBinding();				if (fExistingReturn != null) {			ASTRewrite rewrite= new ASTRewrite(ast);						Expression expression= evaluateReturnExpressions(ast, returnBinding, fExistingReturn.getStartPosition());			if (expression != null) {				rewrite.set(fExistingReturn, ReturnStatement.EXPRESSION_PROPERTY, expression, null);								markAsLinked(rewrite, expression, true, RETURN_EXPRESSION_KEY);			}			return rewrite;		} else {			ASTRewrite rewrite= new ASTRewrite(ast);						Block block= fMethodDecl.getBody();							List statements= block.statements();			int nStatements= statements.size();			ASTNode lastStatement= null;			if (nStatements > 0) {				lastStatement= (ASTNode) statements.get(nStatements - 1);			}									if (returnBinding != null && lastStatement instanceof ExpressionStatement && lastStatement.getNodeType() != ASTNode.ASSIGNMENT) {				Expression expression= ((ExpressionStatement) lastStatement).getExpression();				ITypeBinding binding= expression.resolveTypeBinding();				if (binding != null && TypeRules.canAssign(binding, returnBinding)) {					Expression placeHolder= (Expression) rewrite.createMoveTarget(expression);										ReturnStatement returnStatement= ast.newReturnStatement();					returnStatement.setExpression(placeHolder);										rewrite.replace(lastStatement, returnStatement, null);					return rewrite;				}			}						int offset;			if (lastStatement == null) {				offset= block.getStartPosition() + 1;			} else {				offset= lastStatement.getStartPosition() + lastStatement.getLength();			}			ReturnStatement returnStatement= ast.newReturnStatement();			Expression expression= evaluateReturnExpressions(ast, returnBinding, offset);						returnStatement.setExpression(expression);			rewrite.getListRewrite(block, Block.STATEMENTS_PROPERTY).insertLast(returnStatement, null);						markAsLinked(rewrite, returnStatement.getExpression(), true, RETURN_EXPRESSION_KEY);			return rewrite;		}	}