Skip to content

Instantly share code, notes, and snippets.

@armano2
Created November 20, 2018 21:08
Show Gist options
  • Save armano2/3d27d7de6291ea01ef4893d8c3475132 to your computer and use it in GitHub Desktop.
Save armano2/3d27d7de6291ea01ef4893d8c3475132 to your computer and use it in GitHub Desktop.
{
"type": "Program",
"range": [
1,
29
],
"loc": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 4,
"column": 1
}
},
"body": [
{
"type": "TSEnumDeclaration",
"range": [
1,
29
],
"loc": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 4,
"column": 1
}
},
"id": {
"type": "Identifier",
"range": [
6,
9
],
"loc": {
"start": {
"line": 2,
"column": 5
},
"end": {
"line": 2,
"column": 8
}
},
"name": "Foo"
},
"members": [
{
"type": "TSEnumMember",
"range": [
16,
27
],
"loc": {
"start": {
"line": 3,
"column": 4
},
"end": {
"line": 3,
"column": 15
}
},
"id": {
"type": "Identifier",
"range": [
16,
19
],
"loc": {
"start": {
"line": 3,
"column": 4
},
"end": {
"line": 3,
"column": 7
}
},
"name": "BAR"
},
"initializer": {
"type": "Literal",
"range": [
22,
27
],
"loc": {
"start": {
"line": 3,
"column": 10
},
"end": {
"line": 3,
"column": 15
}
},
"raw": "'bar'",
"value": "bar"
}
}
]
}
],
"sourceType": "script",
"tokens": [
{
"type": "Keyword",
"value": "enum",
"range": [
1,
5
],
"loc": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 4
}
}
},
{
"type": "Identifier",
"value": "Foo",
"range": [
6,
9
],
"loc": {
"start": {
"line": 2,
"column": 5
},
"end": {
"line": 2,
"column": 8
}
}
},
{
"type": "Punctuator",
"value": "{",
"range": [
10,
11
],
"loc": {
"start": {
"line": 2,
"column": 9
},
"end": {
"line": 2,
"column": 10
}
}
},
{
"type": "Identifier",
"value": "BAR",
"range": [
16,
19
],
"loc": {
"start": {
"line": 3,
"column": 4
},
"end": {
"line": 3,
"column": 7
}
}
},
{
"type": "Punctuator",
"value": "=",
"range": [
20,
21
],
"loc": {
"start": {
"line": 3,
"column": 8
},
"end": {
"line": 3,
"column": 9
}
}
},
{
"type": "String",
"value": "'bar'",
"range": [
22,
27
],
"loc": {
"start": {
"line": 3,
"column": 10
},
"end": {
"line": 3,
"column": 15
}
}
},
{
"type": "Punctuator",
"value": "}",
"range": [
28,
29
],
"loc": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 1
}
}
}
],
"comments": [],
"parent": null
}
exports[`TypeScript scope analysis tests/fixtures/scope-analysis/enum-string.ts 1`] = `
Object {
"$id": 4,
"block": Object {
"range": Array [
0,
32,
],
"type": "Program",
},
"childScopes": Array [
Object {
"$id": 3,
"block": Object {
"range": Array [
0,
30,
],
"type": "TSEnumDeclaration",
},
"childScopes": Array [],
"functionExpressionScope": false,
"isStrict": false,
"references": Array [
Object {
"$id": 2,
"from": Object {
"$ref": 3,
},
"identifier": Object {
"name": "BAR",
"range": Array [
16,
19,
],
"type": "Identifier",
},
"kind": "w",
"resolved": Object {
"$ref": 1,
},
"writeExpr": Object {
"range": Array [
22,
27,
],
"type": "Literal",
},
},
],
"throughReferences": Array [],
"type": "enum",
"upperScope": Object {
"$ref": 4,
},
"variableMap": Object {
"BAR": Object {
"$ref": 1,
},
},
"variableScope": Object {
"$ref": 4,
},
"variables": Array [
Object {
"$id": 1,
"defs": Array [
Object {
"name": Object {
"name": "BAR",
"range": Array [
16,
19,
],
"type": "Identifier",
},
"node": Object {
"range": Array [
16,
27,
],
"type": "TSEnumMember",
},
"parent": undefined,
"type": "EnumMemberName",
},
],
"eslintUsed": undefined,
"identifiers": Array [
Object {
"name": "BAR",
"range": Array [
16,
19,
],
"type": "Identifier",
},
],
"name": "BAR",
"references": Array [
Object {
"$ref": 2,
},
],
"scope": Object {
"$ref": 3,
},
},
],
},
],
"functionExpressionScope": false,
"isStrict": false,
"references": Array [],
"throughReferences": Array [],
"type": "global",
"upperScope": null,
"variableMap": Object {
"Foo": Object {
"$ref": 0,
},
},
"variableScope": Object {
"$ref": 4,
},
"variables": Array [
Object {
"$id": 0,
"defs": Array [
Object {
"name": Object {
"name": "Foo",
"range": Array [
5,
8,
],
"type": "Identifier",
},
"node": Object {
"range": Array [
0,
30,
],
"type": "TSEnumDeclaration",
},
"parent": undefined,
"type": "EnumName",
},
],
"eslintUsed": undefined,
"identifiers": Array [
Object {
"name": "Foo",
"range": Array [
5,
8,
],
"type": "Identifier",
},
],
"name": "Foo",
"references": Array [],
"scope": Object {
"$ref": 4,
},
},
],
}
`;
enum Foo {
BAR = 'bar'
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment