Bug 98344 smart completion for anonymous inner type of abstract inner class missing methods
I'm using Eclipse 3.1 RC1. First I input the following class into Eclipse: public class Test { abstract class Foo { abstract void doSomething(); } void bar() { Foo f = new Foo(); } } The class does not compile because Foo is abstract. If I put the cursor between the parens of the Foo() constructor call and hit CTRL+SPACE, it brings up an "Override/Implement Methods" dialog box, but in that dialog box I only see the methods for java.lang.Object, not the expected Foo.doSomething() method. If Foo is a separate top-level class and not an inner class, the Foo.doSomething() method shows up in the dialog as expected. It also works if I add an open and close curly brace before the semicolon, and then go to the Source menu and choose Override/Implement Methods.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/AnonymousTypeCompletionProposal.java
/*******************************************************************************
 * Copyright (c) 2000, 2005 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.jdt.internal.ui.text.java;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.text.edits.MalformedTreeException;
import org.eclipse.text.edits.TextEdit;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.swt.graphics.Image;
import org.eclipse.jface.window.Window;
import org.eclipse.jface.text.Assert;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.TextUtilities;
import org.eclipse.jface.text.contentassist.ICompletionProposalExtension4;
import org.eclipse.jdt.core.ICompilationUnit;