@@ -1678,20 +1678,40 @@ module API {
16781678 import Cached
16791679
16801680 private module Debug {
1681+ private module FullInput implements StageInputSig {
1682+ pragma [ inline]
1683+ predicate isAdditionalUseRoot ( Node node ) { none ( ) }
1684+
1685+ pragma [ inline]
1686+ predicate isAdditionalDefRoot ( Node node ) { none ( ) }
1687+
1688+ bindingset [ node]
1689+ predicate inScope ( DataFlow:: Node node ) { any ( ) }
1690+ }
1691+
1692+ private module Full = Stage< FullInput > ;
1693+
16811694 query predicate missingDefNode ( DataFlow:: Node node ) {
1682- Stage1 :: rhs ( _, _, node ) and
1695+ Full :: rhs ( _, _, node ) and
16831696 not exists ( MkDef ( node ) )
16841697 }
16851698
16861699 query predicate missingUseNode ( DataFlow:: Node node ) {
1687- Stage1 :: use ( _, _, node ) and
1700+ Full :: use ( _, _, node ) and
16881701 not exists ( MkUse ( node ) )
16891702 }
16901703
16911704 query predicate lostEdge ( Node pred , Label:: ApiLabel lbl , Node succ ) {
1692- Stage1 :: edge ( pred , lbl , succ ) and
1705+ Full :: edge ( pred , lbl , succ ) and
16931706 not Cached:: edge ( pred , lbl , succ )
16941707 }
1708+
1709+ query predicate counts ( int numEdges , int numOverlayEdges , float ratio ) {
1710+ numEdges = count ( Node pred , Label:: ApiLabel lbl , Node succ | Full:: edge ( pred , lbl , succ ) ) and
1711+ numOverlayEdges =
1712+ count ( Node pred , Label:: ApiLabel lbl , Node succ | Stage2:: edge ( pred , lbl , succ ) ) and
1713+ ratio = numOverlayEdges / numEdges .( float )
1714+ }
16951715 }
16961716
16971717 /**
0 commit comments