Add support for definitions implementing other definitions (#121) Towards https://github.com/dart-lang/macros/issues/103 Adds an `implements` list to `Definition.clazz`, which: - Replaces the default `implements Object` and instead lists all the implemented types (which transitively gives `Object`). - Adds all inherited properties and associated code to the constructors and schemas - Does not re-generate getters, these are inherited via `Implements` I also added a base type `Declaration` because it is both useful and also serves as an example usage. I think one good follow-up would be to add `is<Type>` and `as<Type>` getters to anything which is implemented by another type, for each of the types which implement it. We at least need some mechanism for down casting extension types to their known subtypes. One tricky part with that though is ideally we don't want to inherit those methods in the subtypes, because they won't all make sense?
This repository is home to various macro related Dart packages.
| Package | Description | Version |
|---|---|---|
| _analyzer_macros | Macro support for the analyzer. | |
| _cfe_macros | Macro support for the CFE. | |
| _macro_builder | Builds macros. | |
| _macro_client | Connects user macro code to a macro host. | |
| _macro_host | Hosts macros. | |
| _macro_runner | Runs macros. | |
| _macro_server | Serves a macro_service. | |
| _test_macros | Some test macros. | |
| dart_model | Data model for information about Dart code, queries about Dart code and augmentations to Dart code. Serializable with a versioned JSON schema for use by macros, generators and other tools. | |
| macro | For implementing a macro. | |
| macro_service | Macro communication with the macro host. | |
| generate_dart_model |
For information about our publishing automation and release process, see https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.
For additional information about contributing, see our contributing page.