Description
Symbols are often accessible from a large number of modules.
Example Vector3
(a manually declared type):
Example Node
(a GDNative auto-generated type):
This is confusing as to which symbol is "the right one" and adds redundancy without benefit. It can also make auto-complete in IDEs harder to use and leads to inconsistent use
statements.
Goals:
- For each symbol, work out one canonical module (e.g.
Vector3
->core_types
orcore_types::geom
) - Remove all non-canonical, non-prelude modules, in particular:
- Ones existing only due to file structure, as in
gdnative::api::node::Node
- Nested ones inside
prelude
- Ones existing only due to file structure, as in
- Review
prelude
(possibly out of scope)
This may break use
statements in client code and will thus target v0.10.