{
  "programs": [
    "Program {\n    span: 113..1123,\n    kind: Script,\n    body: [\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "Return(\n    ReturnStmt {\n        span: 362..380,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 538..642,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 638..739,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 735..755,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 766..785,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 826..864,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 905..946,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 949..994,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 991..1036,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1033..1081,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1078..1123,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "Class(\n    ClassDecl {\n        span: 113..431,\n        ident: Ident {\n            span: 119..120,\n            sym: \"A\",\n        },\n        declare: false,\n        class: _,\n    },\n)",
    "Class(\n    ClassDecl {\n        span: 426..793,\n        ident: Ident {\n            span: 432..433,\n            sym: \"C\",\n        },\n        declare: false,\n        class: _,\n    },\n)",
    "Class(\n    ClassDecl {\n        span: 788..872,\n        ident: Ident {\n            span: 794..795,\n            sym: \"B\",\n        },\n        declare: false,\n        class: _,\n    },\n)",
    "Class(\n    ClassDecl {\n        span: 867..952,\n        ident: Ident {\n            span: 873..874,\n            sym: \"D\",\n        },\n        declare: false,\n        class: _,\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 413..418,\n        sym: \"value\",\n    },\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)"
  ],
  "exprs": [
    "Lit(\n    Num(\n        NumberLit {\n            span: 188..189,\n            value: 4.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 258..259,\n            value: 5.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 324..325,\n            value: 6.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 369..373,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 373..380,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 374..378,\n                sym: \"priv\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 538..542,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 542..550,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 543..548,\n                sym: \"priv2\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 551..552,\n            value: 1.0,\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 549..553,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 638..642,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 642..650,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 643..648,\n                sym: \"prot2\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 651..652,\n            value: 2.0,\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 649..653,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 735..739,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 739..746,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 740..744,\n                sym: \"pub2\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 747..748,\n            value: 3.0,\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 745..749,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 773..777,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 777..785,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 778..783,\n                sym: \"priv2\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 804..805,\n        sym: \"A\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 826..830,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 830..837,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 831..835,\n                sym: \"priv\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 838..842,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 842..849,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 843..847,\n                sym: \"prot\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 836..849,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 850..854,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 854..864,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 855..858,\n                sym: \"pub\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 848..864,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 883..884,\n        sym: \"C\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 905..909,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 909..917,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 910..915,\n                sym: \"priv2\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 918..922,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 922..930,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 923..928,\n                sym: \"prot2\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 916..930,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 931..935,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 935..946,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 936..940,\n                sym: \"pub2\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 929..946,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 953..954,\n        sym: \"A\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 954..957,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 956..963,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 957..961,\n                sym: \"priv\",\n            },\n        ),\n    },\n)",
    "New(\n    NewExpr {\n        span: 949..963,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 968..969,\n        sym: \"A\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 969..972,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 971..978,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 972..976,\n                sym: \"prot\",\n            },\n        ),\n    },\n)",
    "New(\n    NewExpr {\n        span: 964..978,\n        callee: _,\n        args: [],\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 962..978,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 983..984,\n        sym: \"A\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 984..987,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 986..994,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 987..990,\n                sym: \"pub\",\n            },\n        ),\n    },\n)",
    "New(\n    NewExpr {\n        span: 979..994,\n        callee: _,\n        args: [],\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 977..994,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 995..996,\n        sym: \"B\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 996..999,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 998..1005,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 999..1003,\n                sym: \"priv\",\n            },\n        ),\n    },\n)",
    "New(\n    NewExpr {\n        span: 991..1005,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1010..1011,\n        sym: \"B\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1011..1014,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1013..1020,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1014..1018,\n                sym: \"prot\",\n            },\n        ),\n    },\n)",
    "New(\n    NewExpr {\n        span: 1006..1020,\n        callee: _,\n        args: [],\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1004..1020,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1025..1026,\n        sym: \"B\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1026..1029,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1028..1036,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1029..1032,\n                sym: \"pub\",\n            },\n        ),\n    },\n)",
    "New(\n    NewExpr {\n        span: 1021..1036,\n        callee: _,\n        args: [],\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1019..1036,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1037..1038,\n        sym: \"C\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1038..1041,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1040..1048,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1041..1046,\n                sym: \"priv2\",\n            },\n        ),\n    },\n)",
    "New(\n    NewExpr {\n        span: 1033..1048,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1053..1054,\n        sym: \"C\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1054..1057,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1056..1064,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1057..1062,\n                sym: \"prot2\",\n            },\n        ),\n    },\n)",
    "New(\n    NewExpr {\n        span: 1049..1064,\n        callee: _,\n        args: [],\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1047..1064,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1069..1070,\n        sym: \"C\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1070..1073,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1072..1081,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1073..1077,\n                sym: \"pub2\",\n            },\n        ),\n    },\n)",
    "New(\n    NewExpr {\n        span: 1065..1081,\n        callee: _,\n        args: [],\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1063..1081,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1082..1083,\n        sym: \"D\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1083..1086,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1085..1093,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1086..1091,\n                sym: \"priv2\",\n            },\n        ),\n    },\n)",
    "New(\n    NewExpr {\n        span: 1078..1093,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1098..1099,\n        sym: \"D\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1099..1102,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1101..1109,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1102..1107,\n                sym: \"prot2\",\n            },\n        ),\n    },\n)",
    "New(\n    NewExpr {\n        span: 1094..1109,\n        callee: _,\n        args: [],\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1092..1109,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1114..1115,\n        sym: \"D\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1115..1118,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1117..1123,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1118..1122,\n                sym: \"pub2\",\n            },\n        ),\n    },\n)",
    "New(\n    NewExpr {\n        span: 1110..1123,\n        callee: _,\n        args: [],\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1108..1123,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)"
  ],
  "module_decls": [],
  "functions": [
    "Function {\n    span: 350..408,\n    params: [],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 405..425,\n    params: [\n        Param {\n            span: 413..419,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 440..761,\n    params: [],\n    body: [\n        _,\n        _,\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 760..787,\n    params: [],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 812..866,\n    params: [],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 891..948,\n    params: [],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}"
  ],
  "classes": [
    "Class {\n    span: 113..431,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 119..120,\n            sym: \"A\",\n        },\n    ),\n    super_class: None,\n    body: [\n        _,\n        _,\n        _,\n        _,\n        _,\n    ],\n}",
    "Class {\n    span: 426..793,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 432..433,\n            sym: \"C\",\n        },\n    ),\n    super_class: None,\n    body: [\n        _,\n        _,\n    ],\n}",
    "Class {\n    span: 788..872,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 794..795,\n            sym: \"B\",\n        },\n    ),\n    super_class: Some(\n        _,\n    ),\n    body: [\n        _,\n    ],\n}",
    "Class {\n    span: 867..952,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 873..874,\n            sym: \"D\",\n        },\n    ),\n    super_class: Some(\n        _,\n    ),\n    body: [\n        _,\n    ],\n}"
  ],
  "class_members": [
    "Prop(\n    ClassProp {\n        span: 181..255,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 181..185,\n                sym: \"priv\",\n            },\n        ),\n        value: Some(\n            _,\n        ),\n        is_static: false,\n    },\n)",
    "Prop(\n    ClassProp {\n        span: 251..321,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 251..255,\n                sym: \"prot\",\n            },\n        ),\n        value: Some(\n            _,\n        ),\n        is_static: false,\n    },\n)",
    "Prop(\n    ClassProp {\n        span: 318..353,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 318..321,\n                sym: \"pub\",\n            },\n        ),\n        value: Some(\n            _,\n        ),\n        is_static: false,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 350..408,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 354..357,\n                sym: \"ack\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Getter,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 405..425,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 409..412,\n                sym: \"ack\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Setter,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 440..761,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 440..451,\n                sym: \"constructor\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Constructor,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 760..787,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 760..761,\n                sym: \"h\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 812..866,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 812..813,\n                sym: \"m\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 891..948,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 891..892,\n                sym: \"n\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)"
  ],
  "jsx_elements": [],
  "ts_types": []
}
