Skip to content

Commit 6e23ad7

Browse files
committed
Interface methods/fields are not package private
If a method/field is from an interface it is public by default but currently is detected as a (package private) member. This now check the parent of a member and if it is from an interface assume it as not being bundle private.
1 parent da73cec commit 6e23ad7

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/dependencies/CalculateUsesOperation.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.eclipse.core.runtime.SubMonitor;
3131
import org.eclipse.jdt.core.Flags;
3232
import org.eclipse.jdt.core.IField;
33+
import org.eclipse.jdt.core.IJavaElement;
3334
import org.eclipse.jdt.core.IJavaProject;
3435
import org.eclipse.jdt.core.IMember;
3536
import org.eclipse.jdt.core.IMethod;
@@ -167,7 +168,17 @@ protected void findReferences(IType type, Set<String> pkgs, boolean binary, IPro
167168

168169
private static boolean isBundlePrivateMember(IMember type) throws JavaModelException {
169170
int flags = type.getFlags();
170-
return Flags.isPrivate(flags) || Flags.isPackageDefault(type.getFlags());
171+
if (Flags.isPrivate(flags)) {
172+
return true;
173+
}
174+
if (Flags.isPackageDefault(type.getFlags())) {
175+
IJavaElement parent = type.getParent();
176+
if (parent instanceof IType t) {
177+
return !t.isInterface();
178+
}
179+
return true;
180+
}
181+
return false;
171182
}
172183

173184
protected final void addPackage(String typeSignature, Set<String> pkgs, IType type, boolean binary,

0 commit comments

Comments
 (0)