jdt_find_unused_code erkennt package-private Felder nicht #72

Open
opened 2026-03-09 05:48:24 +00:00 by hauschel.fred · 1 comment
Collaborator

Problem

jdt_find_unused_code erkennt unbenutzte package-private (default visibility) Felder nicht. Private unused members werden korrekt erkannt.

Reproduktion

  1. Fixture-Projekt importieren
  2. jdt_find_unused_code(projectName="fixture-core") ausführen
  3. unusedPrivateMethod wird gefunden (PASS)
  4. unusedCounter (package-private Feld) wird NICHT gefunden

Erwartetes Verhalten

Unbenutzte package-private Felder sollten ebenfalls gemeldet werden, da sie in der Praxis genauso tot sind wie private Felder (wenn keine Referenzen existieren).

Kontext

Gefunden im Test-Report v0.2.18 (Test E1, PARTIAL).

## Problem `jdt_find_unused_code` erkennt unbenutzte package-private (default visibility) Felder nicht. Private unused members werden korrekt erkannt. ## Reproduktion 1. Fixture-Projekt importieren 2. `jdt_find_unused_code(projectName="fixture-core")` ausführen 3. → `unusedPrivateMethod` wird gefunden (PASS) 4. → `unusedCounter` (package-private Feld) wird NICHT gefunden ## Erwartetes Verhalten Unbenutzte package-private Felder sollten ebenfalls gemeldet werden, da sie in der Praxis genauso tot sind wie private Felder (wenn keine Referenzen existieren). ## Kontext Gefunden im Test-Report v0.2.18 (Test E1, PARTIAL).
Author
Collaborator

Triage 2026-09-07: Enhancement, kein Bug

CodeQualityTools.findUnusedCode wertet ausschließlich die Compiler-Probleme IProblem.UnusedPrivateField und IProblem.UnusedPrivateMethod aus. Der JDT-Compiler kann per Definition nur private Member als unbenutzt erkennen, weil package-private Member aus anderen Compilation Units referenziert werden dürfen.

Package-private-Erkennung bräuchte eine eigene Implementierung über SearchEngine.searchDeclarationsOfReferencedFields/Referenzsuche pro Feld, mit den bekannten Index-Readiness-Einschränkungen im Headless-Modus. Sinnvoll, aber neue Funktionalität.

## Triage 2026-09-07: Enhancement, kein Bug `CodeQualityTools.findUnusedCode` wertet ausschließlich die Compiler-Probleme `IProblem.UnusedPrivateField` und `IProblem.UnusedPrivateMethod` aus. Der JDT-Compiler kann per Definition nur private Member als unbenutzt erkennen, weil package-private Member aus anderen Compilation Units referenziert werden dürfen. Package-private-Erkennung bräuchte eine eigene Implementierung über `SearchEngine.searchDeclarationsOfReferencedFields`/Referenzsuche pro Feld, mit den bekannten Index-Readiness-Einschränkungen im Headless-Modus. Sinnvoll, aber neue Funktionalität.
Commenting is not possible because the repository is archived.
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ai-tools/jdt-mcp-server#72
No description provided.