@@ -600,36 +600,40 @@ module API {
600
600
/** Gets the shortest distance from the root to `nd` in the API graph. */
601
601
cached
602
602
int distanceFromRoot ( TApiNode nd ) = shortestDistances( MkRoot / 0 , edge / 2 ) ( _, nd , result )
603
+
604
+ /** All the possible labels in the API graph. */
605
+ cached
606
+ newtype TLabel =
607
+ MkLabelMember ( string member ) { member = any ( ConstantReadAccess a ) .getName ( ) } or
608
+ MkLabelUnknownMember ( ) or
609
+ MkLabelMethod ( string m ) { m = any ( DataFlow:: CallNode c ) .getMethodName ( ) } or
610
+ MkLabelReturn ( ) or
611
+ MkLabelSubclass ( ) or
612
+ MkLabelKeywordParameter ( string name ) {
613
+ any ( DataFlowDispatch:: ArgumentPosition arg ) .isKeyword ( name )
614
+ or
615
+ any ( DataFlowDispatch:: ParameterPosition arg ) .isKeyword ( name )
616
+ } or
617
+ MkLabelParameter ( int n ) {
618
+ any ( DataFlowDispatch:: ArgumentPosition c ) .isPositional ( n )
619
+ or
620
+ any ( DataFlowDispatch:: ParameterPosition c ) .isPositional ( n )
621
+ } or
622
+ MkLabelBlockParameter ( )
603
623
}
604
624
605
625
/** Provides classes modeling the various edges (labels) in the API graph. */
606
626
module Label {
607
627
/** A label in the API-graph */
608
- class ApiLabel extends TLabel {
628
+ class ApiLabel extends Impl :: TLabel {
609
629
/** Gets a string representation of this label. */
610
630
string toString ( ) { result = "???" }
611
631
}
612
632
613
633
private import LabelImpl
614
634
615
635
private module LabelImpl {
616
- newtype TLabel =
617
- MkLabelMember ( string member ) { member = any ( ConstantReadAccess a ) .getName ( ) } or
618
- MkLabelUnknownMember ( ) or
619
- MkLabelMethod ( string m ) { m = any ( DataFlow:: CallNode c ) .getMethodName ( ) } or
620
- MkLabelReturn ( ) or
621
- MkLabelSubclass ( ) or
622
- MkLabelKeywordParameter ( string name ) {
623
- any ( DataFlowDispatch:: ArgumentPosition arg ) .isKeyword ( name )
624
- or
625
- any ( DataFlowDispatch:: ParameterPosition arg ) .isKeyword ( name )
626
- } or
627
- MkLabelParameter ( int n ) {
628
- any ( DataFlowDispatch:: ArgumentPosition c ) .isPositional ( n )
629
- or
630
- any ( DataFlowDispatch:: ParameterPosition c ) .isPositional ( n )
631
- } or
632
- MkLabelBlockParameter ( )
636
+ private import Impl
633
637
634
638
/** A label for a member, for example a constant. */
635
639
class LabelMember extends ApiLabel {
0 commit comments