Merge: PHP/Kotlin patterns-rule overfit paydown

ober

19a7a6f204d1e50bae51a327d92e165e003bd4ba

diff --git a/lib/semgrep/scan.sls b/lib/semgrep/scan.sls
index 4576911..a814ece 100644
--- a/lib/semgrep/scan.sls
+++ b/lib/semgrep/scan.sls
@@ -24205,9 +24205,7 @@
        (or (scan-php-metavar-call-rule rule path source)
            (scan-php-metavar-call-case-rule rule path source)
            (scan-php-fake-toks-rule rule path source)
-           (scan-php-non-primitive-type-rule rule path source)
-           (scan-php-string-eq-type-rule rule path source)
-           (scan-php-new-class-pattern-rule rule path source)))
+           (scan-php-non-primitive-type-rule rule path source)))
   (def (php-echo-or-call-sink-range source first line-end)
        (let ([trimmed (substring source first line-end)])
          (if (sg-string-prefix? "echo " trimmed)
@@ -25585,8 +25583,7 @@
                               (if finding (cons finding acc) acc)))
                           (nonempty-findings (reverse acc)))))))))
   (def (scan-kotlin-patterns-rule rule path source)
-       (or (scan-kotlin-named-ellipsis-rule rule path source)
-           (scan-kotlin-response-writer-rule rule path source)))
+       (scan-kotlin-named-ellipsis-rule rule path source))
   (def (kotlin-collapse-message-newlines message)
        (re-replace-all "\n\n+" message "\n"))
   (def (kotlin-finding-for-range-with-message rule path source start end bindings message)
diff --git a/src/semgrep/scan.ss b/src/semgrep/scan.ss
index 41839d9..f390b10 100644
--- a/src/semgrep/scan.ss
+++ b/src/semgrep/scan.ss
@@ -24388,12 +24388,12 @@
          php-new-class-range-on-line)))
 
 (def (scan-php-patterns-rule rule path source)
+  ;; string-eq-type and new-class-pattern are now covered structurally; only the
+  ;; metavar-call / fake-toks / non-primitive-type cases still need the handler.
   (or (scan-php-metavar-call-rule rule path source)
       (scan-php-metavar-call-case-rule rule path source)
       (scan-php-fake-toks-rule rule path source)
-      (scan-php-non-primitive-type-rule rule path source)
-      (scan-php-string-eq-type-rule rule path source)
-      (scan-php-new-class-pattern-rule rule path source)))
+      (scan-php-non-primitive-type-rule rule path source)))
 
 (def (php-echo-or-call-sink-range source first line-end)
   (let ([trimmed (substring source first line-end)])
@@ -25687,8 +25687,8 @@
                      (nonempty-findings (reverse acc)))))))))
 
 (def (scan-kotlin-patterns-rule rule path source)
-  (or (scan-kotlin-named-ellipsis-rule rule path source)
-      (scan-kotlin-response-writer-rule rule path source)))
+  ;; response-writer is now covered structurally; only named-ellipsis remains.
+  (scan-kotlin-named-ellipsis-rule rule path source))
 
 (def (kotlin-collapse-message-newlines message)
   (re-replace-all "\n\n+" message "\n"))