@@ -13,6 +13,33 @@ class RelevantNode extends Item {
13
13
this .getParentNode * ( ) =
14
14
any ( Crate m | m .getName ( ) = "test" and m .getVersion ( ) = "0.0.1" ) .getModule ( )
15
15
}
16
+
17
+ string label ( ) { result = this .toString ( ) }
18
+ }
19
+
20
+ class HasGenericParams extends RelevantNode {
21
+ private GenericParamList params ;
22
+
23
+ HasGenericParams ( ) {
24
+ params = this .( Function ) .getGenericParamList ( ) or
25
+ params = this .( Enum ) .getGenericParamList ( ) or
26
+ params = this .( Struct ) .getGenericParamList ( ) or
27
+ params = this .( Union ) .getGenericParamList ( ) or
28
+ params = this .( Impl ) .getGenericParamList ( ) or
29
+ params = this .( Enum ) .getGenericParamList ( ) or
30
+ params = this .( Trait ) .getGenericParamList ( ) or
31
+ params = this .( TraitAlias ) .getGenericParamList ( )
32
+ }
33
+
34
+ override string label ( ) {
35
+ result =
36
+ super .toString ( ) + "<" +
37
+ strictconcat ( string part , int index |
38
+ part = params .getGenericParam ( index ) .toString ( )
39
+ |
40
+ part , ", " order by index
41
+ ) + ">"
42
+ }
16
43
}
17
44
18
45
predicate edges ( RelevantNode container , RelevantNode element ) {
@@ -25,7 +52,7 @@ query predicate nodes(RelevantNode node, string attr, string val) {
25
52
nodes ( node ) and
26
53
(
27
54
attr = "semmle.label" and
28
- val = node .toString ( )
55
+ val = node .label ( )
29
56
or
30
57
attr = "semmle.order" and
31
58
val =
0 commit comments