toIdentifiers

Decomposes multi module import decl to a list of single module with binds.

toIdentifiers
(
const ImportDeclaration decl
)

Examples

Test for multiple modules and binding.

auto visitor = visitImports(q{
    import foo, bar : aa, cc, bb;
  });
auto ids = visitor.importGroups[0];
assert(ids[0].name == "foo");
assert(ids[0].bindNames == []);
assert(ids[1].name == "bar");
assert(ids[1].bindNames == ["aa", "bb", "cc"]);

// Test opCmp in sort.
sort(ids);
assert(ids[0].name == "bar");
assert(ids[1].name == "foo");

Test for merging redundant modules.

auto visitor = visitImports(q{
    import foo : bar;
    import foo : baz, bar;
  });
assert(visitor.outputImports(visitor.importGroups[0]) ==
       "import foo : bar, baz;");

Meta