# mod.ts
const c = { a: "a", b: 2 };
const d: { f: string; g: number; } = { f: "f", g: 2 };

export const {
  /** export a doc */
  a,
  /** export b doc */
  b,
}: {
  /** type alias doc */
  a: string;
  /** other doc */
  b: number;
} = c;

# output
file:///mod.ts: EsModuleInfo {
    module_id: ModuleId(
        0,
    ),
    specifier: "file:///mod.ts",
    re_exports: [],
    swc_id_to_symbol_id: {
        (
            "c",
            #2,
        ): 1,
        (
            "d",
            #2,
        ): 2,
        (
            "a",
            #2,
        ): 3,
        (
            "b",
            #2,
        ): 4,
    },
    symbols: {
        0: Symbol {
            module_id: ModuleId(
                0,
            ),
            symbol_id: 0,
            parent_id: None,
            decls: [
                SymbolDecl {
                    kind: Definition(
                        SymbolNode(
                            "const c = { a: \"a\", b: 2 };\nconst d: { f: string; g: number; } = { f: \"f\", g: 2 };\n\nexport const {\n  /** export a doc */\n  a,\n  /** export b doc */\n  b,\n}: {\n  /** type alias doc */\n  a: string;\n  /** other doc */\n  b: number;\n} = c;",
                        ),
                    ),
                    range: SourceRange {
                        start: SourcePos(
                            0,
                        ),
                        end: SourcePos(
                            233,
                        ),
                    },
                    flags: 0,
                },
            ],
            child_ids: {
                1,
                2,
                3,
                4,
            },
            exports: {
                "a": 3,
                "b": 4,
            },
            members: {},
        },
        1: Symbol {
            module_id: ModuleId(
                0,
            ),
            symbol_id: 1,
            parent_id: Some(
                0,
            ),
            decls: [
                SymbolDecl {
                    kind: Definition(
                        SymbolNode(
                            "c: const c = { a: \"a\", b: 2 };",
                        ),
                    ),
                    range: SourceRange {
                        start: SourcePos(
                            6,
                        ),
                        end: SourcePos(
                            26,
                        ),
                    },
                    flags: 0,
                },
            ],
            child_ids: {},
            exports: {},
            members: {},
        },
        2: Symbol {
            module_id: ModuleId(
                0,
            ),
            symbol_id: 2,
            parent_id: Some(
                0,
            ),
            decls: [
                SymbolDecl {
                    kind: Definition(
                        SymbolNode(
                            "d: const d: { f: string; g: number; } = { f: \"f\", g: 2 };",
                        ),
                    ),
                    range: SourceRange {
                        start: SourcePos(
                            34,
                        ),
                        end: SourcePos(
                            81,
                        ),
                    },
                    flags: 0,
                },
            ],
            child_ids: {},
            exports: {},
            members: {},
        },
        3: Symbol {
            module_id: ModuleId(
                0,
            ),
            symbol_id: 3,
            parent_id: Some(
                0,
            ),
            decls: [
                SymbolDecl {
                    kind: Definition(
                        SymbolNode(
                            "export const {\n  /** export a doc */\n  a,\n  /** export b doc */\n  b,\n}: {\n  /** type alias doc */\n  a: string;\n  /** other doc */\n  b: number;\n} = c;",
                        ),
                    ),
                    range: SourceRange {
                        start: SourcePos(
                            97,
                        ),
                        end: SourcePos(
                            232,
                        ),
                    },
                    flags: 0,
                },
            ],
            child_ids: {},
            exports: {},
            members: {},
        },
        4: Symbol {
            module_id: ModuleId(
                0,
            ),
            symbol_id: 4,
            parent_id: Some(
                0,
            ),
            decls: [
                SymbolDecl {
                    kind: Definition(
                        SymbolNode(
                            "export const {\n  /** export a doc */\n  a,\n  /** export b doc */\n  b,\n}: {\n  /** type alias doc */\n  a: string;\n  /** other doc */\n  b: number;\n} = c;",
                        ),
                    ),
                    range: SourceRange {
                        start: SourcePos(
                            97,
                        ),
                        end: SourcePos(
                            232,
                        ),
                    },
                    flags: 0,
                },
            ],
            child_ids: {},
            exports: {},
            members: {},
        },
    },
}
== export definitions ==
[a]: file:///mod.ts:97..232
  {
    /** export a doc */
  ...
    b: number;
  } = c
[b]: file:///mod.ts:97..232
  {
    /** export a doc */
  ...
    b: number;
  } = c
