Skip to content

Commit 41d577b

Browse files
committed
More matches
1 parent 0d66d6f commit 41d577b

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

org.eclipse.jdt.core.javac/src/org/eclipse/jdt/internal/core/search/matching/DOMConstructorLocator.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,11 @@ && matchParametersCount(enumConstantDecl, enumConstantDecl.arguments())) {
134134
int level = nodeSet.addMatch(node, this.locator.pattern.mustResolve ? POSSIBLE_MATCH : ACCURATE_MATCH);
135135
return toResponse(level, true);
136136
}
137+
if (!this.locator.pattern.hasConstructorParameters()
138+
&& node instanceof CreationReference ref
139+
&& matchesTypeReference(this.locator.pattern.declaringSimpleName, ref.getType())) {
140+
return toResponse(POSSIBLE_MATCH);
141+
}
137142
return toResponse(IMPOSSIBLE_MATCH);
138143
}
139144

org.eclipse.jdt.core.javac/src/org/eclipse/jdt/internal/core/search/matching/DOMMethodLocator.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1179,6 +1179,11 @@ private boolean preferParamaterizedNode() {
11791179

11801180
@Override
11811181
public LocatorResponse match(LambdaExpression node, NodeSetWrapper nodeSet, MatchLocator locator) {
1182-
return toResponse(this.locator.pattern.parameterCount == node.parameters().size() ? POSSIBLE_MATCH : IMPOSSIBLE_MATCH);
1182+
if (this.locator.pattern.parameterCount == -1
1183+
|| this.locator.pattern.parameterCount == node.parameters().size()) {
1184+
nodeSet.setMustResolve(true);
1185+
return toResponse(POSSIBLE_MATCH);
1186+
}
1187+
return toResponse(IMPOSSIBLE_MATCH);
11831188
}
11841189
}

org.eclipse.jdt.core.javac/src/org/eclipse/jdt/internal/core/search/matching/DOMSuperTypeReferenceLocator.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515
import org.eclipse.jdt.core.dom.AbstractTypeDeclaration;
1616
import org.eclipse.jdt.core.dom.ClassInstanceCreation;
1717
import org.eclipse.jdt.core.dom.IBinding;
18+
import org.eclipse.jdt.core.dom.IMethodBinding;
1819
import org.eclipse.jdt.core.dom.ITypeBinding;
20+
import org.eclipse.jdt.core.dom.LambdaExpression;
1921
import org.eclipse.jdt.core.dom.QualifiedName;
2022
import org.eclipse.jdt.core.dom.QualifiedType;
2123
import org.eclipse.jdt.core.dom.SimpleName;
@@ -81,6 +83,9 @@ public LocatorResponse match(Type node, NodeSetWrapper nodeSet, MatchLocator loc
8183
public LocatorResponse resolveLevel(org.eclipse.jdt.core.dom.ASTNode node, IBinding binding, MatchLocator locator) {
8284
if (binding == null)
8385
return toResponse(INACCURATE_MATCH);
86+
if (node instanceof LambdaExpression && binding instanceof IMethodBinding method) {
87+
binding = method.getDeclaringClass();
88+
}
8489
if (!(binding instanceof ITypeBinding type))
8590
return toResponse(IMPOSSIBLE_MATCH);
8691

0 commit comments

Comments
 (0)