type: program
id: 0
range: 1:1 - 7:1
dataflow_sources:
    - 1
children:
    - type: class_declaration
      id: 1
      range: 1:1 - 6:2
      dataflow_sources:
        - 2
        - 3
        - 4
      queries:
        - 4
      children:
        - type: '"class"'
          id: 2
          range: 1:1 - 1:6
        - type: type_identifier
          id: 3
          range: 1:7 - 1:11
          content: User
        - type: class_body
          id: 4
          range: 1:12 - 6:2
          dataflow_sources:
            - 5
            - 6
            - 19
            - 27
            - 35
          children:
            - type: '"{"'
              id: 5
              range: 1:12 - 1:13
            - type: method_definition
              id: 6
              range: 2:3 - 2:24
              children:
                - type: property_identifier
                  id: 7
                  range: 2:3 - 2:14
                  content: constructor
                - type: formal_parameters
                  id: 8
                  range: 2:15 - 2:21
                  dataflow_sources:
                    - 9
                    - 10
                    - 12
                    - 13
                    - 15
                  children:
                    - type: '"("'
                      id: 9
                      range: 2:15 - 2:16
                    - type: required_parameter
                      id: 10
                      range: 2:16 - 2:17
                      alias_of:
                        - 11
                      children:
                        - type: identifier
                          id: 11
                          range: 2:16 - 2:17
                          content: a
                    - type: '","'
                      id: 12
                      range: 2:17 - 2:18
                    - type: required_parameter
                      id: 13
                      range: 2:19 - 2:20
                      alias_of:
                        - 14
                      children:
                        - type: identifier
                          id: 14
                          range: 2:19 - 2:20
                          content: b
                    - type: '")"'
                      id: 15
                      range: 2:20 - 2:21
                - type: statement_block
                  id: 16
                  range: 2:22 - 2:24
                  dataflow_sources:
                    - 17
                    - 18
                  children:
                    - type: '"{"'
                      id: 17
                      range: 2:22 - 2:23
                    - type: '"}"'
                      id: 18
                      range: 2:23 - 2:24
            - type: method_definition
              id: 19
              range: 4:3 - 4:9
              children:
                - type: property_identifier
                  id: 20
                  range: 4:3 - 4:4
                  content: x
                - type: formal_parameters
                  id: 21
                  range: 4:4 - 4:6
                  dataflow_sources:
                    - 22
                    - 23
                  children:
                    - type: '"("'
                      id: 22
                      range: 4:4 - 4:5
                    - type: '")"'
                      id: 23
                      range: 4:5 - 4:6
                - type: statement_block
                  id: 24
                  range: 4:7 - 4:9
                  dataflow_sources:
                    - 25
                    - 26
                  children:
                    - type: '"{"'
                      id: 25
                      range: 4:7 - 4:8
                    - type: '"}"'
                      id: 26
                      range: 4:8 - 4:9
            - type: method_definition
              id: 27
              range: 5:3 - 5:9
              children:
                - type: property_identifier
                  id: 28
                  range: 5:3 - 5:4
                  content: "y"
                - type: formal_parameters
                  id: 29
                  range: 5:4 - 5:6
                  dataflow_sources:
                    - 30
                    - 31
                  children:
                    - type: '"("'
                      id: 30
                      range: 5:4 - 5:5
                    - type: '")"'
                      id: 31
                      range: 5:5 - 5:6
                - type: statement_block
                  id: 32
                  range: 5:7 - 5:9
                  dataflow_sources:
                    - 33
                    - 34
                  children:
                    - type: '"{"'
                      id: 33
                      range: 5:7 - 5:8
                    - type: '"}"'
                      id: 34
                      range: 5:8 - 5:9
            - type: '"}"'
              id: 35
              range: 6:1 - 6:2

- node: 1
  content: |-
    class User {
      constructor (a, b) {}

      x() {}
      y() {}
    }
  data:
    properties:
        - name: User
          node: null
          object:
            ruleid: object
            matchnode:
                id: 1
                typeid: 1
                contentstart:
                    byte: 0
                    line: 1
                    column: 1
                contentend:
                    byte: 57
                    line: 6
                    column: 2
                executingdetectors: []
            data:
                properties:
                    - name: x
                      node: null
                      object: null
                    - name: "y"
                      node: null
                      object: null
                isvirtual: false
    isvirtual: false

