---
source: crates/oxc_semantic/tests/main.rs
input_file: crates/oxc_semantic/tests/fixtures/typescript-eslint/functions/function-expression/scope.ts
---
[
  {
    "children": [
      {
        "children": [],
        "flag": "ScopeFlags(StrictMode | Function)",
        "id": 1,
        "node": "Function(<anonymous>)",
        "symbols": [
          {
            "flag": "SymbolFlags(BlockScopedVariable)",
            "id": 1,
            "name": "i",
            "node": "VariableDeclarator(i)",
            "references": [
              {
                "flag": "ReferenceFlag(Read)",
                "id": 0,
                "name": "i",
                "node_id": 16
              }
            ]
          },
          {
            "flag": "SymbolFlags(FunctionScopedVariable)",
            "id": 2,
            "name": "j",
            "node": "VariableDeclarator(j)",
            "references": []
          }
        ]
      }
    ],
    "flag": "ScopeFlags(StrictMode | Top)",
    "id": 0,
    "node": "Program",
    "symbols": [
      {
        "flag": "SymbolFlags(BlockScopedVariable | ConstVariable)",
        "id": 0,
        "name": "foo",
        "node": "VariableDeclarator(foo)",
        "references": []
      },
      {
        "flag": "SymbolFlags(BlockScopedVariable | ConstVariable)",
        "id": 3,
        "name": "unresolved",
        "node": "VariableDeclarator(unresolved)",
        "references": []
      }
    ]
  }
]
