updates
ober
66089c1b0965470b7030748b7b10c390b45d71de
--- a/lib/semgrep/match/structural.sls +++ b/lib/semgrep/match/structural.sls @@ -1129,6 +1129,18 @@ [pattern-root (parse-result-root pattern-result)]) (let-values ([(normalized owned-nodes) (normalized-pattern-root language pattern-root)]) + (when (sg-string-prefix? "bar" pattern-source) + (fprintf (current-error-port) + "PAT src=~s root=~s norm=~s normchildren=~a\n" + pattern-source (node-type pattern-root) + (node-type normalized) + (let loop ([k 0] [acc '()]) + (if (>= k (node-matchable-child-count normalized)) + (reverse acc) + (let ([c (node-matchable-child normalized k)]) + (let ([r (and c (node-type c))]) + (when c (node-close! c)) + (loop (+ k 1) (cons r acc)))))))) (let* ([chain-ellipsis? (chain-node-has-ellipsis? normalized)] [raw-matches (reverse --- a/src/.jerbuild-hashes +++ b/src/.jerbuild-hashes @@ -4,10 +4,10 @@ ("src/semgrep/lang.ss" . "6982E07679D20836") ("src/semgrep/parse/parse-target.ss" . "E74854DDDACF6BA") ("src/semgrep/scan.ss" . "9BC9ED2F515D91C6") + ("src/semgrep/rule.ss" . "E12C108153C181FA") + ("src/semgrep/schema/lang.ss" . "CAE2CA859C9A9FD0") ("src/semgrep/output/text.ss" . "BE476CB84B807FBA") ("src/semgrep/fix.ss" . "2E5B65B1FEF3B2B1") - ("src/semgrep/schema/lang.ss" . "CAE2CA859C9A9FD0") - ("src/semgrep/rule.ss" . "E12C108153C181FA") - ("src/semgrep/match/structural.ss" . "6FE77014EE9FDCE4") + ("src/semgrep/match/structural.ss" . "59C8FE35A09CC882") ("src/semgrep/main.ss" . "A4EC9E7F2A09D25E") ("src/semgrep/cli.ss" . "EBDC4B1DAD3F13CC")) --- a/src/semgrep/match/structural.ss +++ b/src/semgrep/match/structural.ss @@ -1156,6 +1156,15 @@ [pattern-root (parse-result-root pattern-result)]) (let-values ([(normalized owned-nodes) (normalized-pattern-root language pattern-root)]) + (when (sg-string-prefix? "bar" pattern-source) + (fprintf (current-error-port) "PAT src=~s root=~s norm=~s normchildren=~a\n" + pattern-source (node-type pattern-root) (node-type normalized) + (let loop ([k 0] [acc '()]) + (if (>= k (node-matchable-child-count normalized)) + (reverse acc) + (let ([c (node-matchable-child normalized k)]) + (let ([r (and c (node-type c))]) (when c (node-close! c)) + (loop (+ k 1) (cons r acc)))))))) (let* ([chain-ellipsis? (chain-node-has-ellipsis? normalized)] [raw-matches (reverse