@@ -13,6 +13,33 @@ class RelevantNode extends Item {
1313 this .getParentNode * ( ) =
1414 any ( Crate m | m .getName ( ) = "test" and m .getVersion ( ) = "0.0.1" ) .getModule ( )
1515 }
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+ }
1643}
1744
1845predicate edges ( RelevantNode container , RelevantNode element ) {
@@ -25,7 +52,7 @@ query predicate nodes(RelevantNode node, string attr, string val) {
2552 nodes ( node ) and
2653 (
2754 attr = "semmle.label" and
28- val = node .toString ( )
55+ val = node .label ( )
2956 or
3057 attr = "semmle.order" and
3158 val =
0 commit comments