Bug 27907 Autocreate of a local variable outside of current block
If you type something like the following void myMethod() { try { a=someCall(); } catch(Exception e) { } System.out.println(a); } the variable 'a' isn't declared and code assist proposes to create a declaration for the local variable 'a'. But it is created inside the current block and not in the context of the method: void myMethod() { try { int a=someCall(); } catch(Exception e) { } System.out.println(a); // we've still got a problem here... } Code assist should detect wether the variable is used only inside the current block and create the delcaration only block local if the variable isn't used outside of the block.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/NewVariableCompletionProposal.java
/*******************************************************************************
 * Copyright (c) 2000, 2003 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Common Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.jdt.internal.ui.text.correction;
import java.util.List;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.swt.graphics.Image;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.dom.*;
import org.eclipse.jdt.internal.corext.dom.ASTNodeConstants;
import org.eclipse.jdt.internal.corext.dom.ASTNodeFactory;
import org.eclipse.jdt.internal.corext.dom.ASTNodes;
import org.eclipse.jdt.internal.corext.dom.ASTRewrite;
public class NewVariableCompletionProposal extends LinkedCorrectionProposal {