{
  "programs": [
    "Program {\n    span: 18..881,\n    kind: Script,\n    body: [\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 198..219,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 216..236,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 233..261,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 258..283,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 280..304,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 301..331,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 330..355,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 354..378,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 377..410,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 408..434,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 432..457,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 455..487,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 602..630,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 626..653,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 759..785,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 780..804,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 825..855,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 850..878,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 18..90,\n        ident: Ident {\n            span: 28..29,\n            sym: \"X\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 36..80,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 36..39,\n                            sym: \"foo\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 40..50,\n                        name: Some(\n                            Ident {\n                                span: 40..41,\n                                sym: \"x\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                    TsFnParam {\n                        span: 51..61,\n                        name: Some(\n                            Ident {\n                                span: 51..52,\n                                sym: \"y\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                    TsFnParam {\n                        span: 62..77,\n                        name: Some(\n                            Ident {\n                                span: 65..66,\n                                sym: \"z\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: true,\n                        optional: false,\n                    },\n                ],\n                ty: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 82..141,\n        ident: Ident {\n            span: 91..94,\n            sym: \"foo\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n            _,\n        ],\n        body: [],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 138..158,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 138..154,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 155..175,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 155..171,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 172..187,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 172..183,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 184..201,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 184..196,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Class(\n    ClassDecl {\n        span: 528..716,\n        ident: Ident {\n            span: 534..535,\n            sym: \"C\",\n        },\n        declare: false,\n        class: _,\n    },\n)",
    "Class(\n    ClassDecl {\n        span: 711..881,\n        ident: Ident {\n            span: 717..718,\n            sym: \"D\",\n        },\n        declare: false,\n        class: _,\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 95..96,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 106..107,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 120..121,\n        sym: \"z\",\n    },\n)",
    "Rest(\n    RestPat {\n        span: 117..122,\n        arg: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 142..143,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 159..160,\n        sym: \"z\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 176..179,\n        sym: \"obj\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 188..190,\n        sym: \"xa\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 554..555,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 565..566,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 579..580,\n        sym: \"z\",\n    },\n)",
    "Rest(\n    RestPat {\n        span: 576..581,\n        arg: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 662..663,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 673..674,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 687..688,\n        sym: \"z\",\n    },\n)",
    "Rest(\n    RestPat {\n        span: 684..689,\n        arg: _,\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 198..201,\n        sym: \"foo\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 202..203,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 205..206,\n            value: 2.0,\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 208..213,\n            value: \"abc\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 201..215,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 216..219,\n        sym: \"foo\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 220..221,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 223..224,\n            value: 2.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 229..230,\n        sym: \"a\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 219..232,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: true,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 233..236,\n        sym: \"foo\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 237..238,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 240..241,\n            value: 2.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 246..247,\n        sym: \"a\",\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 249..254,\n            value: \"abc\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 236..256,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: true,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 258..261,\n        sym: \"obj\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 261..266,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 262..265,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 266..267,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 269..270,\n            value: 2.0,\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 272..277,\n            value: \"abc\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 265..279,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 280..283,\n        sym: \"obj\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 283..288,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 284..287,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 288..289,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 291..292,\n            value: 2.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 297..298,\n        sym: \"a\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 287..300,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: true,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 301..304,\n        sym: \"obj\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 304..309,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 305..308,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 309..310,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 312..313,\n            value: 2.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 318..319,\n        sym: \"a\",\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 321..326,\n            value: \"abc\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 308..328,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: true,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 331..334,\n        sym: \"obj\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 334..339,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 335..338,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Paren(\n    ParenExpr {\n        span: 330..340,\n        expr: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 340..341,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 343..344,\n            value: 2.0,\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 346..351,\n            value: \"abc\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 339..353,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 355..358,\n        sym: \"obj\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 358..363,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 359..362,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Paren(\n    ParenExpr {\n        span: 354..364,\n        expr: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 364..365,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 367..368,\n            value: 2.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 373..374,\n        sym: \"a\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 363..376,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: true,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 378..381,\n        sym: \"obj\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 381..386,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 382..385,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Paren(\n    ParenExpr {\n        span: 377..387,\n        expr: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 387..388,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 390..391,\n            value: 2.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 396..397,\n        sym: \"a\",\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 399..404,\n            value: \"abc\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 386..406,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: true,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 408..410,\n        sym: \"xa\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 411..412,\n            value: 1.0,\n        },\n    ),\n)",
    "Member(\n    MemberExpr {\n        span: 410..414,\n        obj: _,\n        prop: Computed(\n            _,\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 413..418,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 414..417,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 418..419,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 421..422,\n            value: 2.0,\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 424..429,\n            value: \"abc\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 417..431,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 432..434,\n        sym: \"xa\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 435..436,\n            value: 1.0,\n        },\n    ),\n)",
    "Member(\n    MemberExpr {\n        span: 434..438,\n        obj: _,\n        prop: Computed(\n            _,\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 437..442,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 438..441,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 442..443,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 445..446,\n            value: 2.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 451..452,\n        sym: \"a\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 441..454,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: true,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 455..457,\n        sym: \"xa\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 458..459,\n            value: 1.0,\n        },\n    ),\n)",
    "Member(\n    MemberExpr {\n        span: 457..461,\n        obj: _,\n        prop: Computed(\n            _,\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 460..465,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 461..464,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 465..466,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 468..469,\n            value: 2.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 474..475,\n        sym: \"a\",\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 477..482,\n            value: \"abc\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 464..484,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: true,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 602..606,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 606..611,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 607..610,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 611..612,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 614..615,\n        sym: \"y\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 610..617,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 626..630,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 630..635,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 631..634,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 635..636,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 638..639,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 644..645,\n        sym: \"z\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 634..647,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: true,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 727..728,\n        sym: \"C\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 759..764,\n        sym: \"super\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 765..766,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 768..769,\n            value: 2.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 764..771,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 780..785,\n        sym: \"super\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 786..787,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 789..790,\n            value: 2.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 795..796,\n        sym: \"a\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 785..798,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: true,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 825..830,\n        sym: \"super\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 830..835,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 831..834,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 835..836,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 838..839,\n            value: 2.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 834..841,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 850..855,\n        sym: \"super\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 855..860,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 856..859,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 860..861,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 863..864,\n            value: 2.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 869..870,\n        sym: \"a\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 859..872,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: true,\n                expr: _,\n            },\n        ],\n    },\n)"
  ],
  "module_decls": [],
  "functions": [
    "Function {\n    span: 542..661,\n    params: [\n        Param {\n            span: 554..564,\n            decorators: [],\n            pat: _,\n        },\n        Param {\n            span: 565..575,\n            decorators: [],\n            pat: _,\n        },\n        Param {\n            span: 576..591,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [\n        _,\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 658..709,\n    params: [\n        Param {\n            span: 662..672,\n            decorators: [],\n            pat: _,\n        },\n        Param {\n            span: 673..683,\n            decorators: [],\n            pat: _,\n        },\n        Param {\n            span: 684..699,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 735..812,\n    params: [],\n    body: [\n        _,\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 809..880,\n    params: [],\n    body: [\n        _,\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}"
  ],
  "classes": [
    "Class {\n    span: 528..716,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 534..535,\n            sym: \"C\",\n        },\n    ),\n    super_class: None,\n    body: [\n        _,\n        _,\n    ],\n}",
    "Class {\n    span: 711..881,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 717..718,\n            sym: \"D\",\n        },\n    ),\n    super_class: Some(\n        _,\n    ),\n    body: [\n        _,\n        _,\n    ],\n}"
  ],
  "class_members": [
    "Method(\n    ClassMethod {\n        span: 542..661,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 542..553,\n                sym: \"constructor\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Constructor,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 658..709,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 658..661,\n                sym: \"foo\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 735..812,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 735..746,\n                sym: \"constructor\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Constructor,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 809..880,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 809..812,\n                sym: \"foo\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)"
  ],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    String,\n)",
    "Array(\n    TsArrayType {\n        span: 68..77,\n        elem_type: _,\n    },\n)"
  ]
}
