Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text')
-rw-r--r--org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ASTResolving.java4
-rw-r--r--org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/LocalCorrectionsSubProcessor.java7
-rw-r--r--org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ModifierCorrectionSubProcessor.java4
-rw-r--r--org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java38
-rw-r--r--org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/TypeMismatchSubProcessor.java23
-rw-r--r--org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/UnresolvedElementsSubProcessor.java15
-rw-r--r--org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/hover/JavadocHover.java5
7 files changed, 65 insertions, 31 deletions
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ASTResolving.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ASTResolving.java
index 23ddcd867c..f46c7d33bc 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ASTResolving.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ASTResolving.java
@@ -59,6 +59,7 @@ import org.eclipse.jdt.core.dom.MethodDeclaration;
import org.eclipse.jdt.core.dom.MethodInvocation;
import org.eclipse.jdt.core.dom.Modifier;
import org.eclipse.jdt.core.dom.Name;
+import org.eclipse.jdt.core.dom.PackageQualifiedType;
import org.eclipse.jdt.core.dom.ParameterizedType;
import org.eclipse.jdt.core.dom.PrefixExpression;
import org.eclipse.jdt.core.dom.PrimitiveType;
@@ -414,7 +415,8 @@ public class ASTResolving {
if (locationInParent == QualifiedName.QUALIFIER_PROPERTY) {
return null; // can't guess type for X.A
}
- if (locationInParent == SimpleType.NAME_PROPERTY) {
+ if (locationInParent == SimpleType.NAME_PROPERTY ||
+ locationInParent == PackageQualifiedType.NAME_PROPERTY) {
node= node.getParent();
}
ITypeBinding binding= Bindings.normalizeTypeBinding(getPossibleTypeBinding(node));
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/LocalCorrectionsSubProcessor.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/LocalCorrectionsSubProcessor.java
index f8974192f5..aff8612f08 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/LocalCorrectionsSubProcessor.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/LocalCorrectionsSubProcessor.java
@@ -80,6 +80,7 @@ import org.eclipse.jdt.core.dom.MethodDeclaration;
import org.eclipse.jdt.core.dom.MethodInvocation;
import org.eclipse.jdt.core.dom.Modifier;
import org.eclipse.jdt.core.dom.Name;
+import org.eclipse.jdt.core.dom.PackageQualifiedType;
import org.eclipse.jdt.core.dom.ParameterizedType;
import org.eclipse.jdt.core.dom.ParenthesizedExpression;
import org.eclipse.jdt.core.dom.PrefixExpression;
@@ -1437,10 +1438,14 @@ public class LocalCorrectionsSubProcessor {
Name node= null;
if (selectedNode instanceof SimpleType) {
node= ((SimpleType) selectedNode).getName();
+ } else if (selectedNode instanceof PackageQualifiedType) {
+ node= ((PackageQualifiedType) selectedNode).getName();
} else if (selectedNode instanceof ArrayType) {
Type elementType= ((ArrayType) selectedNode).getElementType();
if (elementType.isSimpleType()) {
node= ((SimpleType) elementType).getName();
+ } else if (elementType.isPackageQualifiedType()) {
+ node= ((PackageQualifiedType) elementType).getName();
} else {
return;
}
@@ -1464,7 +1469,7 @@ public class LocalCorrectionsSubProcessor {
simpleBinding= simpleBinding.getTypeDeclaration();
if (!simpleBinding.isRecovered()) {
- if (binding.isParameterizedType() && node.getParent() instanceof SimpleType && !(node.getParent().getParent() instanceof Type)) {
+ if (binding.isParameterizedType() && (node.getParent() instanceof SimpleType || node.getParent() instanceof PackageQualifiedType) && !(node.getParent().getParent() instanceof Type)) {
proposals.add(UnresolvedElementsSubProcessor.createTypeRefChangeFullProposal(cu, binding, node, IProposalRelevance.TYPE_ARGUMENTS_FROM_CONTEXT));
}
}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ModifierCorrectionSubProcessor.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ModifierCorrectionSubProcessor.java
index 28b8b8038c..bd7227bdfc 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ModifierCorrectionSubProcessor.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ModifierCorrectionSubProcessor.java
@@ -58,6 +58,7 @@ import org.eclipse.jdt.core.dom.Javadoc;
import org.eclipse.jdt.core.dom.MethodDeclaration;
import org.eclipse.jdt.core.dom.MethodInvocation;
import org.eclipse.jdt.core.dom.Modifier;
+import org.eclipse.jdt.core.dom.PackageQualifiedType;
import org.eclipse.jdt.core.dom.Modifier.ModifierKeyword;
import org.eclipse.jdt.core.dom.QualifiedName;
import org.eclipse.jdt.core.dom.ReturnStatement;
@@ -131,6 +132,9 @@ public class ModifierCorrectionSubProcessor {
case ASTNode.SIMPLE_TYPE:
binding= ((SimpleType) selectedNode).resolveBinding();
break;
+ case ASTNode.PACKAGE_QUALIFIED_TYPE:
+ binding= ((PackageQualifiedType) selectedNode).resolveBinding();
+ break;
case ASTNode.METHOD_INVOCATION:
binding= ((MethodInvocation) selectedNode).getName().resolveBinding();
break;
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java
index 3fa637f258..89ff1c9c31 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java
@@ -82,6 +82,7 @@ import org.eclipse.jdt.core.dom.MethodInvocation;
import org.eclipse.jdt.core.dom.Modifier;
import org.eclipse.jdt.core.dom.Name;
import org.eclipse.jdt.core.dom.NumberLiteral;
+import org.eclipse.jdt.core.dom.PackageQualifiedType;
import org.eclipse.jdt.core.dom.ParameterizedType;
import org.eclipse.jdt.core.dom.ParenthesizedExpression;
import org.eclipse.jdt.core.dom.PostfixExpression;
@@ -506,8 +507,9 @@ public class QuickAssistProcessor implements IQuickAssistProcessor {
if (node instanceof Name) {
Name name= ASTNodes.getTopMostName((Name) node);
- if (name.getLocationInParent() == SimpleType.NAME_PROPERTY) {
- SimpleType type= (SimpleType) name.getParent();
+ if (name.getLocationInParent() == SimpleType.NAME_PROPERTY ||
+ name.getLocationInParent() == PackageQualifiedType.NAME_PROPERTY) {
+ ASTNode type= name.getParent();
if (type.getLocationInParent() == ParameterizedType.TYPE_PROPERTY) {
createdType= (ParameterizedType) type.getParent();
if (createdType.getLocationInParent() != ClassInstanceCreation.TYPE_PROPERTY) {
@@ -1276,7 +1278,7 @@ public class QuickAssistProcessor implements IQuickAssistProcessor {
}
Type type= catchClause.getException().getType();
- if (!type.isSimpleType() && !type.isUnionType()) {
+ if (!type.isSimpleType() && !type.isUnionType() && !type.isPackageQualifiedType()) {
return false;
}
@@ -1292,12 +1294,14 @@ public class QuickAssistProcessor implements IQuickAssistProcessor {
AST ast= bodyDeclaration.getAST();
Image image= JavaPluginImages.get(JavaPluginImages.IMG_OBJS_EXCEPTION);
- SimpleType selectedMultiCatchType= null;
+ Type selectedMultiCatchType= null;
if (type.isUnionType() && node instanceof Name) {
Name topMostName= ASTNodes.getTopMostName((Name) node);
ASTNode parent= topMostName.getParent();
if (parent instanceof SimpleType) {
selectedMultiCatchType= (SimpleType) parent;
+ } else if (parent instanceof PackageQualifiedType) {
+ selectedMultiCatchType= (PackageQualifiedType) parent;
}
}
@@ -1317,12 +1321,12 @@ public class QuickAssistProcessor implements IQuickAssistProcessor {
UnionType unionType= (UnionType) type;
List<Type> types= unionType.types();
for (Type elementType : types) {
- if (!(elementType instanceof SimpleType))
+ if (!(elementType instanceof SimpleType || elementType instanceof PackageQualifiedType))
return false;
- addExceptionToThrows(ast, methodDeclaration, rewrite, (SimpleType) elementType);
+ addExceptionToThrows(ast, methodDeclaration, rewrite, elementType);
}
} else {
- addExceptionToThrows(ast, methodDeclaration, rewrite, (SimpleType) type);
+ addExceptionToThrows(ast, methodDeclaration, rewrite, type);
}
String label= CorrectionMessages.QuickAssistProcessor_catchclausetothrows_description;
ASTRewriteCorrectionProposal proposal= new ASTRewriteCorrectionProposal(label, context.getCompilationUnit(), rewrite, IProposalRelevance.REPLACE_CATCH_CLAUSE_WITH_THROWS, image);
@@ -1358,7 +1362,7 @@ public class QuickAssistProcessor implements IQuickAssistProcessor {
}
}
- private static void addExceptionToThrows(AST ast, MethodDeclaration methodDeclaration, ASTRewrite rewrite, SimpleType type2) {
+ private static void addExceptionToThrows(AST ast, MethodDeclaration methodDeclaration, ASTRewrite rewrite, Type type2) {
ITypeBinding binding= type2.resolveBinding();
if (binding == null || isNotYetThrown(binding, methodDeclaration.thrownExceptionTypes())) {
Type newType= (Type) ASTNode.copySubtree(ast, type2);
@@ -1425,12 +1429,12 @@ public class QuickAssistProcessor implements IQuickAssistProcessor {
return false;
}
- SimpleType selectedMultiCatchType= null;
+ Type selectedMultiCatchType= null;
if (type.isUnionType() && node instanceof Name) {
Name topMostName= ASTNodes.getTopMostName((Name) node);
ASTNode parent= topMostName.getParent();
- if (parent instanceof SimpleType) {
- selectedMultiCatchType= (SimpleType) parent;
+ if (parent instanceof SimpleType || parent instanceof PackageQualifiedType) {
+ selectedMultiCatchType= (Type) parent;
}
}
@@ -1498,12 +1502,12 @@ public class QuickAssistProcessor implements IQuickAssistProcessor {
}
Type type1= catchClause.getException().getType();
- SimpleType selectedMultiCatchType= null;
+ Type selectedMultiCatchType= null;
if (type1.isUnionType() && covering instanceof Name) {
Name topMostName= ASTNodes.getTopMostName((Name) covering);
ASTNode parent= topMostName.getParent();
- if (parent instanceof SimpleType) {
- selectedMultiCatchType= (SimpleType) parent;
+ if (parent instanceof SimpleType || parent instanceof PackageQualifiedType) {
+ selectedMultiCatchType= (Type) parent;
}
}
if (selectedMultiCatchType != null)
@@ -1589,12 +1593,12 @@ public class QuickAssistProcessor implements IQuickAssistProcessor {
}
Type type1= catchClause.getException().getType();
- SimpleType selectedMultiCatchType= null;
+ Type selectedMultiCatchType= null;
if (type1.isUnionType() && covering instanceof Name) {
Name topMostName= ASTNodes.getTopMostName((Name) covering);
ASTNode parent= topMostName.getParent();
- if (parent instanceof SimpleType) {
- selectedMultiCatchType= (SimpleType) parent;
+ if (parent instanceof SimpleType || parent instanceof PackageQualifiedType) {
+ selectedMultiCatchType= (Type) parent;
}
}
if (selectedMultiCatchType != null)
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/TypeMismatchSubProcessor.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/TypeMismatchSubProcessor.java
index f904ad5b0b..65cbef78b9 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/TypeMismatchSubProcessor.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/TypeMismatchSubProcessor.java
@@ -5,6 +5,10 @@
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
+ * This is an implementation of an early-draft specification developed under the Java
+ * Community Process (JCP) and is made available for testing and evaluation purposes
+ * only. The code is not compatible with any specification of the JCP.
+ *
* Contributors:
* IBM Corporation - initial API and implementation
* Benjamin Muskalla <bmuskalla@eclipsesource.com> - [quick fix] proposes wrong cast from Object to primitive int - https://bugs.eclipse.org/bugs/show_bug.cgi?id=100593
@@ -39,6 +43,7 @@ import org.eclipse.jdt.core.dom.InfixExpression;
import org.eclipse.jdt.core.dom.MemberValuePair;
import org.eclipse.jdt.core.dom.MethodDeclaration;
import org.eclipse.jdt.core.dom.Name;
+import org.eclipse.jdt.core.dom.PackageQualifiedType;
import org.eclipse.jdt.core.dom.SimpleName;
import org.eclipse.jdt.core.dom.SimpleType;
import org.eclipse.jdt.core.dom.SingleMemberAnnotation;
@@ -455,16 +460,22 @@ public class TypeMismatchSubProcessor {
SingleVariableDeclaration parameter= forStatement.getParameter();
ICompilationUnit cu= context.getCompilationUnit();
- if (parameter.getName().getLength() == 0
- && parameter.getType() instanceof SimpleType) {
- SimpleType type= (SimpleType) parameter.getType();
- if (type.getName() instanceof SimpleName) {
- SimpleName simpleName= (SimpleName) type.getName();
+ if (parameter.getName().getLength() == 0) {
+ SimpleName simpleName= null;
+ if (parameter.getType() instanceof SimpleType) {
+ SimpleType type= (SimpleType) parameter.getType();
+ if (type.getName() instanceof SimpleName) {
+ simpleName= (SimpleName) type.getName();
+ }
+ } else if (parameter.getType() instanceof PackageQualifiedType) {
+ simpleName= ((PackageQualifiedType) parameter.getType()).getName();
+ }
+ if (simpleName != null) {
String name= simpleName.getIdentifier();
int relevance= StubUtility.hasLocalVariableName(cu.getJavaProject(), name) ? 10 : 7;
String label= Messages.format(CorrectionMessages.TypeMismatchSubProcessor_create_loop_variable_description, BasicElementLabels.getJavaElementName(name));
Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_LOCAL);
-
+
proposals.add(new NewVariableCorrectionProposal(label, cu, NewVariableCorrectionProposal.LOCAL, simpleName, null, relevance, image));
return;
}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/UnresolvedElementsSubProcessor.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/UnresolvedElementsSubProcessor.java
index a76e5c1ef9..cf09db33f3 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/UnresolvedElementsSubProcessor.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/UnresolvedElementsSubProcessor.java
@@ -100,6 +100,7 @@ import org.eclipse.jdt.core.dom.MethodInvocation;
import org.eclipse.jdt.core.dom.Modifier;
import org.eclipse.jdt.core.dom.Name;
import org.eclipse.jdt.core.dom.NormalAnnotation;
+import org.eclipse.jdt.core.dom.PackageQualifiedType;
import org.eclipse.jdt.core.dom.ParenthesizedExpression;
import org.eclipse.jdt.core.dom.QualifiedName;
import org.eclipse.jdt.core.dom.SimpleName;
@@ -215,7 +216,7 @@ public class UnresolvedElementsSubProcessor {
node= null;
}
}
- } else if (parent instanceof SimpleType) {
+ } else if (parent instanceof SimpleType || parent instanceof PackageQualifiedType) {
suggestVariableProposals= false;
typeKind= SimilarElementsRequestor.REF_TYPES_AND_VAR;
} else if (parent instanceof QualifiedName) {
@@ -229,7 +230,7 @@ public class UnresolvedElementsSubProcessor {
while (outerParent instanceof QualifiedName) {
outerParent= outerParent.getParent();
}
- if (outerParent instanceof SimpleType) {
+ if (outerParent instanceof SimpleType || outerParent instanceof PackageQualifiedType) {
typeKind= SimilarElementsRequestor.REF_TYPES;
suggestVariableProposals= false;
}
@@ -253,7 +254,7 @@ public class UnresolvedElementsSubProcessor {
typeKind= SimilarElementsRequestor.REF_TYPES;
suggestVariableProposals= node.isSimpleName();
}
- if (selectedNode.getParent() instanceof SimpleType) {
+ if (selectedNode.getParent() instanceof SimpleType || selectedNode.getParent() instanceof PackageQualifiedType) {
typeKind= SimilarElementsRequestor.REF_TYPES;
suggestVariableProposals= false;
}
@@ -613,10 +614,14 @@ public class UnresolvedElementsSubProcessor {
Name node= null;
if (selectedNode instanceof SimpleType) {
node= ((SimpleType) selectedNode).getName();
+ } else if (selectedNode instanceof PackageQualifiedType) {
+ node= ((PackageQualifiedType) selectedNode).getName();
} else if (selectedNode instanceof ArrayType) {
Type elementType= ((ArrayType) selectedNode).getElementType();
if (elementType.isSimpleType()) {
node= ((SimpleType) elementType).getName();
+ } else if (elementType.isPackageQualifiedType()) {
+ node= ((PackageQualifiedType) elementType).getName();
} else {
return;
}
@@ -645,7 +650,7 @@ public class UnresolvedElementsSubProcessor {
}
private static void addEnhancedForWithoutTypeProposals(ICompilationUnit cu, ASTNode selectedNode, Collection<ICommandAccess> proposals) {
- if (selectedNode instanceof SimpleName && selectedNode.getLocationInParent() == SimpleType.NAME_PROPERTY) {
+ if (selectedNode instanceof SimpleName && (selectedNode.getLocationInParent() == SimpleType.NAME_PROPERTY || selectedNode.getLocationInParent() == PackageQualifiedType.NAME_PROPERTY)) {
ASTNode type= selectedNode.getParent();
if (type.getLocationInParent() == SingleVariableDeclaration.TYPE_PROPERTY) {
SingleVariableDeclaration svd= (SingleVariableDeclaration) type.getParent();
@@ -844,7 +849,7 @@ public class UnresolvedElementsSubProcessor {
if (proposal instanceof AddImportCorrectionProposal)
proposal.setRelevance(relevance + elements.length + 2);
- if (binding.isParameterizedType() && node.getParent() instanceof SimpleType && !(node.getParent().getParent() instanceof Type)) {
+ if (binding.isParameterizedType() && (node.getParent() instanceof SimpleType || node.getParent() instanceof PackageQualifiedType) && !(node.getParent().getParent() instanceof Type)) {
proposals.add(createTypeRefChangeFullProposal(cu, binding, node, relevance + 5));
}
}
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/hover/JavadocHover.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/hover/JavadocHover.java
index b0e49f9c82..8c6c54b778 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/hover/JavadocHover.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/java/hover/JavadocHover.java
@@ -84,6 +84,7 @@ import org.eclipse.jdt.core.dom.IMethodBinding;
import org.eclipse.jdt.core.dom.ITypeBinding;
import org.eclipse.jdt.core.dom.IVariableBinding;
import org.eclipse.jdt.core.dom.NodeFinder;
+import org.eclipse.jdt.core.dom.PackageQualifiedType;
import org.eclipse.jdt.core.dom.ParameterizedType;
import org.eclipse.jdt.core.dom.QualifiedName;
import org.eclipse.jdt.core.dom.QualifiedType;
@@ -1042,7 +1043,9 @@ public class JavadocHover extends AbstractJavaEditorTextHover {
// workaround for https://bugs.eclipse.org/62605 (constructor name resolves to type, not method)
SimpleName simpleName= (SimpleName) node;
StructuralPropertyDescriptor loc= simpleName.getLocationInParent();
- while (loc == QualifiedType.NAME_PROPERTY || loc == QualifiedName.NAME_PROPERTY|| loc == SimpleType.NAME_PROPERTY || loc == ParameterizedType.TYPE_PROPERTY) {
+ while (loc == QualifiedType.NAME_PROPERTY || loc == QualifiedName.NAME_PROPERTY
+ || loc == SimpleType.NAME_PROPERTY || loc == PackageQualifiedType.NAME_PROPERTY
+ || loc == ParameterizedType.TYPE_PROPERTY) {
node= node.getParent();
loc= node.getLocationInParent();
}

Back to the top