@@ -392,6 +392,17 @@ private module LogicInputCommon {
392
392
NullGuards:: nullCheckMethod ( call .getMethod ( ) , val .asBooleanValue ( ) , isNull )
393
393
)
394
394
}
395
+
396
+ predicate additionalImpliesStep (
397
+ GuardsImpl:: PreGuard g1 , GuardValue v1 , GuardsImpl:: PreGuard g2 , GuardValue v2
398
+ ) {
399
+ exists ( MethodCall check , int argIndex |
400
+ g1 = check and
401
+ v1 .getDualValue ( ) .isThrowsException ( ) and
402
+ conditionCheckArgument ( check , argIndex , v2 .asBooleanValue ( ) ) and
403
+ g2 = check .getArgument ( argIndex )
404
+ )
405
+ }
395
406
}
396
407
397
408
private module LogicInput_v1 implements GuardsImpl:: LogicInputSig {
@@ -422,16 +433,7 @@ private module LogicInput_v1 implements GuardsImpl::LogicInputSig {
422
433
423
434
predicate additionalNullCheck = LogicInputCommon:: additionalNullCheck / 4 ;
424
435
425
- predicate additionalImpliesStep (
426
- GuardsImpl:: PreGuard g1 , GuardValue v1 , GuardsImpl:: PreGuard g2 , GuardValue v2
427
- ) {
428
- exists ( MethodCall check , int argIndex |
429
- g1 = check and
430
- v1 .getDualValue ( ) .isThrowsException ( ) and
431
- conditionCheckArgument ( check , argIndex , v2 .asBooleanValue ( ) ) and
432
- g2 = check .getArgument ( argIndex )
433
- )
434
- }
436
+ predicate additionalImpliesStep = LogicInputCommon:: additionalImpliesStep / 4 ;
435
437
}
436
438
437
439
private module LogicInput_v2 implements GuardsImpl:: LogicInputSig {
@@ -462,11 +464,7 @@ private module LogicInput_v2 implements GuardsImpl::LogicInputSig {
462
464
463
465
predicate additionalNullCheck = LogicInputCommon:: additionalNullCheck / 4 ;
464
466
465
- predicate additionalImpliesStep (
466
- GuardsImpl:: PreGuard g1 , GuardValue v1 , GuardsImpl:: PreGuard g2 , GuardValue v2
467
- ) {
468
- LogicInput_v1:: additionalImpliesStep ( g1 , v1 , g2 , v2 )
469
- }
467
+ predicate additionalImpliesStep = LogicInputCommon:: additionalImpliesStep / 4 ;
470
468
}
471
469
472
470
private module LogicInput_v3 implements GuardsImpl:: LogicInputSig {
@@ -479,7 +477,7 @@ private module LogicInput_v3 implements GuardsImpl::LogicInputSig {
479
477
480
478
predicate additionalNullCheck = LogicInputCommon:: additionalNullCheck / 4 ;
481
479
482
- predicate additionalImpliesStep = LogicInput_v2 :: additionalImpliesStep / 4 ;
480
+ predicate additionalImpliesStep = LogicInputCommon :: additionalImpliesStep / 4 ;
483
481
}
484
482
485
483
class GuardValue = GuardsImpl:: GuardValue ;
0 commit comments