Open rrousselGit opened 1 year ago
We have considered this but we don't want to accidentally ship some behavior for augmentation libraries that we later find out is incompatible with macros in some way. Ultimately the safest thing to do long term is to ship them together.
What about having it in some form of beta like Dart 3 had for a while?
The feature could be locked behind an experimental flag, but reasonably feature complete (working syntax highlighting & co) such that packages could release dev versions of their implementation using it.
Supporting augmentation libraries in a build_runner world could make the migration process really smooth. Folks using an augmentation library variant of a build_runner generator would have almost nothing to do to upgrade to macros.
That's a fairly different story with the current state of things. Many packages would require some form of migration tools to ease up the migration process.
I think they could be separate experimental features. But note that I have been actively changing that proposal and still have more planned changes, so it's a moving target. I wouldn't recommend using it at this time.
Hello!
It appears that metaprogramming may take some time to come out due to having many things to figure out.
But in that case, would it make sense to release augmentation libraries without releasing static metaprogramming?
This would enable code-generators using build_runner to switch to augmentation libraries, which would clean up the various $ in user code. It would also smoothen the migration from build_runner to macros, as migrating from "part" to augmentation libraries in itself can involve quite a bit of work.