@@ -1698,20 +1698,40 @@ module API {
16981698 import Cached
16991699
17001700 private module Debug {
1701+ private module FullInput implements StageInputSig {
1702+ pragma [ inline]
1703+ predicate isAdditionalUseRoot ( Node node ) { none ( ) }
1704+
1705+ pragma [ inline]
1706+ predicate isAdditionalDefRoot ( Node node ) { none ( ) }
1707+
1708+ bindingset [ node]
1709+ predicate inScope ( DataFlow:: Node node ) { any ( ) }
1710+ }
1711+
1712+ private module Full = Stage< FullInput > ;
1713+
17011714 query predicate missingDefNode ( DataFlow:: Node node ) {
1702- Stage1 :: rhs ( _, _, node ) and
1715+ Full :: rhs ( _, _, node ) and
17031716 not exists ( MkDef ( node ) )
17041717 }
17051718
17061719 query predicate missingUseNode ( DataFlow:: Node node ) {
1707- Stage1 :: use ( _, _, node ) and
1720+ Full :: use ( _, _, node ) and
17081721 not exists ( MkUse ( node ) )
17091722 }
17101723
17111724 query predicate lostEdge ( Node pred , Label:: ApiLabel lbl , Node succ ) {
1712- Stage1 :: edge ( pred , lbl , succ ) and
1725+ Full :: edge ( pred , lbl , succ ) and
17131726 not Cached:: edge ( pred , lbl , succ )
17141727 }
1728+
1729+ query predicate counts ( int numEdges , int numOverlayEdges , float ratio ) {
1730+ numEdges = count ( Node pred , Label:: ApiLabel lbl , Node succ | Full:: edge ( pred , lbl , succ ) ) and
1731+ numOverlayEdges =
1732+ count ( Node pred , Label:: ApiLabel lbl , Node succ | Stage2:: edge ( pred , lbl , succ ) ) and
1733+ ratio = numOverlayEdges / numEdges .( float )
1734+ }
17151735 }
17161736
17171737 /**
0 commit comments