Dan Parizher
474b00568a
[parser] Fix panic when parsing IPython escape command expressions ( #21480 )
...
## Summary
Fixes a panic when parsing IPython escape commands with `Help` kind
(`?`) in expression contexts. The parser now reports an error instead of
panicking.
Fixes #21465 .
## Problem
The parser panicked with `unreachable!()` in
`parse_ipython_escape_command_expression` when encountering escape
commands with `Help` kind (`?`) in expression contexts, where only
`Magic` (`%`) and `Shell` (`!`) are allowed.
## Approach
Replaced the `unreachable!()` panic with error handling that adds a
`ParseErrorType::OtherError` and continues parsing, returning a valid
AST node with the error attached.
## Test Plan
Added `test_ipython_escape_command_in_with_statement` and
`test_ipython_help_escape_command_as_expression` to verify the fix.
---------
Co-authored-by: Dhruv Manilawala <dhruvmanila@gmail.com >
2025-11-24 05:40:27 +00:00
..
2025-08-22 17:03:22 -04:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-22 08:24:34 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-22 14:06:24 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-22 14:06:24 +02:00
2025-10-22 14:06:24 +02:00
2025-08-22 17:03:22 -04:00
2025-10-22 08:24:34 +02:00
2025-08-22 17:03:22 -04:00
2025-10-22 14:06:24 +02:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-22 08:24:34 +02:00
2025-08-22 17:03:22 -04:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-22 14:06:24 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-15 09:50:56 +02:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-15 09:50:56 +02:00
2025-10-15 09:50:56 +02:00
2025-10-15 09:50:56 +02:00
2025-10-15 09:50:56 +02:00
2025-10-15 09:50:56 +02:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-10-22 14:06:24 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-15 09:50:56 +02:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-09-16 15:53:28 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-22 14:06:24 +02:00
2025-08-22 17:03:22 -04:00
2025-10-22 14:06:24 +02:00
2025-08-22 17:03:22 -04:00
2025-10-22 14:06:24 +02:00
2025-10-15 09:50:56 +02:00
2025-10-15 09:50:56 +02:00
2025-10-15 09:50:56 +02:00
2025-09-25 13:52:24 -04:00
2025-10-15 09:50:56 +02:00
2025-11-24 05:40:27 +00:00
2025-11-24 05:40:27 +00:00
2025-11-24 05:40:27 +00:00
2025-10-22 08:24:34 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-31 11:59:11 -04:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-31 11:59:11 -04:00
2025-10-22 08:24:34 +02:00
2025-10-15 09:50:56 +02:00
2025-10-22 08:24:34 +02:00
2025-10-31 11:59:11 -04:00
2025-09-24 19:32:55 +00:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-15 09:50:56 +02:00
2025-10-20 09:03:13 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-10-15 09:50:56 +02:00
2025-10-15 09:50:56 +02:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-22 08:24:34 +02:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-15 09:50:56 +02:00
2025-10-15 09:50:56 +02:00
2025-10-15 09:50:56 +02:00
2025-10-15 09:50:56 +02:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-13 14:13:27 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-22 14:06:24 +02:00
2025-10-31 11:59:11 -04:00
2025-10-22 14:06:24 +02:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-22 14:06:24 +02:00
2025-10-31 11:59:11 -04:00
2025-10-22 14:06:24 +02:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-10-22 14:06:24 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-10-31 11:59:11 -04:00
2025-10-31 11:59:11 -04:00
2025-08-22 17:03:22 -04:00
2025-09-03 10:13:05 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-22 08:24:34 +02:00
2025-10-22 14:06:24 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-22 08:24:34 +02:00
2025-08-22 17:03:22 -04:00
2025-10-22 08:24:34 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-10-15 09:50:56 +02:00
2025-10-15 09:50:56 +02:00
2025-10-22 08:24:34 +02:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-10-22 08:24:34 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-22 14:06:24 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-09-16 15:53:28 -04:00
2025-08-22 17:03:22 -04:00
2025-10-22 08:24:34 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-10-22 08:24:34 +02:00
2025-09-24 19:32:55 +00:00
2025-11-10 10:51:51 -05:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-22 14:06:24 +02:00
2025-10-15 14:21:24 +00:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-15 14:21:24 +00:00
2025-10-15 09:50:56 +02:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-10-15 09:50:56 +02:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-10-22 14:06:24 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-22 14:06:24 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-22 08:24:34 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-10-15 09:50:56 +02:00
2025-10-22 14:06:24 +02:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-10-15 09:50:56 +02:00
2025-08-22 17:03:22 -04:00
2025-10-22 14:06:24 +02:00
2025-10-22 14:06:24 +02:00
2025-10-22 14:06:24 +02:00
2025-10-22 14:06:24 +02:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-08-22 17:03:22 -04:00
2025-09-25 13:52:24 -04:00
2025-08-22 17:03:22 -04:00