@@ -1715,6 +1715,15 @@ module Make<LocationSig Location, InputSig<Location> Input> {
1715
1715
abstract private class SsaNodeImpl extends NodeImpl {
1716
1716
/** Gets the underlying SSA definition. */
1717
1717
abstract DefinitionExt getDefinitionExt ( ) ;
1718
+
1719
+ /** Gets the SSA definition this node corresponds to, if any. */
1720
+ Definition asDefinition ( ) { this = TSsaDefinitionNode ( result ) }
1721
+
1722
+ /** Gets the basic block to which this node belongs. */
1723
+ abstract BasicBlock getBasicBlock ( ) ;
1724
+
1725
+ /** Gets the underlying source variable that this node tracks flow for. */
1726
+ abstract SourceVariable getSourceVariable ( ) ;
1718
1727
}
1719
1728
1720
1729
final class SsaNode = SsaNodeImpl ;
@@ -1727,6 +1736,10 @@ module Make<LocationSig Location, InputSig<Location> Input> {
1727
1736
1728
1737
override DefinitionExt getDefinitionExt ( ) { result = def }
1729
1738
1739
+ override BasicBlock getBasicBlock ( ) { result = def .getBasicBlock ( ) }
1740
+
1741
+ override SourceVariable getSourceVariable ( ) { result = def .getSourceVariable ( ) }
1742
+
1730
1743
override Location getLocation ( ) { result = def .getLocation ( ) }
1731
1744
1732
1745
override string toString ( ) { result = def .toString ( ) }
@@ -1783,6 +1796,10 @@ module Make<LocationSig Location, InputSig<Location> Input> {
1783
1796
1784
1797
override SsaInputDefinitionExt getDefinitionExt ( ) { result = def_ }
1785
1798
1799
+ override BasicBlock getBasicBlock ( ) { result = input_ }
1800
+
1801
+ override SourceVariable getSourceVariable ( ) { result = def_ .getSourceVariable ( ) }
1802
+
1786
1803
override Location getLocation ( ) { result = input_ .getNode ( input_ .length ( ) - 1 ) .getLocation ( ) }
1787
1804
1788
1805
override string toString ( ) { result = "[input] " + def_ .toString ( ) }
0 commit comments