# mod.ts
export class MyClass extends MyNamespace.MyClass {}
export class OtherClass extends MyNamespace.MyClass<Test> {}

export namespace MyNamespace {
  export class MyClass {}
}

export class Test {
}

# output
file:///mod.ts: EsModuleInfo {
    module_id: ModuleId(
        0,
    ),
    specifier: "file:///mod.ts",
    re_exports: [],
    swc_id_to_symbol_id: {
        (
            "MyClass",
            #2,
        ): 1,
        (
            "OtherClass",
            #2,
        ): 2,
        (
            "MyNamespace",
            #2,
        ): 3,
        (
            "MyClass",
            #3,
        ): 4,
        (
            "Test",
            #2,
        ): 5,
    },
    symbols: {
        0: Symbol {
            module_id: ModuleId(
                0,
            ),
            symbol_id: 0,
            parent_id: None,
            decls: [
                SymbolDecl {
                    kind: Definition(
                        SymbolNode(
                            "export class MyClass extends MyNamespace.MyClass {}\nexport class OtherClass extends MyNamespace.MyClass<Test> {}\n\nexport namespace MyNamespace {\n  export class MyClass {}\n}\n\nexport class Test {\n}",
                        ),
                    ),
                    range: SourceRange {
                        start: SourcePos(
                            0,
                        ),
                        end: SourcePos(
                            195,
                        ),
                    },
                    flags: 0,
                },
            ],
            child_ids: {
                1,
                2,
                3,
                5,
            },
            exports: {
                "MyClass": 1,
                "OtherClass": 2,
                "MyNamespace": 3,
                "Test": 5,
            },
            members: {},
        },
        1: Symbol {
            module_id: ModuleId(
                0,
            ),
            symbol_id: 1,
            parent_id: Some(
                0,
            ),
            decls: [
                SymbolDecl {
                    kind: Definition(
                        SymbolNode(
                            "export class MyClass extends MyNamespace.MyClass {}",
                        ),
                    ),
                    range: SourceRange {
                        start: SourcePos(
                            0,
                        ),
                        end: SourcePos(
                            51,
                        ),
                    },
                    flags: 0,
                },
            ],
            child_ids: {},
            exports: {},
            members: {},
        },
        2: Symbol {
            module_id: ModuleId(
                0,
            ),
            symbol_id: 2,
            parent_id: Some(
                0,
            ),
            decls: [
                SymbolDecl {
                    kind: Definition(
                        SymbolNode(
                            "export class OtherClass extends MyNamespace.MyClass<Test> {}",
                        ),
                    ),
                    range: SourceRange {
                        start: SourcePos(
                            52,
                        ),
                        end: SourcePos(
                            112,
                        ),
                    },
                    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 namespace MyNamespace {\n  export class MyClass {}\n}",
                        ),
                    ),
                    range: SourceRange {
                        start: SourcePos(
                            114,
                        ),
                        end: SourcePos(
                            172,
                        ),
                    },
                    flags: 0,
                },
            ],
            child_ids: {
                4,
            },
            exports: {
                "MyClass": 4,
            },
            members: {},
        },
        4: Symbol {
            module_id: ModuleId(
                0,
            ),
            symbol_id: 4,
            parent_id: Some(
                3,
            ),
            decls: [
                SymbolDecl {
                    kind: Definition(
                        SymbolNode(
                            "export class MyClass {}",
                        ),
                    ),
                    range: SourceRange {
                        start: SourcePos(
                            147,
                        ),
                        end: SourcePos(
                            170,
                        ),
                    },
                    flags: 0,
                },
            ],
            child_ids: {},
            exports: {},
            members: {},
        },
        5: Symbol {
            module_id: ModuleId(
                0,
            ),
            symbol_id: 5,
            parent_id: Some(
                0,
            ),
            decls: [
                SymbolDecl {
                    kind: Definition(
                        SymbolNode(
                            "export class Test {\n}",
                        ),
                    ),
                    range: SourceRange {
                        start: SourcePos(
                            174,
                        ),
                        end: SourcePos(
                            195,
                        ),
                    },
                    flags: 0,
                },
            ],
            child_ids: {},
            exports: {},
            members: {},
        },
    },
}
== symbol deps (types and exprs) ==
1:0..51 [QualifiedId(("MyNamespace", #2), ["MyClass"])]
2:52..112 [QualifiedId(("MyNamespace", #2), ["MyClass"]), Id(("Test", #2))]

== symbol deps (types only) ==
1:0..51 [QualifiedId(("MyNamespace", #2), ["MyClass"])]
2:52..112 [QualifiedId(("MyNamespace", #2), ["MyClass"]), Id(("Test", #2))]

== export definitions ==
[MyClass]: file:///mod.ts:0..51
  export class MyClass extends MyNamespace.MyClass {}
[OtherClass]: file:///mod.ts:52..112
  export class OtherClass extends MyNamespace.MyClass<Test> {}
[MyNamespace]: file:///mod.ts:114..172
  export namespace MyNamespace {
    export class MyClass {}
  }
[Test]: file:///mod.ts:174..195
  export class Test {
  }
