Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prototype for Macro Metadata Introspection #93

Open
davidmorgan opened this issue Oct 10, 2024 · 0 comments
Open

Prototype for Macro Metadata Introspection #93

davidmorgan opened this issue Oct 10, 2024 · 0 comments

Comments

@davidmorgan
Copy link
Contributor

Re: dart-lang/language#3847 and @jakemac53 @munificent @scheglov @johnniwinther

We are at a point in the macros repo where we can start prototyping, yay!

In particular, we have:

  • Serializable data types generated from a definition, so we can quickly get up and running with any idea for a model, or multiple models in parallel, or ... note that these are extension types, so we are not using class hierarchies, instead we have "union types".
  • An analyzer-backed query runner and a CFE-backed query runner, at least one of which is needed to do something fun with the model, and in the end both to validate that it really works ;)
  • A way to write macros that makes these queries
  • A way to run those macros backed by the analyzer or the CFE
  • e2e testing capabilities: golden files on query results, golden files on augmentations output, tests with macros applied

And all of this is fully outside the SDK so we can move fast and break things without breaking anything :)

Johnni, I think you're probably best placed to have ideas about what we should try next/first; I'll be more than happy to help, however I'll be on vacation next week, perhaps we can chat briefly before then? Otherwise looking forward to pushing on this when back :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

1 participant