From a16f41b15331885e6e9f69566461d195773103e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20L=C3=A4ubrich?= Date: Thu, 10 Jul 2025 18:36:50 +0200 Subject: [PATCH] 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. --- .../search/dependencies/CalculateUsesOperation.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/dependencies/CalculateUsesOperation.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/dependencies/CalculateUsesOperation.java index 8e0a3458cf8..7a4a4135304 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/dependencies/CalculateUsesOperation.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/search/dependencies/CalculateUsesOperation.java @@ -30,6 +30,7 @@ import org.eclipse.core.runtime.SubMonitor; import org.eclipse.jdt.core.Flags; import org.eclipse.jdt.core.IField; +import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.IMember; import org.eclipse.jdt.core.IMethod; @@ -167,7 +168,17 @@ protected void findReferences(IType type, Set pkgs, boolean binary, IPro private static boolean isBundlePrivateMember(IMember type) throws JavaModelException { int flags = type.getFlags(); - return Flags.isPrivate(flags) || Flags.isPackageDefault(type.getFlags()); + if (Flags.isPrivate(flags)) { + return true; + } + if (Flags.isPackageDefault(type.getFlags())) { + IJavaElement parent = type.getParent(); + if (parent instanceof IType t) { + return !t.isInterface(); + } + return true; + } + return false; } protected final void addPackage(String typeSignature, Set pkgs, IType type, boolean binary,