Skip to content

Commit ad2c511

Browse files
mickaelistriaRob Stryker
authored andcommitted
Return binding for missing type too
+ do not add import for fully qualified types
1 parent 6f5ab88 commit ad2c511

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

org.eclipse.jdt.core.javac/src/org/eclipse/jdt/internal/codeassist/DOMCompletionEngine.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@
9898
import org.eclipse.jdt.core.dom.MethodInvocation;
9999
import org.eclipse.jdt.core.dom.MethodRef;
100100
import org.eclipse.jdt.core.dom.Modifier;
101-
import org.eclipse.jdt.core.dom.Modifier.ModifierKeyword;
102101
import org.eclipse.jdt.core.dom.ModuleDeclaration;
103102
import org.eclipse.jdt.core.dom.Name;
104103
import org.eclipse.jdt.core.dom.NormalAnnotation;
@@ -132,6 +131,7 @@
132131
import org.eclipse.jdt.core.dom.VariableDeclarationExpression;
133132
import org.eclipse.jdt.core.dom.VariableDeclarationFragment;
134133
import org.eclipse.jdt.core.dom.VariableDeclarationStatement;
134+
import org.eclipse.jdt.core.dom.Modifier.ModifierKeyword;
135135
import org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants;
136136
import org.eclipse.jdt.core.search.IJavaSearchConstants;
137137
import org.eclipse.jdt.core.search.IJavaSearchScope;
@@ -3106,7 +3106,7 @@ private CompletionProposal toProposal(IType type) {
31063106
if (packageDecl != null) {
31073107
packageName = packageDecl.getName().toString();
31083108
}
3109-
if (!packageName.equals(type.getPackageFragment().getElementName()) && !new String(res.getCompletion()).equals(type.getFullyQualifiedName())) {
3109+
if (!packageName.equals(type.getPackageFragment().getElementName()) && !new String(res.getCompletion()).equals(type.getFullyQualifiedName('.'))) {
31103110
// propose importing the type
31113111
res.setRequiredProposals(new CompletionProposal[] { toImportProposal(simpleName, signature, type.getPackageFragment().getElementName().toCharArray()) });
31123112
}

org.eclipse.jdt.core.javac/src/org/eclipse/jdt/internal/javac/dom/JavacVariableBinding.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@
2828
import org.eclipse.jdt.core.dom.ITypeBinding;
2929
import org.eclipse.jdt.core.dom.IVariableBinding;
3030
import org.eclipse.jdt.core.dom.JavacBindingResolver;
31-
import org.eclipse.jdt.core.dom.JavacBindingResolver.BindingKeyException;
3231
import org.eclipse.jdt.core.dom.LambdaExpression;
3332
import org.eclipse.jdt.core.dom.Modifier;
3433
import org.eclipse.jdt.core.dom.SingleVariableDeclaration;
3534
import org.eclipse.jdt.core.dom.VariableDeclaration;
3635
import org.eclipse.jdt.core.dom.VariableDeclarationExpression;
3736
import org.eclipse.jdt.core.dom.VariableDeclarationFragment;
3837
import org.eclipse.jdt.core.dom.VariableDeclarationStatement;
38+
import org.eclipse.jdt.core.dom.JavacBindingResolver.BindingKeyException;
3939
import org.eclipse.jdt.internal.core.BinaryMember;
4040
import org.eclipse.jdt.internal.core.DOMToModelPopulator;
4141
import org.eclipse.jdt.internal.core.JavaElement;
@@ -49,11 +49,11 @@
4949
import com.sun.tools.javac.code.Flags;
5050
import com.sun.tools.javac.code.Kinds;
5151
import com.sun.tools.javac.code.Symbol;
52+
import com.sun.tools.javac.code.Type;
5253
import com.sun.tools.javac.code.Symbol.ClassSymbol;
5354
import com.sun.tools.javac.code.Symbol.MethodSymbol;
5455
import com.sun.tools.javac.code.Symbol.TypeSymbol;
5556
import com.sun.tools.javac.code.Symbol.VarSymbol;
56-
import com.sun.tools.javac.code.Type;
5757

5858
public abstract class JavacVariableBinding implements IVariableBinding {
5959

@@ -270,6 +270,8 @@ public ITypeBinding getType() {
270270
} else if (node instanceof VariableDeclarationFragment fragment) {
271271
if (fragment.getParent() instanceof VariableDeclarationExpression expr) {
272272
return expr.getType().resolveBinding();
273+
} else if (fragment.getParent() instanceof VariableDeclarationStatement expr) {
274+
return expr.getType().resolveBinding();
273275
} else if (fragment.getParent() instanceof FieldDeclaration fieldDecl) {
274276
return fieldDecl.getType().resolveBinding();
275277
}

0 commit comments

Comments
 (0)