Skip to content

Commit 17a7d1d

Browse files
authored
Merge pull request #125 from sourcegraph/nsc/type-param-defs
emit definition occurences for type parameters
2 parents 64deb6a + ee98cfe commit 17a7d1d

26 files changed

+56
-1
lines changed

semanticdb-javac/src/main/java/com/sourcegraph/semanticdb_javac/SemanticdbVisitor.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.sun.tools.javac.tree.EndPosTable;
88
import com.sun.tools.javac.tree.JCTree;
99
import com.sun.tools.javac.util.JCDiagnostic;
10+
import com.sun.tools.javac.util.List;
1011
import com.sun.tools.javac.util.Position;
1112
import com.sourcegraph.semanticdb_javac.Semanticdb.SymbolOccurrence.Role;
1213

@@ -53,7 +54,6 @@ public SemanticdbVisitor(
5354
}
5455

5556
public Semanticdb.TextDocument buildTextDocument(CompilationUnitTree tree) {
56-
5757
this.scan(tree, null); // Trigger recursive AST traversal to collect SemanticDB information.
5858

5959
return Semanticdb.TextDocument.newBuilder()
@@ -100,6 +100,17 @@ public Void visitClass(ClassTree node, Void unused) {
100100
JCTree.JCClassDecl cls = (JCTree.JCClassDecl) node;
101101
emitSymbolOccurrence(
102102
cls.sym, cls, Role.DEFINITION, CompilerRange.FROM_POINT_WITH_TEXT_SEARCH);
103+
104+
List<JCTree.JCTypeParameter> typeParameters = cls.getTypeParameters();
105+
int i = 0;
106+
for (Symbol.TypeVariableSymbol typeSym : cls.sym.getTypeParameters()) {
107+
emitSymbolOccurrence(
108+
typeSym,
109+
typeParameters.get(i),
110+
Role.DEFINITION,
111+
CompilerRange.FROM_POINT_TO_SYMBOL_NAME);
112+
i++;
113+
}
103114
}
104115
return super.visitClass(node, unused);
105116
}

tests/snapshots/src/main/generated/com/airbnb/epoxy/BaseEpoxyTouchCallback.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
interface BaseEpoxyTouchCallback<T extends EpoxyModel> {
99
// ^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/BaseEpoxyTouchCallback#
10+
// ^ definition com/airbnb/epoxy/BaseEpoxyTouchCallback#[T]
1011
// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#
1112

1213
/**

tests/snapshots/src/main/generated/com/airbnb/epoxy/ControllerHelper.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
public abstract class ControllerHelper<T extends EpoxyController> {
1414
// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ControllerHelper#
1515
// ^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ControllerHelper#`<init>`().
16+
// ^ definition com/airbnb/epoxy/ControllerHelper#[T]
1617
// ^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyController#
1718
public abstract void resetAutoModels();
1819
// ^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/ControllerHelper#resetAutoModels().

tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyDragCallback.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
*/
1111
public interface EpoxyDragCallback<T extends EpoxyModel> extends BaseEpoxyTouchCallback<T> {
1212
// ^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyDragCallback#
13+
// ^ definition com/airbnb/epoxy/EpoxyDragCallback#[T]
1314
// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#
1415
// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyTouchCallback#
1516
// ^ reference com/airbnb/epoxy/EpoxyDragCallback#[T]

tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModel.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
*/
7373
public abstract class EpoxyModel<T> {
7474
// ^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModel#
75+
// ^ definition com/airbnb/epoxy/EpoxyModel#[T]
7576

7677
/**
7778
* Counts how many of these objects are created, so that each new object can have a unique id .

tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModelTouchCallback.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
*/
4141
public abstract class EpoxyModelTouchCallback<T extends EpoxyModel>
4242
// ^^^^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#
43+
// ^ definition com/airbnb/epoxy/EpoxyModelTouchCallback#[T]
4344
// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#
4445
extends EpoxyTouchHelperCallback implements EpoxyDragCallback<T>, EpoxySwipeCallback<T> {
4546
// ^^^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyTouchHelperCallback#

tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModelWithHolder.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
*/
3737
public abstract class EpoxyModelWithHolder<T extends EpoxyHolder> extends EpoxyModel<T> {
3838
// ^^^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithHolder#
39+
// ^ definition com/airbnb/epoxy/EpoxyModelWithHolder#[T]
3940
// ^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyHolder#
4041
// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#
4142
// ^ reference com/airbnb/epoxy/EpoxyModelWithHolder#[T]

tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyModelWithView.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
public abstract class EpoxyModelWithView<T extends View> extends EpoxyModel<T> {
3838
// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithView#
3939
// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyModelWithView#`<init>`().
40+
// ^ definition com/airbnb/epoxy/EpoxyModelWithView#[T]
4041
// ^^^^ reference _root_/
4142
// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#
4243
// ^ reference com/airbnb/epoxy/EpoxyModelWithView#[T]

tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxySwipeCallback.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
*/
2121
public interface EpoxySwipeCallback<T extends EpoxyModel> extends BaseEpoxyTouchCallback<T> {
2222
// ^^^^^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxySwipeCallback#
23+
// ^ definition com/airbnb/epoxy/EpoxySwipeCallback#[T]
2324
// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#
2425
// ^^^^^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/BaseEpoxyTouchCallback#
2526
// ^ reference com/airbnb/epoxy/EpoxySwipeCallback#[T]

tests/snapshots/src/main/generated/com/airbnb/epoxy/EpoxyTouchHelper.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,7 @@ public DragBuilder4<EpoxyModel> forAllModels() {
323323

324324
public static class DragBuilder4<U extends EpoxyModel> {
325325
// ^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#
326+
// ^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragBuilder4#[U]
326327
// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#
327328

328329
private final EpoxyController controller;
@@ -544,6 +545,7 @@ public void clearView(U model, View itemView) {
544545
public abstract static class DragCallbacks<T extends EpoxyModel>
545546
// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#
546547
// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#`<init>`().
548+
// ^ definition com/airbnb/epoxy/EpoxyTouchHelper#DragCallbacks#[T]
547549
// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#
548550
implements EpoxyDragCallback<T> {
549551
// ^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyDragCallback#
@@ -810,6 +812,7 @@ public SwipeBuilder3<EpoxyModel> forAllModels() {
810812

811813
public static class SwipeBuilder3<U extends EpoxyModel> {
812814
// ^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#
815+
// ^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeBuilder3#[U]
813816
// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#
814817

815818
private final RecyclerView recyclerView;
@@ -1040,6 +1043,7 @@ public void clearView(U model, View itemView) {
10401043
public abstract static class SwipeCallbacks<T extends EpoxyModel>
10411044
// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#
10421045
// ^^^^^^^^^^^^^^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#`<init>`().
1046+
// ^ definition com/airbnb/epoxy/EpoxyTouchHelper#SwipeCallbacks#[T]
10431047
// ^^^^^^^^^^ reference com/airbnb/epoxy/EpoxyModel#
10441048
implements EpoxySwipeCallback<T> {
10451049
// ^^^^^^^^^^^^^^^^^^ reference com/airbnb/epoxy/EpoxySwipeCallback#

0 commit comments

Comments
 (0)