@@ -11,7 +11,15 @@ private import DataFlowImplCommon as DataFlowImplCommon
1111 * from `AdditionalCallTarget` into account.
1212 */
1313cached
14- DataFlowCallable defaultViableCallable ( DataFlowCall call ) {
14+ DataFlowPrivate:: DataFlowCallable defaultViableCallable ( DataFlowPrivate:: DataFlowCall call ) {
15+ result = defaultViableCallableWithoutLambda ( call )
16+ or
17+ result = DataFlowImplCommon:: viableCallableLambda ( call , _)
18+ }
19+
20+ private DataFlowPrivate:: DataFlowCallable defaultViableCallableWithoutLambda (
21+ DataFlowPrivate:: DataFlowCall call
22+ ) {
1523 DataFlowImplCommon:: forceCachingInSameStage ( ) and
1624 result = call .getStaticCallTarget ( )
1725 or
@@ -26,17 +34,13 @@ DataFlowCallable defaultViableCallable(DataFlowCall call) {
2634 functionSignatureWithBody ( qualifiedName , nparams , result .getUnderlyingCallable ( ) ) and
2735 strictcount ( Function other | functionSignatureWithBody ( qualifiedName , nparams , other ) ) = 1
2836 )
29- or
30- // Virtual dispatch
31- result .asSourceCallable ( ) = call .( VirtualDispatch:: DataSensitiveCall ) .resolve ( )
3237}
3338
3439/**
3540 * Gets a function that might be called by `call`.
3641 */
37- cached
38- DataFlowCallable viableCallable ( DataFlowCall call ) {
39- result = defaultViableCallable ( call )
42+ private DataFlowPrivate:: DataFlowCallable nonVirtualDispatch ( DataFlowPrivate:: DataFlowCall call ) {
43+ result = defaultViableCallableWithoutLambda ( call )
4044 or
4145 // Additional call targets
4246 result .getUnderlyingCallable ( ) =
0 commit comments