@@ -30,11 +30,17 @@ module Input implements InputSig<Location, DataFlowImplSpecific::CsharpDataFlow>
3030 )
3131 }
3232
33- class SourceBase = Void ;
33+ class SourceBase extends Void {
34+ Location getLocation ( ) { none ( ) }
35+ }
36+
37+ class SinkBase = SourceBase ;
3438
35- class SinkBase = Void ;
39+ class FlowSummaryCallBase = SourceBase ;
3640
37- class FlowSummaryCallBase = Void ;
41+ DataFlowCallable getSummarizedCallableAsDataFlowCallable ( SummarizedCallableBase c ) {
42+ result .asSummarizedCallable ( ) = c
43+ }
3844
3945 predicate neutralElement ( SummarizedCallableBase c , string kind , string provenance , boolean isExact ) {
4046 interpretNeutral ( c , kind , provenance , isExact )
@@ -122,7 +128,21 @@ module Input implements InputSig<Location, DataFlowImplSpecific::CsharpDataFlow>
122128
123129private import Make< Location , DataFlowImplSpecific:: CsharpDataFlow , Input > as Impl
124130
125- private module TypesInput implements Impl:: Private:: TypesInputSig {
131+ private module Input2 implements Impl:: Private:: InputSig2 {
132+ private import codeql.util.Void
133+
134+ class SourceSinkReportingElement extends Void {
135+ Location getLocation ( ) { none ( ) }
136+
137+ DataFlowCallable getEnclosingCallable ( ) { none ( ) }
138+
139+ SourceSinkReportingElement getASuccessor ( Impl:: Private:: SummaryComponent sc ) { none ( ) }
140+ }
141+ }
142+
143+ private import Impl:: Private:: Make2< Input2 > as Impl2
144+
145+ private module TypesInput implements Impl2:: TypesInputSig {
126146 DataFlowType getSyntheticGlobalType ( Impl:: Private:: SyntheticGlobal sg ) {
127147 exists ( sg ) and
128148 result .asGvnType ( ) = Gvn:: getGlobalValueNumber ( any ( ObjectType t ) )
@@ -195,27 +215,15 @@ private module TypesInput implements Impl::Private::TypesInputSig {
195215 )
196216 }
197217
198- DataFlowType getSourceType ( Input:: SourceBase source , Impl:: Private:: SummaryComponentStack s ) {
199- none ( )
200- }
201-
202- DataFlowType getSinkType ( Input:: SinkBase sink , Impl:: Private:: SummaryComponent sc ) { none ( ) }
218+ DataFlowType getSourceSinkType ( Input2:: SourceSinkReportingElement e ) { none ( ) }
203219}
204220
205- private module StepsInput implements Impl:: Private:: StepsInputSig {
206- Impl:: Private:: SummaryNode getSummaryNode ( Node n ) {
207- result = n .( FlowSummaryNode ) .getSummaryNode ( )
208- }
221+ private module StepsInput implements Impl2:: StepsInputSig {
222+ Impl2:: SummaryNode getSummaryNode ( Node n ) { result = n .( FlowSummaryNode ) .getSummaryNode ( ) }
209223
210224 DataFlowCall getACall ( Public:: SummarizedCallable sc ) {
211225 sc = viableCallable ( result ) .asSummarizedCallable ( )
212226 }
213-
214- DataFlowCallable getSourceNodeEnclosingCallable ( Input:: SourceBase source ) { none ( ) }
215-
216- Node getSourceNode ( Input:: SourceBase source , Impl:: Private:: SummaryComponentStack s ) { none ( ) }
217-
218- Node getSinkNode ( Input:: SinkBase sink , Impl:: Private:: SummaryComponent sc ) { none ( ) }
219227}
220228
221229module SourceSinkInterpretationInput implements
@@ -339,9 +347,10 @@ module SourceSinkInterpretationInput implements
339347
340348module Private {
341349 import Impl:: Private
342- import Impl:: Private:: Types< TypesInput >
350+ import Impl2
351+ import Types< TypesInput >
343352
344- module Steps = Impl :: Private :: Steps< StepsInput > ;
353+ module Steps = Impl2 :: Steps< StepsInput > ;
345354
346355 module External {
347356 import Impl:: Private:: External
0 commit comments