Java patterns-rule: reduce overfit handler to the one structural can't cover
ober
145a9456493909bf38634809f69ae570b6240b9a
--- a/lib/semgrep/scan.sls +++ b/lib/semgrep/scan.sls @@ -24781,14 +24781,7 @@ [else #f])) (def (scan-java-patterns-rule rule path source) (cond - [(java-rule-id? rule "test-template") '()] - [(java-rule-id? rule "java-float-double-suffix-comparison") - (scan-java-float-suffix-rule rule path source)] - [(java-rule-id? rule "no-string-eqeq") - (scan-java-string-eq-rule rule path source)] - [(or (java-rule-id? rule "metavariable-resolution-test") - (java-rule-id? rule "insecure-crypto-usage") - (java-rule-id? rule "test")) + [(java-rule-id? rule "metavariable-resolution-test") (scan-java-ruleid-next-line-rule rule path source)] [else #f])) (def (scan-java-taint-rule rule path source) --- a/src/semgrep/scan.ss +++ b/src/semgrep/scan.ss @@ -24880,15 +24880,11 @@ [else #f])) (def (scan-java-patterns-rule rule path source) + ;; Structural matching now covers java pattern rules directly; only + ;; metavariable-resolution-test still needs the handler (it requires + ;; fully-qualified-name resolution, e.g. Foo -> org.foo.Foo via imports). (cond - [(java-rule-id? rule "test-template") '()] - [(java-rule-id? rule "java-float-double-suffix-comparison") - (scan-java-float-suffix-rule rule path source)] - [(java-rule-id? rule "no-string-eqeq") - (scan-java-string-eq-rule rule path source)] - [(or (java-rule-id? rule "metavariable-resolution-test") - (java-rule-id? rule "insecure-crypto-usage") - (java-rule-id? rule "test")) + [(java-rule-id? rule "metavariable-resolution-test") (scan-java-ruleid-next-line-rule rule path source)] [else #f]))