Skip to content

Conversation

@josephsavona
Copy link
Member

@josephsavona josephsavona commented Nov 15, 2025

I've been trying out LLM agents for compiler development, and one thing i found is that the agent naturally wants to run yarn snap <pattern> to test a specific fixture, and I want to be able to tell it (directly or in rules/skills) to do this in order to get the debug output from all the compiler passes. Agents can figure out our current testfilter.txt file system but that's just tedious. So here we add support for yarn snap -p <pattern>. If you pass in a pattern with an extension, we target that extension specifically. If you pass in a .expect.md file, we look at that specific fixture. And if the pattern doesn't have extensions, we search for <pattern>{.js,.jsx,.ts,.tsx}. When patterns are enabled we automatically log as in debug mode (if there is a single match), and disable watch mode.

Open to feedback!


Stack created with Sapling. Best reviewed with ReviewStack.

Destructing statements that start off as declarations can end up becoming reassignments if the variable is a scope declaration, so we have existing logic to handle cases where some parts of a destructure need to be converted into new locals, with a reassignment to the hoisted scope variable afterwards. However, there is an edge case where all of the values are reassigned, in which case we don't need to rewrite and can just set the instruction kind to reassign.
The next PR needs to check if a block is controlled by a value derived from a ref.
@kuokiii

This comment was marked as spam.

@kuokiii

This comment was marked as spam.

@2803rishita

This comment was marked as spam.

@josephsavona
Copy link
Member Author

Anyone else who comments with "AI PR review" spam is also going to get instantly banned from the repo.

@josephsavona josephsavona force-pushed the pr35148 branch 3 times, most recently from cf0c7d5 to e890a5b Compare November 15, 2025 18:44
…conditionals

Conditionally calling setState in an effect is sometimes necessary, but should generally follow the pattern of using a "previous vaue" ref to manually compare and ensure that the setState is idempotent. See fixture for an example.
I've been trying out LLM agents for compiler development, and one thing i found is that the agent naturally wants to run `yarn snap <pattern>` to test a specific fixture, and I want to be able to tell it (directly or in rules/skills) to do this in order to get the debug output from all the compiler passes. Agents can figure out our current testfilter.txt file system but that's just tedious. So here we add support for `yarn snap -p <pattern>`. If you pass in a pattern with an extension, we target that extension specifically. If you pass in a .expect.md file, we look at that specific fixture. And if the pattern doesn't have extensions, we search for `<pattern>{.js,.jsx,.ts,.tsx}`. When patterns are enabled we automatically log as in debug mode (if there is a single match), and disable watch mode.

Open to feedback!
@yashhhh04

This comment was marked as spam.

@yashhhh04

This comment was marked as spam.

@yashhhh04

This comment was marked as spam.

@yashhhh04

This comment was marked as spam.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed React Core Team Opened by a member of the React Core Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants