type: source_file
id: 0
range: 1:1 - 15:1
dataflow_sources:
    - 1
    - 4
    - 5
    - 11
    - 12
    - 37
    - 38
    - 66
children:
    - type: package_clause
      id: 1
      range: 1:1 - 1:12
      dataflow_sources:
        - 2
        - 3
      children:
        - type: '"package"'
          id: 2
          range: 1:1 - 1:8
        - type: package_identifier
          id: 3
          range: 1:9 - 1:12
          content: foo
    - type: |-
        "
        "
      id: 4
      range: 1:12 - 3:1
    - type: import_declaration
      id: 5
      range: 3:1 - 3:13
      dataflow_sources:
        - 6
        - 7
      children:
        - type: '"import"'
          id: 6
          range: 3:1 - 3:7
        - type: import_spec
          id: 7
          range: 3:8 - 3:13
          children:
            - type: interpreted_string_literal
              id: 8
              range: 3:8 - 3:13
              dataflow_sources:
                - 9
                - 10
              children:
                - type: '"""'
                  id: 9
                  range: 3:8 - 3:9
                - type: '"""'
                  id: 10
                  range: 3:12 - 3:13
    - type: |-
        "
        "
      id: 11
      range: 3:13 - 5:1
    - type: type_declaration
      id: 12
      range: 5:1 - 10:2
      dataflow_sources:
        - 13
        - 14
      children:
        - type: '"type"'
          id: 13
          range: 5:1 - 5:5
        - type: type_spec
          id: 14
          range: 5:6 - 10:2
          dataflow_sources:
            - 15
            - 16
          children:
            - type: type_identifier
              id: 15
              range: 5:6 - 5:10
              content: User
            - type: struct_type
              id: 16
              range: 5:11 - 10:2
              dataflow_sources:
                - 17
                - 18
              children:
                - type: '"struct"'
                  id: 17
                  range: 5:11 - 5:17
                - type: field_declaration_list
                  id: 18
                  range: 5:18 - 10:2
                  dataflow_sources:
                    - 19
                    - 20
                    - 23
                    - 24
                    - 27
                    - 28
                    - 31
                    - 32
                    - 35
                    - 36
                  children:
                    - type: '"{"'
                      id: 19
                      range: 5:18 - 5:19
                    - type: field_declaration
                      id: 20
                      range: 6:2 - 6:18
                      dataflow_sources:
                        - 21
                        - 22
                      children:
                        - type: field_identifier
                          id: 21
                          range: 6:2 - 6:11
                          content: firstName
                        - type: type_identifier
                          id: 22
                          range: 6:12 - 6:18
                          content: string
                    - type: |-
                        "
                        "
                      id: 23
                      range: 6:18 - 7:1
                    - type: field_declaration
                      id: 24
                      range: 7:2 - 7:18
                      dataflow_sources:
                        - 25
                        - 26
                      children:
                        - type: field_identifier
                          id: 25
                          range: 7:2 - 7:10
                          content: lastName
                        - type: type_identifier
                          id: 26
                          range: 7:12 - 7:18
                          content: string
                    - type: |-
                        "
                        "
                      id: 27
                      range: 7:18 - 8:1
                    - type: field_declaration
                      id: 28
                      range: 8:2 - 8:18
                      dataflow_sources:
                        - 29
                        - 30
                      children:
                        - type: field_identifier
                          id: 29
                          range: 8:2 - 8:7
                          content: email
                        - type: type_identifier
                          id: 30
                          range: 8:12 - 8:18
                          content: string
                    - type: |-
                        "
                        "
                      id: 31
                      range: 8:18 - 9:1
                    - type: field_declaration
                      id: 32
                      range: 9:2 - 9:18
                      dataflow_sources:
                        - 33
                        - 34
                      children:
                        - type: field_identifier
                          id: 33
                          range: 9:2 - 9:6
                          content: uuid
                        - type: type_identifier
                          id: 34
                          range: 9:12 - 9:18
                          content: string
                    - type: |-
                        "
                        "
                      id: 35
                      range: 9:18 - 10:1
                    - type: '"}"'
                      id: 36
                      range: 10:1 - 10:2
    - type: |-
        "
        "
      id: 37
      range: 10:2 - 12:1
    - type: method_declaration
      id: 38
      range: 12:1 - 14:2
      children:
        - type: '"func"'
          id: 39
          range: 12:1 - 12:5
        - type: parameter_list
          id: 40
          range: 12:6 - 12:14
          dataflow_sources:
            - 41
            - 42
            - 45
          children:
            - type: '"("'
              id: 41
              range: 12:6 - 12:7
            - type: parameter_declaration
              id: 42
              range: 12:7 - 12:13
              alias_of:
                - 43
              children:
                - type: identifier
                  id: 43
                  range: 12:7 - 12:8
                  content: x
                - type: type_identifier
                  id: 44
                  range: 12:9 - 12:13
                  content: User
            - type: '")"'
              id: 45
              range: 12:13 - 12:14
        - type: field_identifier
          id: 46
          range: 12:15 - 12:19
          content: Name
        - type: parameter_list
          id: 47
          range: 12:19 - 12:21
          dataflow_sources:
            - 48
            - 49
          children:
            - type: '"("'
              id: 48
              range: 12:19 - 12:20
            - type: '")"'
              id: 49
              range: 12:20 - 12:21
        - type: block
          id: 50
          range: 12:22 - 14:2
          children:
            - type: '"{"'
              id: 51
              range: 12:22 - 12:23
            - type: call_expression
              id: 52
              range: 13:2 - 13:26
              dataflow_sources:
                - 57
              children:
                - type: selector_expression
                  id: 53
                  range: 13:2 - 13:13
                  queries:
                    - 1
                  children:
                    - type: identifier
                      id: 54
                      range: 13:2 - 13:5
                      content: fmt
                      alias_of:
                        - 8
                    - type: '"."'
                      id: 55
                      range: 13:5 - 13:6
                    - type: field_identifier
                      id: 56
                      range: 13:6 - 13:13
                      content: Println
                - type: argument_list
                  id: 57
                  range: 13:13 - 13:26
                  dataflow_sources:
                    - 58
                    - 59
                    - 63
                  children:
                    - type: '"("'
                      id: 58
                      range: 13:13 - 13:14
                    - type: selector_expression
                      id: 59
                      range: 13:14 - 13:25
                      queries:
                        - 1
                      children:
                        - type: identifier
                          id: 60
                          range: 13:14 - 13:15
                          content: x
                          alias_of:
                            - 43
                        - type: '"."'
                          id: 61
                          range: 13:15 - 13:16
                        - type: field_identifier
                          id: 62
                          range: 13:16 - 13:25
                          content: firstName
                    - type: '")"'
                      id: 63
                      range: 13:25 - 13:26
            - type: |-
                "
                "
              id: 64
              range: 13:26 - 14:1
            - type: '"}"'
              id: 65
              range: 14:1 - 14:2
    - type: |-
        "
        "
      id: 66
      range: 14:2 - 15:1

- node: 52
  content: fmt.Println(x.firstName)
  data:
    properties:
        - name: fmt
          node: null
          object:
            ruleid: object
            matchnode:
                id: 53
                typeid: 30
                contentstart:
                    byte: 145
                    line: 13
                    column: 2
                contentend:
                    byte: 156
                    line: 13
                    column: 13
                executingdetectors: []
            data:
                properties:
                    - name: Println
                      node: null
                      object: null
                isvirtual: true
    isvirtual: true
- node: 53
  content: fmt.Println
  data:
    properties:
        - name: fmt
          node: null
          object:
            ruleid: object
            matchnode:
                id: 53
                typeid: 30
                contentstart:
                    byte: 145
                    line: 13
                    column: 2
                contentend:
                    byte: 156
                    line: 13
                    column: 13
                executingdetectors: []
            data:
                properties:
                    - name: Println
                      node: null
                      object: null
                isvirtual: true
    isvirtual: true
- node: 59
  content: x.firstName
  data:
    properties:
        - name: x
          node: null
          object:
            ruleid: object
            matchnode:
                id: 59
                typeid: 30
                contentstart:
                    byte: 157
                    line: 13
                    column: 14
                contentend:
                    byte: 168
                    line: 13
                    column: 25
                executingdetectors: []
            data:
                properties:
                    - name: firstName
                      node: null
                      object: null
                isvirtual: true
    isvirtual: true

