declaration.accept(visitor);
if (declaration != null) declaration.accept(visitor);
	private RefactoringStatus createRenameChanges(final IProgressMonitor monitor) throws CoreException {		Assert.isNotNull(monitor);		final RefactoringStatus status= new RefactoringStatus();		try {			monitor.beginTask(RefactoringCoreMessages.RenameTypeParameterRefactoring_searching, 2);			final CompilationUnitRewrite rewrite= new CompilationUnitRewrite(fTypeParameter.getDeclaringMember().getCompilationUnit());			final IMember member= fTypeParameter.getDeclaringMember();			final CompilationUnit root= rewrite.getRoot();			ASTNode declaration= null;			if (member instanceof IMethod) {				declaration= ASTNodeSearchUtil.getMethodDeclarationNode((IMethod) member, root);			} else if (member instanceof IType) {				declaration= ASTNodeSearchUtil.getAbstractTypeDeclarationNode((IType) member, root);			} else {				JavaPlugin.logErrorMessage("Unexpected sub-type of IMember: " + member.getClass().getName()); //$NON-NLS-1$				Assert.isTrue(false);			}			monitor.worked(1);			final RenameTypeParameterVisitor visitor= new RenameTypeParameterVisitor(rewrite, fTypeParameter.getNameRange(), status);			declaration.accept(visitor);			fChange= visitor.getResult();		} finally {			monitor.done();		}		return status;	}