-
Notifications
You must be signed in to change notification settings - Fork 20
Open
Labels
needs-kindIndicates an issue or PR lacks a `kind/foo` label and requires one.Indicates an issue or PR lacks a `kind/foo` label and requires one.needs-priorityIndicates an issue or PR lacks a `priority/foo` label and requires one.Indicates an issue or PR lacks a `priority/foo` label and requires one.needs-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.Indicates an issue or PR lacks a `triage/foo` label and requires one.
Description
Issue
Searching about a java package name fails using as location 11 and query com.todo.app.controller when the java project to be analyzed contains a java file TaskController where there is a line with package com.todo.app.controller`
The problem is related to the code of the existing ReferenceSymbolProvider class as we got a class cast exception
// Code
public class ReferenceSymbolProvider implements SymbolProvider, WithQuery {
private String query;
@Override
public List<SymbolInformation> get(SearchMatch match) {
SymbolKind k = convertSymbolKind((IJavaElement) match.getElement());
List<SymbolInformation> symbols = new ArrayList<>();
// For Method Calls we will need to do the local variable trick
try {
ReferenceMatch m = (ReferenceMatch) match; // We got a Class cast exception
// Error
!MESSAGE unable to convert for variable: java.lang.ClassCastException: class org.eclipse.jdt.core.search.PackageDeclarationMatch cannot be cast to class org.eclipse.jdt.core.search.ReferenceMatch (org.eclipse.jdt.core.search.PackageDeclarationMatch and org.eclipse.jdt.core.search.ReferenceMatch are in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @536856f1)
The class cast exception can be fixed using this code
PackageDeclarationMatch m = (PackageDeclarationMatch)match;
but then the code should be reviewed in order to:
- Handle properly the class type:
PackageDeclarationMatch,ReferencenMatch?, etc - Manage the
IPackageFragmentpart of the classSymbolProviderand methoddefault Location getLocation(IJavaElement element, SearchMatch match)to return the location, range for a package discovered
Metadata
Metadata
Assignees
Labels
needs-kindIndicates an issue or PR lacks a `kind/foo` label and requires one.Indicates an issue or PR lacks a `kind/foo` label and requires one.needs-priorityIndicates an issue or PR lacks a `priority/foo` label and requires one.Indicates an issue or PR lacks a `priority/foo` label and requires one.needs-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.Indicates an issue or PR lacks a `triage/foo` label and requires one.
Type
Projects
Status
🆕 New