Skip to content

Integrate template containers into namespace resolution #48

@Chlumsky

Description

@Chlumsky

The new namespace resolution maintains a tree of namespaces for regular types, so that when a type alias is made, its child types are aliased as well. Template containers are however excluded from this mechanism and their qualified name is still treated as a single unbreakable unit. This prevents "using namespace" clauses from being stored as symbollic links within the tree, and instead a string list of "using namespaces" is stored, so that they can be prepended one-by-one to encountered template types.

I propose a more robust solution: Move template containers from TypeSet root to Namespace, having multiple sets organized by namespace. Then, "using namespaces" can be converted to namespace pointers.

Since container templates (and string types) cannot affect header parser type discovery, but type and namespace discovery can affect what a container template's actual namespace really is, user types from the configuration need to be parsed and registered into the type set after all header parser passes except the FINAL pass.

Metadata

Metadata

Assignees

No one assigned

    Labels

    header-parserInvolves the header parserrefactorNo change in functionality

    Projects

    Status

    Medium Priority

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions