{
  "programs": [
    "Program {\n    span: 1..645,\n    kind: Script,\n    body: [\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)",
    "Expr(\n    ExprStmt {\n        span: 203..222,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 221..246,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 329..348,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 347..372,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 431..443,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 598..630,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 622..644,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 1..65,\n        ident: Ident {\n            span: 11..17,\n            sym: \"Thing1\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 24..43,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 24..25,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 39..54,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 39..43,\n                            sym: \"self\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 56..113,\n        ident: Ident {\n            span: 66..72,\n            sym: \"Thing2\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 79..96,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 79..80,\n                            sym: \"b\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 94..107,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 94..96,\n                            sym: \"me\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 109..144,\n        ident: Ident {\n            span: 114..120,\n            sym: \"Thing3\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 140..182,\n        ident: Ident {\n            span: 145..151,\n            sym: \"Thing4\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 174..257,\n        ident: Ident {\n            span: 183..185,\n            sym: \"f1\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 248..308,\n        ident: Ident {\n            span: 258..264,\n            sym: \"Thing5\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [\n            Ident {\n                span: 273..281,\n                sym: \"Thing4\",\n            },\n        ],\n        body: [\n            TsTypeMember {\n                span: 286..298,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 286..287,\n                            sym: \"c\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 300..383,\n        ident: Ident {\n            span: 309..311,\n            sym: \"f2\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 434..500,\n        ident: Ident {\n            span: 444..449,\n            sym: \"Label\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [\n            Ident {\n                span: 458..469,\n                sym: \"Component\",\n            },\n        ],\n        body: [\n            TsTypeMember {\n                span: 474..490,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 474..479,\n                            sym: \"title\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 526..606,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 526..593,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 492..645,\n        ident: Ident {\n            span: 501..505,\n            sym: \"test\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 186..187,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 203..204,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 221..222,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 312..313,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 329..330,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 347..348,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 506..511,\n        sym: \"label\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 532..540,\n        sym: \"extended\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 541..593,\n        left: _,\n        right: _,\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 207..208,\n        sym: \"t\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 208..214,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 209..213,\n                sym: \"self\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 213..216,\n        callee: _,\n        args: [],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 205..216,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 225..226,\n        sym: \"t\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 226..230,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 227..229,\n                sym: \"me\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 229..232,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 231..237,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 232..236,\n                sym: \"self\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 236..239,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 238..242,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 239..241,\n                sym: \"me\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 241..244,\n        callee: _,\n        args: [],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 223..244,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 333..334,\n        sym: \"t\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 334..340,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 335..339,\n                sym: \"self\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 339..342,\n        callee: _,\n        args: [],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 331..342,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 351..352,\n        sym: \"t\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 352..356,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 353..355,\n                sym: \"me\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 355..358,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 357..363,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 358..362,\n                sym: \"self\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 362..365,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 364..368,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 365..367,\n                sym: \"me\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 367..370,\n        callee: _,\n        args: [],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 349..370,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 543..548,\n        sym: \"label\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 548..556,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 549..555,\n                sym: \"extend\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 562..564,\n            value: 67.0,\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 556..567,\n        props: [\n            KeyValueProp {\n                span: 558..566,\n                key: Ident(\n                    Ident {\n                        span: 558..560,\n                        sym: \"id\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Call(\n    CallExpr {\n        span: 555..568,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 567..575,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 568..574,\n                sym: \"extend\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 582..589,\n            value: \"hello\",\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 575..592,\n        props: [\n            KeyValueProp {\n                span: 577..591,\n                key: Ident(\n                    Ident {\n                        span: 577..580,\n                        sym: \"tag\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Call(\n    CallExpr {\n        span: 574..593,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 598..606,\n        sym: \"extended\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 606..610,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 607..609,\n                sym: \"id\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 622..630,\n        sym: \"extended\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 630..635,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 631..634,\n                sym: \"tag\",\n            },\n        ),\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    Number,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 47..52,\n        name: Ident {\n            span: 47..52,\n            sym: \"this\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Number,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 100..105,\n        name: Ident {\n            span: 100..105,\n            sym: \"this\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 123..131,\n        name: Ident {\n            span: 123..131,\n            sym: \"Thing1\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 132..139,\n        name: Ident {\n            span: 132..139,\n            sym: \"Thing2\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 123..139,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 154..162,\n        name: Ident {\n            span: 154..162,\n            sym: \"Thing3\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Array(\n    TsArrayType {\n        span: 163..172,\n        elem_type: _,\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 154..172,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    String,\n)"
  ]
}
