SIGN IN SIGN UP

fix(test): treat `!` and `(` as native only when what follows is

`!` and `(` are shell syntax as well as `test` syntax, so matching them on
the first token alone captured invocations the shell path ran correctly:
`rtk test ! false` returned 1 instead of 0, and `rtk test ! cargo --version`
stopped running cargo and reported `test: missing argument after '--version'`.

Recurse instead, so `!` and `(` mark a native expression only when what they
apply to is one. Measured against `/usr/bin/test` over 526 generated
expressions: unchanged at 212 mismatches (down from 411 before the fix), with
the shell-command forms back to their previous exit codes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
N
Nicolas Le Cam committed
98e66e05409a7454a6beeb18501962534b357acf
Parent: b02b567