Skip to content

Commit

Permalink
Fix "Find references" bug for interfaces and types
Browse files Browse the repository at this point in the history
Fixes #678

Previously, doing "Find references" on a symbol with kind `INTERFACE` or
`TYPE` returned results for all references to symbols that *implement*
that symbol. This bug was particularly noticeable for Kotlin sources because
scip-kotlin emits the `TYPE` kind for classes. Now, we no longer emit
reference relationships so the implementations only appear in "Find
implementation" and not "Find references".
  • Loading branch information
olafurpg committed Feb 2, 2024
1 parent c9fd4ac commit 48e351f
Show file tree
Hide file tree
Showing 9 changed files with 9 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -441,6 +441,8 @@ && supportsReferenceRelationship(symbolInformation)

private static boolean supportsReferenceRelationship(SymbolInformation info) {
switch (info.getKind()) {
case INTERFACE:
case TYPE:
case CLASS:
case OBJECT:
case PACKAGE_OBJECT:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
interface BaseEpoxyTouchCallback<T extends EpoxyModel> {
// ^^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . com/airbnb/epoxy/BaseEpoxyTouchCallback#
// documentation ```java\ninterface BaseEpoxyTouchCallback<T extends EpoxyModel>\n```
// relationship is_reference is_implementation semanticdb maven . . com/airbnb/epoxy/EpoxyDragCallback#
// relationship is_reference is_implementation semanticdb maven . . com/airbnb/epoxy/EpoxySwipeCallback#
// ^ definition semanticdb maven . . com/airbnb/epoxy/BaseEpoxyTouchCallback#[T]
// documentation ```java\nT extends EpoxyModel\n```
// ^^^^^^^^^^ reference semanticdb maven . . com/airbnb/epoxy/EpoxyModel#
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,7 @@ public EpoxyController(Handler modelBuildingHandler, Handler diffingHandler) {
// ^^^^^^ reference semanticdb maven maven/androidx.annotation/annotation 1.1.0 androidx/annotation/IntDef#
// ^^^^^^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . com/airbnb/epoxy/EpoxyController#RequestedModelBuildType#
// documentation ```java\n@Retention(RetentionPolicy.SOURCE)\n@IntDef({RequestedModelBuildType.NONE, RequestedModelBuildType.NEXT_FRAME, RequestedModelBuildType.DELAYED})\nprivate @interface RequestedModelBuildType\n```
// relationship is_reference is_implementation semanticdb maven jdk 11 java/lang/annotation/Annotation#
// relationship is_implementation semanticdb maven jdk 11 java/lang/annotation/Annotation#
// ^^^^^^^^^^^^^^^^^^^^^^^ reference semanticdb maven . . com/airbnb/epoxy/EpoxyController#RequestedModelBuildType#
// ^^^^ reference semanticdb maven . . com/airbnb/epoxy/EpoxyController#RequestedModelBuildType#NONE.
RequestedModelBuildType.NEXT_FRAME,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public interface EpoxyDragCallback<T extends EpoxyModel> extends BaseEpoxyTouchC
// ^^^^^^^^^^^^^^^^^ definition semanticdb maven . . com/airbnb/epoxy/EpoxyDragCallback#
// documentation ```java\npublic interface EpoxyDragCallback<T extends EpoxyModel>\n```
// documentation For use with {@link EpoxyModelTouchCallback}\n
// relationship is_reference is_implementation semanticdb maven . . com/airbnb/epoxy/BaseEpoxyTouchCallback#
// relationship is_implementation semanticdb maven . . com/airbnb/epoxy/BaseEpoxyTouchCallback#
// ^ definition semanticdb maven . . com/airbnb/epoxy/EpoxyDragCallback#[T]
// documentation ```java\nT extends EpoxyModel\n```
// ^^^^^^^^^^ reference semanticdb maven . . com/airbnb/epoxy/EpoxyModel#
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public interface EpoxySwipeCallback<T extends EpoxyModel> extends BaseEpoxyTouch
// ^^^^^^^^^^^^^^^^^^ definition semanticdb maven . . com/airbnb/epoxy/EpoxySwipeCallback#
// documentation ```java\npublic interface EpoxySwipeCallback<T extends EpoxyModel>\n```
// documentation For use with {@link EpoxyModelTouchCallback}\n
// relationship is_reference is_implementation semanticdb maven . . com/airbnb/epoxy/BaseEpoxyTouchCallback#
// relationship is_implementation semanticdb maven . . com/airbnb/epoxy/BaseEpoxyTouchCallback#
// ^ definition semanticdb maven . . com/airbnb/epoxy/EpoxySwipeCallback#[T]
// documentation ```java\nT extends EpoxyModel\n```
// ^^^^^^^^^^ reference semanticdb maven . . com/airbnb/epoxy/EpoxyModel#
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class UpdateOp {
@interface Type {
// ^^^^ definition semanticdb maven . . com/airbnb/epoxy/UpdateOp#Type#
// documentation ```java\n@IntDef({ADD, REMOVE, UPDATE, MOVE})\n@Retention(RetentionPolicy.SOURCE)\n@interface Type\n```
// relationship is_reference is_implementation semanticdb maven jdk 11 java/lang/annotation/Annotation#
// relationship is_implementation semanticdb maven jdk 11 java/lang/annotation/Annotation#
}

static final int ADD = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public final class VisibilityState {
public @interface Visibility {
// ^^^^^^^^^^ definition semanticdb maven . . com/airbnb/epoxy/VisibilityState#Visibility#
// documentation ```java\n@Retention(RetentionPolicy.SOURCE)\n@IntDef({VISIBLE, INVISIBLE, FOCUSED_VISIBLE, UNFOCUSED_VISIBLE, FULL_IMPRESSION_VISIBLE, PARTIAL_IMPRESSION_VISIBLE, PARTIAL_IMPRESSION_INVISIBLE})\npublic @interface Visibility\n```
// relationship is_reference is_implementation semanticdb maven jdk 11 java/lang/annotation/Annotation#
// relationship is_implementation semanticdb maven jdk 11 java/lang/annotation/Annotation#
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
public @interface Annotations {
// ^^^^^^^^^^^ definition semanticdb maven . . minimized/Annotations#
// documentation ```java\n@Documented\n@Retention(RetentionPolicy.RUNTIME)\n@Target({CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})\npublic @interface Annotations\n```
// relationship is_reference is_implementation semanticdb maven jdk 11 java/lang/annotation/Annotation#
// relationship is_implementation semanticdb maven jdk 11 java/lang/annotation/Annotation#

String value() default "";
//^^^^^^ reference semanticdb maven jdk 11 java/lang/String#
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ public interface InnerInterface<A, B> {
public @interface InnerAnnotation {
// ^^^^^^^^^^^^^^^ definition semanticdb maven . . minimized/InnerClasses#InnerAnnotation#
// documentation ```java\npublic @interface InnerAnnotation\n```
// relationship is_reference is_implementation semanticdb maven jdk 11 java/lang/annotation/Annotation#
// relationship is_implementation semanticdb maven jdk 11 java/lang/annotation/Annotation#
int value();
// ^^^^^ definition semanticdb maven . . minimized/InnerClasses#InnerAnnotation#value().
// documentation ```java\npublic abstract int value()\n```
Expand Down

0 comments on commit 48e351f

Please sign in to comment.