Skip to content

Commit 3023d62

Browse files
committed
Allow passing value from AST to a MemberValuePairBinding
1 parent 4c64695 commit 3023d62

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

org.eclipse.jdt.core.javac/src/org/eclipse/jdt/core/dom/JavacBindingResolver.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ public JavacAnnotationBinding getAnnotationBinding(Compound ann, IBinding recipi
147147
}
148148
//
149149
private Map<JavacMemberValuePairBinding, JavacMemberValuePairBinding> memberValuePairBindings = new HashMap<>();
150-
public JavacMemberValuePairBinding getMemberValuePairBinding(MethodSymbol key, Attribute value) {
150+
public JavacMemberValuePairBinding getMemberValuePairBinding(MethodSymbol key, Object value) {
151151
JavacMemberValuePairBinding newInstance = new JavacMemberValuePairBinding(key, value, JavacBindingResolver.this) { };
152152
memberValuePairBindings.putIfAbsent(newInstance, newInstance);
153153
return memberValuePairBindings.get(newInstance);
@@ -1839,7 +1839,7 @@ IMemberValuePairBinding resolveMemberValuePair(MemberValuePair memberValuePair)
18391839
resolve();
18401840
if (this.converter.domToJavac.get(memberValuePair) instanceof JCAssign assign &&
18411841
assign.lhs instanceof JCIdent ident && ident.sym instanceof MethodSymbol methodSymbol) {
1842-
return this.bindings.getMemberValuePairBinding(methodSymbol, null);
1842+
return this.bindings.getMemberValuePairBinding(methodSymbol, assign.getExpression() instanceof JCLiteral literal ? literal.getValue() : null);
18431843
}
18441844
return null;
18451845
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public abstract class JavacMemberValuePairBinding implements IMemberValuePairBin
2828
public final Object value; // might be an attribute or a direct value
2929
private final JavacBindingResolver resolver;
3030

31-
public JavacMemberValuePairBinding(MethodSymbol key, Attribute value, JavacBindingResolver resolver) {
31+
public JavacMemberValuePairBinding(MethodSymbol key, Object value, JavacBindingResolver resolver) {
3232
this.method = resolver.bindings.getMethodBinding(key.type.asMethodType(), key, null, true, null);
3333
this.value = value;
3434
this.resolver = resolver;
@@ -116,7 +116,7 @@ public Object getValue() {
116116

117117
@Override
118118
public boolean isDefault() {
119-
return !(this.value instanceof Attribute attr) || this.value == this.method.methodSymbol.defaultValue;
119+
return getValue() == this.method.methodSymbol.defaultValue;
120120
}
121121

122122
@Override

0 commit comments

Comments
 (0)