From fb799e7a8aecc4b8f4a0c42b7d030fcad7162749 Mon Sep 17 00:00:00 2001
From: Josh Goldberg {}
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/1-TSESTree-AST.shot
new file mode 100644
index 000000000000..d8f94104032d
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/1-TSESTree-AST.shot
@@ -0,0 +1,116 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements-generic-multiple TSESTree - AST 1`] = `
+Program {
+ type: "Program",
+ body: Array [
+ ClassDeclaration {
+ type: "ClassDeclaration",
+ body: ClassBody {
+ type: "ClassBody",
+ body: Array [],
+
+ range: [104, 106],
+ loc: {
+ start: { column: 31, line: 3 },
+ end: { column: 33, line: 3 },
+ },
+ },
+ id: Identifier {
+ type: "Identifier",
+ name: "Foo",
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+ implements: Array [
+ TSClassImplements {
+ type: "TSClassImplements",
+ expression: Identifier {
+ type: "Identifier",
+ name: "Bar",
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ typeParameters: TSTypeParameterInstantiation {
+ type: "TSTypeParameterInstantiation",
+ params: Array [
+ TSTypeReference {
+ type: "TSTypeReference",
+ typeName: Identifier {
+ type: "Identifier",
+ name: "S",
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+ TSTypeReference {
+ type: "TSTypeReference",
+ typeName: Identifier {
+ type: "Identifier",
+ name: "T",
+
+ range: [101, 102],
+ loc: {
+ start: { column: 28, line: 3 },
+ end: { column: 29, line: 3 },
+ },
+ },
+
+ range: [101, 102],
+ loc: {
+ start: { column: 28, line: 3 },
+ end: { column: 29, line: 3 },
+ },
+ },
+ ],
+
+ range: [97, 103],
+ loc: {
+ start: { column: 24, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+
+ range: [94, 103],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+ ],
+ superClass: null,
+
+ range: [73, 106],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 33, line: 3 },
+ },
+ },
+ ],
+ sourceType: "script",
+
+ range: [73, 107],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 0, line: 4 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/2-TSESTree-Tokens.shot
new file mode 100644
index 000000000000..fa18b3f0c852
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/2-TSESTree-Tokens.shot
@@ -0,0 +1,116 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements-generic-multiple TSESTree - Tokens 1`] = `
+Array [
+ Keyword {
+ type: "Keyword",
+ value: "class",
+
+ range: [73, 78],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 5, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Foo",
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "implements",
+
+ range: [83, 93],
+ loc: {
+ start: { column: 10, line: 3 },
+ end: { column: 20, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Bar",
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "<",
+
+ range: [97, 98],
+ loc: {
+ start: { column: 24, line: 3 },
+ end: { column: 25, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "S",
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [99, 100],
+ loc: {
+ start: { column: 26, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "T",
+
+ range: [101, 102],
+ loc: {
+ start: { column: 28, line: 3 },
+ end: { column: 29, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ">",
+
+ range: [102, 103],
+ loc: {
+ start: { column: 29, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [104, 105],
+ loc: {
+ start: { column: 31, line: 3 },
+ end: { column: 32, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [105, 106],
+ loc: {
+ start: { column: 32, line: 3 },
+ end: { column: 33, line: 3 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/3-Babel-AST.shot
new file mode 100644
index 000000000000..af9a433f52df
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/3-Babel-AST.shot
@@ -0,0 +1,116 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements-generic-multiple Babel - AST 1`] = `
+Program {
+ type: "Program",
+ body: Array [
+ ClassDeclaration {
+ type: "ClassDeclaration",
+ body: ClassBody {
+ type: "ClassBody",
+ body: Array [],
+
+ range: [104, 106],
+ loc: {
+ start: { column: 31, line: 3 },
+ end: { column: 33, line: 3 },
+ },
+ },
+ id: Identifier {
+ type: "Identifier",
+ name: "Foo",
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+ implements: Array [
+ TSExpressionWithTypeArguments {
+ type: "TSExpressionWithTypeArguments",
+ expression: Identifier {
+ type: "Identifier",
+ name: "Bar",
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ typeParameters: TSTypeParameterInstantiation {
+ type: "TSTypeParameterInstantiation",
+ params: Array [
+ TSTypeReference {
+ type: "TSTypeReference",
+ typeName: Identifier {
+ type: "Identifier",
+ name: "S",
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+ TSTypeReference {
+ type: "TSTypeReference",
+ typeName: Identifier {
+ type: "Identifier",
+ name: "T",
+
+ range: [101, 102],
+ loc: {
+ start: { column: 28, line: 3 },
+ end: { column: 29, line: 3 },
+ },
+ },
+
+ range: [101, 102],
+ loc: {
+ start: { column: 28, line: 3 },
+ end: { column: 29, line: 3 },
+ },
+ },
+ ],
+
+ range: [97, 103],
+ loc: {
+ start: { column: 24, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+
+ range: [94, 103],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+ ],
+ superClass: null,
+
+ range: [73, 106],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 33, line: 3 },
+ },
+ },
+ ],
+ sourceType: "script",
+
+ range: [73, 107],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 0, line: 4 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/4-Babel-Tokens.shot
new file mode 100644
index 000000000000..2e7fe4c9ba17
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/4-Babel-Tokens.shot
@@ -0,0 +1,116 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements-generic-multiple Babel - Tokens 1`] = `
+Array [
+ Keyword {
+ type: "Keyword",
+ value: "class",
+
+ range: [73, 78],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 5, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Foo",
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "implements",
+
+ range: [83, 93],
+ loc: {
+ start: { column: 10, line: 3 },
+ end: { column: 20, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Bar",
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "<",
+
+ range: [97, 98],
+ loc: {
+ start: { column: 24, line: 3 },
+ end: { column: 25, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "S",
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [99, 100],
+ loc: {
+ start: { column: 26, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "T",
+
+ range: [101, 102],
+ loc: {
+ start: { column: 28, line: 3 },
+ end: { column: 29, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ">",
+
+ range: [102, 103],
+ loc: {
+ start: { column: 29, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [104, 105],
+ loc: {
+ start: { column: 31, line: 3 },
+ end: { column: 32, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [105, 106],
+ loc: {
+ start: { column: 32, line: 3 },
+ end: { column: 33, line: 3 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/5-AST-Alignment-AST.shot
new file mode 100644
index 000000000000..41b0e58926bb
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/5-AST-Alignment-AST.shot
@@ -0,0 +1,122 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements-generic-multiple AST Alignment - AST 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Program {
+ type: 'Program',
+ body: Array [
+ ClassDeclaration {
+ type: 'ClassDeclaration',
+ body: ClassBody {
+ type: 'ClassBody',
+ body: Array [],
+
+ range: [104, 106],
+ loc: {
+ start: { column: 31, line: 3 },
+ end: { column: 33, line: 3 },
+ },
+ },
+ id: Identifier {
+ type: 'Identifier',
+ name: 'Foo',
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+ implements: Array [
+- TSClassImplements {
+- type: 'TSClassImplements',
++ TSExpressionWithTypeArguments {
++ type: 'TSExpressionWithTypeArguments',
+ expression: Identifier {
+ type: 'Identifier',
+ name: 'Bar',
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ typeParameters: TSTypeParameterInstantiation {
+ type: 'TSTypeParameterInstantiation',
+ params: Array [
+ TSTypeReference {
+ type: 'TSTypeReference',
+ typeName: Identifier {
+ type: 'Identifier',
+ name: 'S',
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+ TSTypeReference {
+ type: 'TSTypeReference',
+ typeName: Identifier {
+ type: 'Identifier',
+ name: 'T',
+
+ range: [101, 102],
+ loc: {
+ start: { column: 28, line: 3 },
+ end: { column: 29, line: 3 },
+ },
+ },
+
+ range: [101, 102],
+ loc: {
+ start: { column: 28, line: 3 },
+ end: { column: 29, line: 3 },
+ },
+ },
+ ],
+
+ range: [97, 103],
+ loc: {
+ start: { column: 24, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+
+ range: [94, 103],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+ ],
+ superClass: null,
+
+ range: [73, 106],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 33, line: 3 },
+ },
+ },
+ ],
+ sourceType: 'script',
+
+ range: [73, 107],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 0, line: 4 },
+ },
+ }"
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..51fb50cb8f70
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic-multiple/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,122 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements-generic-multiple AST Alignment - Token 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Array [
+ Keyword {
+ type: 'Keyword',
+ value: 'class',
+
+ range: [73, 78],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 5, line: 3 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'Foo',
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+- Keyword {
+- type: 'Keyword',
++ Identifier {
++ type: 'Identifier',
+ value: 'implements',
+
+ range: [83, 93],
+ loc: {
+ start: { column: 10, line: 3 },
+ end: { column: 20, line: 3 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'Bar',
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '<',
+
+ range: [97, 98],
+ loc: {
+ start: { column: 24, line: 3 },
+ end: { column: 25, line: 3 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'S',
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [99, 100],
+ loc: {
+ start: { column: 26, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'T',
+
+ range: [101, 102],
+ loc: {
+ start: { column: 28, line: 3 },
+ end: { column: 29, line: 3 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '>',
+
+ range: [102, 103],
+ loc: {
+ start: { column: 29, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '{',
+
+ range: [104, 105],
+ loc: {
+ start: { column: 31, line: 3 },
+ end: { column: 32, line: 3 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '}',
+
+ range: [105, 106],
+ loc: {
+ start: { column: 32, line: 3 },
+ end: { column: 33, line: 3 },
+ },
+ },
+ ]"
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/fixture.ts b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/fixture.ts
new file mode 100644
index 000000000000..e47da9f61695
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/fixture.ts
@@ -0,0 +1,3 @@
+// TODO: This fixture might be too large, and if so should be split up.
+
+class Foo implements Bar {}
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/1-TSESTree-AST.shot
new file mode 100644
index 000000000000..137d4920b364
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/1-TSESTree-AST.shot
@@ -0,0 +1,97 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements-generic TSESTree - AST 1`] = `
+Program {
+ type: "Program",
+ body: Array [
+ ClassDeclaration {
+ type: "ClassDeclaration",
+ body: ClassBody {
+ type: "ClassBody",
+ body: Array [],
+
+ range: [101, 103],
+ loc: {
+ start: { column: 28, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+ id: Identifier {
+ type: "Identifier",
+ name: "Foo",
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+ implements: Array [
+ TSClassImplements {
+ type: "TSClassImplements",
+ expression: Identifier {
+ type: "Identifier",
+ name: "Bar",
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ typeParameters: TSTypeParameterInstantiation {
+ type: "TSTypeParameterInstantiation",
+ params: Array [
+ TSTypeReference {
+ type: "TSTypeReference",
+ typeName: Identifier {
+ type: "Identifier",
+ name: "S",
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+ ],
+
+ range: [97, 100],
+ loc: {
+ start: { column: 24, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+
+ range: [94, 100],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+ ],
+ superClass: null,
+
+ range: [73, 103],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+ ],
+ sourceType: "script",
+
+ range: [73, 104],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 0, line: 4 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/2-TSESTree-Tokens.shot
new file mode 100644
index 000000000000..8e38935390c5
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/2-TSESTree-Tokens.shot
@@ -0,0 +1,96 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements-generic TSESTree - Tokens 1`] = `
+Array [
+ Keyword {
+ type: "Keyword",
+ value: "class",
+
+ range: [73, 78],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 5, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Foo",
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "implements",
+
+ range: [83, 93],
+ loc: {
+ start: { column: 10, line: 3 },
+ end: { column: 20, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Bar",
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "<",
+
+ range: [97, 98],
+ loc: {
+ start: { column: 24, line: 3 },
+ end: { column: 25, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "S",
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ">",
+
+ range: [99, 100],
+ loc: {
+ start: { column: 26, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [101, 102],
+ loc: {
+ start: { column: 28, line: 3 },
+ end: { column: 29, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [102, 103],
+ loc: {
+ start: { column: 29, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/3-Babel-AST.shot
new file mode 100644
index 000000000000..ee18de9e7b77
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/3-Babel-AST.shot
@@ -0,0 +1,97 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements-generic Babel - AST 1`] = `
+Program {
+ type: "Program",
+ body: Array [
+ ClassDeclaration {
+ type: "ClassDeclaration",
+ body: ClassBody {
+ type: "ClassBody",
+ body: Array [],
+
+ range: [101, 103],
+ loc: {
+ start: { column: 28, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+ id: Identifier {
+ type: "Identifier",
+ name: "Foo",
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+ implements: Array [
+ TSExpressionWithTypeArguments {
+ type: "TSExpressionWithTypeArguments",
+ expression: Identifier {
+ type: "Identifier",
+ name: "Bar",
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ typeParameters: TSTypeParameterInstantiation {
+ type: "TSTypeParameterInstantiation",
+ params: Array [
+ TSTypeReference {
+ type: "TSTypeReference",
+ typeName: Identifier {
+ type: "Identifier",
+ name: "S",
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+ ],
+
+ range: [97, 100],
+ loc: {
+ start: { column: 24, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+
+ range: [94, 100],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+ ],
+ superClass: null,
+
+ range: [73, 103],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+ ],
+ sourceType: "script",
+
+ range: [73, 104],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 0, line: 4 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/4-Babel-Tokens.shot
new file mode 100644
index 000000000000..058890cf74d3
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/4-Babel-Tokens.shot
@@ -0,0 +1,96 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements-generic Babel - Tokens 1`] = `
+Array [
+ Keyword {
+ type: "Keyword",
+ value: "class",
+
+ range: [73, 78],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 5, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Foo",
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "implements",
+
+ range: [83, 93],
+ loc: {
+ start: { column: 10, line: 3 },
+ end: { column: 20, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Bar",
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "<",
+
+ range: [97, 98],
+ loc: {
+ start: { column: 24, line: 3 },
+ end: { column: 25, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "S",
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ">",
+
+ range: [99, 100],
+ loc: {
+ start: { column: 26, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [101, 102],
+ loc: {
+ start: { column: 28, line: 3 },
+ end: { column: 29, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [102, 103],
+ loc: {
+ start: { column: 29, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/5-AST-Alignment-AST.shot
new file mode 100644
index 000000000000..74cc49838e1f
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/5-AST-Alignment-AST.shot
@@ -0,0 +1,103 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements-generic AST Alignment - AST 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Program {
+ type: 'Program',
+ body: Array [
+ ClassDeclaration {
+ type: 'ClassDeclaration',
+ body: ClassBody {
+ type: 'ClassBody',
+ body: Array [],
+
+ range: [101, 103],
+ loc: {
+ start: { column: 28, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+ id: Identifier {
+ type: 'Identifier',
+ name: 'Foo',
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+ implements: Array [
+- TSClassImplements {
+- type: 'TSClassImplements',
++ TSExpressionWithTypeArguments {
++ type: 'TSExpressionWithTypeArguments',
+ expression: Identifier {
+ type: 'Identifier',
+ name: 'Bar',
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ typeParameters: TSTypeParameterInstantiation {
+ type: 'TSTypeParameterInstantiation',
+ params: Array [
+ TSTypeReference {
+ type: 'TSTypeReference',
+ typeName: Identifier {
+ type: 'Identifier',
+ name: 'S',
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+ ],
+
+ range: [97, 100],
+ loc: {
+ start: { column: 24, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+
+ range: [94, 100],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+ ],
+ superClass: null,
+
+ range: [73, 103],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+ ],
+ sourceType: 'script',
+
+ range: [73, 104],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 0, line: 4 },
+ },
+ }"
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..619c0b6f148f
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements-generic/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,102 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements-generic AST Alignment - Token 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Array [
+ Keyword {
+ type: 'Keyword',
+ value: 'class',
+
+ range: [73, 78],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 5, line: 3 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'Foo',
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+- Keyword {
+- type: 'Keyword',
++ Identifier {
++ type: 'Identifier',
+ value: 'implements',
+
+ range: [83, 93],
+ loc: {
+ start: { column: 10, line: 3 },
+ end: { column: 20, line: 3 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'Bar',
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '<',
+
+ range: [97, 98],
+ loc: {
+ start: { column: 24, line: 3 },
+ end: { column: 25, line: 3 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'S',
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '>',
+
+ range: [99, 100],
+ loc: {
+ start: { column: 26, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '{',
+
+ range: [101, 102],
+ loc: {
+ start: { column: 28, line: 3 },
+ end: { column: 29, line: 3 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '}',
+
+ range: [102, 103],
+ loc: {
+ start: { column: 29, line: 3 },
+ end: { column: 30, line: 3 },
+ },
+ },
+ ]"
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/fixture.ts b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/fixture.ts
new file mode 100644
index 000000000000..047477013de1
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/fixture.ts
@@ -0,0 +1,3 @@
+// TODO: This fixture might be too large, and if so should be split up.
+
+class Foo implements Bar {}
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/1-TSESTree-AST.shot
new file mode 100644
index 000000000000..b2bb085367b8
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/1-TSESTree-AST.shot
@@ -0,0 +1,67 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements TSESTree - AST 1`] = `
+Program {
+ type: "Program",
+ body: Array [
+ ClassDeclaration {
+ type: "ClassDeclaration",
+ body: ClassBody {
+ type: "ClassBody",
+ body: Array [],
+
+ range: [98, 100],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+ id: Identifier {
+ type: "Identifier",
+ name: "Foo",
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+ implements: Array [
+ TSClassImplements {
+ type: "TSClassImplements",
+ expression: Identifier {
+ type: "Identifier",
+ name: "Bar",
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ ],
+ superClass: null,
+
+ range: [73, 100],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+ ],
+ sourceType: "script",
+
+ range: [73, 101],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 0, line: 4 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/2-TSESTree-Tokens.shot
new file mode 100644
index 000000000000..f5fa4af25814
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/2-TSESTree-Tokens.shot
@@ -0,0 +1,66 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements TSESTree - Tokens 1`] = `
+Array [
+ Keyword {
+ type: "Keyword",
+ value: "class",
+
+ range: [73, 78],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 5, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Foo",
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "implements",
+
+ range: [83, 93],
+ loc: {
+ start: { column: 10, line: 3 },
+ end: { column: 20, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Bar",
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [99, 100],
+ loc: {
+ start: { column: 26, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/3-Babel-AST.shot
new file mode 100644
index 000000000000..166d373388dd
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/3-Babel-AST.shot
@@ -0,0 +1,67 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements Babel - AST 1`] = `
+Program {
+ type: "Program",
+ body: Array [
+ ClassDeclaration {
+ type: "ClassDeclaration",
+ body: ClassBody {
+ type: "ClassBody",
+ body: Array [],
+
+ range: [98, 100],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+ id: Identifier {
+ type: "Identifier",
+ name: "Foo",
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+ implements: Array [
+ TSExpressionWithTypeArguments {
+ type: "TSExpressionWithTypeArguments",
+ expression: Identifier {
+ type: "Identifier",
+ name: "Bar",
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ ],
+ superClass: null,
+
+ range: [73, 100],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+ ],
+ sourceType: "script",
+
+ range: [73, 101],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 0, line: 4 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/4-Babel-Tokens.shot
new file mode 100644
index 000000000000..0b3f0990c5a6
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/4-Babel-Tokens.shot
@@ -0,0 +1,66 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements Babel - Tokens 1`] = `
+Array [
+ Keyword {
+ type: "Keyword",
+ value: "class",
+
+ range: [73, 78],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 5, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Foo",
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "implements",
+
+ range: [83, 93],
+ loc: {
+ start: { column: 10, line: 3 },
+ end: { column: 20, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Bar",
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [99, 100],
+ loc: {
+ start: { column: 26, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/5-AST-Alignment-AST.shot
new file mode 100644
index 000000000000..67f56c863706
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/5-AST-Alignment-AST.shot
@@ -0,0 +1,73 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements AST Alignment - AST 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Program {
+ type: 'Program',
+ body: Array [
+ ClassDeclaration {
+ type: 'ClassDeclaration',
+ body: ClassBody {
+ type: 'ClassBody',
+ body: Array [],
+
+ range: [98, 100],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+ id: Identifier {
+ type: 'Identifier',
+ name: 'Foo',
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+ implements: Array [
+- TSClassImplements {
+- type: 'TSClassImplements',
++ TSExpressionWithTypeArguments {
++ type: 'TSExpressionWithTypeArguments',
+ expression: Identifier {
+ type: 'Identifier',
+ name: 'Bar',
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ ],
+ superClass: null,
+
+ range: [73, 100],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+ ],
+ sourceType: 'script',
+
+ range: [73, 101],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 0, line: 4 },
+ },
+ }"
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..dd0501e4607a
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-implements/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,72 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics class-with-implements AST Alignment - Token 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Array [
+ Keyword {
+ type: 'Keyword',
+ value: 'class',
+
+ range: [73, 78],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 5, line: 3 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'Foo',
+
+ range: [79, 82],
+ loc: {
+ start: { column: 6, line: 3 },
+ end: { column: 9, line: 3 },
+ },
+ },
+- Keyword {
+- type: 'Keyword',
++ Identifier {
++ type: 'Identifier',
+ value: 'implements',
+
+ range: [83, 93],
+ loc: {
+ start: { column: 10, line: 3 },
+ end: { column: 20, line: 3 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'Bar',
+
+ range: [94, 97],
+ loc: {
+ start: { column: 21, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '{',
+
+ range: [98, 99],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 26, line: 3 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '}',
+
+ range: [99, 100],
+ loc: {
+ start: { column: 26, line: 3 },
+ end: { column: 27, line: 3 },
+ },
+ },
+ ]"
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-method/fixture.ts b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-method/fixture.ts
new file mode 100644
index 000000000000..f78d5403f66a
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/class-with-method/fixture.ts
@@ -0,0 +1,7 @@
+// TODO: This fixture might be too large, and if so should be split up.
+
+class C {
+ foo(): number {}
+ bar = intrinsic;
+type Lowercase = intrinsic;
+type Capitalize = intrinsic;
+type Uncapitalize = intrinsic;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/1-TSESTree-AST.shot
new file mode 100644
index 000000000000..709dafa02b58
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/1-TSESTree-AST.shot
@@ -0,0 +1,292 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics intrinsic-keyword TSESTree - AST 1`] = `
+Program {
+ type: "Program",
+ body: Array [
+ TSTypeAliasDeclaration {
+ type: "TSTypeAliasDeclaration",
+ id: Identifier {
+ type: "Identifier",
+ name: "Uppercase",
+
+ range: [78, 87],
+ loc: {
+ start: { column: 5, line: 3 },
+ end: { column: 14, line: 3 },
+ },
+ },
+ typeAnnotation: TSIntrinsicKeyword {
+ type: "TSIntrinsicKeyword",
+
+ range: [108, 117],
+ loc: {
+ start: { column: 35, line: 3 },
+ end: { column: 44, line: 3 },
+ },
+ },
+ typeParameters: TSTypeParameterDeclaration {
+ type: "TSTypeParameterDeclaration",
+ params: Array [
+ TSTypeParameter {
+ type: "TSTypeParameter",
+ constraint: TSStringKeyword {
+ type: "TSStringKeyword",
+
+ range: [98, 104],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 31, line: 3 },
+ },
+ },
+ in: false,
+ name: Identifier {
+ type: "Identifier",
+ name: "S",
+
+ range: [88, 89],
+ loc: {
+ start: { column: 15, line: 3 },
+ end: { column: 16, line: 3 },
+ },
+ },
+ out: false,
+
+ range: [88, 104],
+ loc: {
+ start: { column: 15, line: 3 },
+ end: { column: 31, line: 3 },
+ },
+ },
+ ],
+
+ range: [87, 105],
+ loc: {
+ start: { column: 14, line: 3 },
+ end: { column: 32, line: 3 },
+ },
+ },
+
+ range: [73, 118],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 45, line: 3 },
+ },
+ },
+ TSTypeAliasDeclaration {
+ type: "TSTypeAliasDeclaration",
+ id: Identifier {
+ type: "Identifier",
+ name: "Lowercase",
+
+ range: [124, 133],
+ loc: {
+ start: { column: 5, line: 4 },
+ end: { column: 14, line: 4 },
+ },
+ },
+ typeAnnotation: TSIntrinsicKeyword {
+ type: "TSIntrinsicKeyword",
+
+ range: [154, 163],
+ loc: {
+ start: { column: 35, line: 4 },
+ end: { column: 44, line: 4 },
+ },
+ },
+ typeParameters: TSTypeParameterDeclaration {
+ type: "TSTypeParameterDeclaration",
+ params: Array [
+ TSTypeParameter {
+ type: "TSTypeParameter",
+ constraint: TSStringKeyword {
+ type: "TSStringKeyword",
+
+ range: [144, 150],
+ loc: {
+ start: { column: 25, line: 4 },
+ end: { column: 31, line: 4 },
+ },
+ },
+ in: false,
+ name: Identifier {
+ type: "Identifier",
+ name: "S",
+
+ range: [134, 135],
+ loc: {
+ start: { column: 15, line: 4 },
+ end: { column: 16, line: 4 },
+ },
+ },
+ out: false,
+
+ range: [134, 150],
+ loc: {
+ start: { column: 15, line: 4 },
+ end: { column: 31, line: 4 },
+ },
+ },
+ ],
+
+ range: [133, 151],
+ loc: {
+ start: { column: 14, line: 4 },
+ end: { column: 32, line: 4 },
+ },
+ },
+
+ range: [119, 164],
+ loc: {
+ start: { column: 0, line: 4 },
+ end: { column: 45, line: 4 },
+ },
+ },
+ TSTypeAliasDeclaration {
+ type: "TSTypeAliasDeclaration",
+ id: Identifier {
+ type: "Identifier",
+ name: "Capitalize",
+
+ range: [170, 180],
+ loc: {
+ start: { column: 5, line: 5 },
+ end: { column: 15, line: 5 },
+ },
+ },
+ typeAnnotation: TSIntrinsicKeyword {
+ type: "TSIntrinsicKeyword",
+
+ range: [201, 210],
+ loc: {
+ start: { column: 36, line: 5 },
+ end: { column: 45, line: 5 },
+ },
+ },
+ typeParameters: TSTypeParameterDeclaration {
+ type: "TSTypeParameterDeclaration",
+ params: Array [
+ TSTypeParameter {
+ type: "TSTypeParameter",
+ constraint: TSStringKeyword {
+ type: "TSStringKeyword",
+
+ range: [191, 197],
+ loc: {
+ start: { column: 26, line: 5 },
+ end: { column: 32, line: 5 },
+ },
+ },
+ in: false,
+ name: Identifier {
+ type: "Identifier",
+ name: "S",
+
+ range: [181, 182],
+ loc: {
+ start: { column: 16, line: 5 },
+ end: { column: 17, line: 5 },
+ },
+ },
+ out: false,
+
+ range: [181, 197],
+ loc: {
+ start: { column: 16, line: 5 },
+ end: { column: 32, line: 5 },
+ },
+ },
+ ],
+
+ range: [180, 198],
+ loc: {
+ start: { column: 15, line: 5 },
+ end: { column: 33, line: 5 },
+ },
+ },
+
+ range: [165, 211],
+ loc: {
+ start: { column: 0, line: 5 },
+ end: { column: 46, line: 5 },
+ },
+ },
+ TSTypeAliasDeclaration {
+ type: "TSTypeAliasDeclaration",
+ id: Identifier {
+ type: "Identifier",
+ name: "Uncapitalize",
+
+ range: [217, 229],
+ loc: {
+ start: { column: 5, line: 6 },
+ end: { column: 17, line: 6 },
+ },
+ },
+ typeAnnotation: TSIntrinsicKeyword {
+ type: "TSIntrinsicKeyword",
+
+ range: [250, 259],
+ loc: {
+ start: { column: 38, line: 6 },
+ end: { column: 47, line: 6 },
+ },
+ },
+ typeParameters: TSTypeParameterDeclaration {
+ type: "TSTypeParameterDeclaration",
+ params: Array [
+ TSTypeParameter {
+ type: "TSTypeParameter",
+ constraint: TSStringKeyword {
+ type: "TSStringKeyword",
+
+ range: [240, 246],
+ loc: {
+ start: { column: 28, line: 6 },
+ end: { column: 34, line: 6 },
+ },
+ },
+ in: false,
+ name: Identifier {
+ type: "Identifier",
+ name: "S",
+
+ range: [230, 231],
+ loc: {
+ start: { column: 18, line: 6 },
+ end: { column: 19, line: 6 },
+ },
+ },
+ out: false,
+
+ range: [230, 246],
+ loc: {
+ start: { column: 18, line: 6 },
+ end: { column: 34, line: 6 },
+ },
+ },
+ ],
+
+ range: [229, 247],
+ loc: {
+ start: { column: 17, line: 6 },
+ end: { column: 35, line: 6 },
+ },
+ },
+
+ range: [212, 260],
+ loc: {
+ start: { column: 0, line: 6 },
+ end: { column: 48, line: 6 },
+ },
+ },
+ ],
+ sourceType: "script",
+
+ range: [73, 261],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 0, line: 7 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/2-TSESTree-Tokens.shot
new file mode 100644
index 000000000000..2de11cd771df
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/2-TSESTree-Tokens.shot
@@ -0,0 +1,406 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics intrinsic-keyword TSESTree - Tokens 1`] = `
+Array [
+ Identifier {
+ type: "Identifier",
+ value: "type",
+
+ range: [73, 77],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 4, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Uppercase",
+
+ range: [78, 87],
+ loc: {
+ start: { column: 5, line: 3 },
+ end: { column: 14, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "<",
+
+ range: [87, 88],
+ loc: {
+ start: { column: 14, line: 3 },
+ end: { column: 15, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "S",
+
+ range: [88, 89],
+ loc: {
+ start: { column: 15, line: 3 },
+ end: { column: 16, line: 3 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "extends",
+
+ range: [90, 97],
+ loc: {
+ start: { column: 17, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "string",
+
+ range: [98, 104],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 31, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ">",
+
+ range: [104, 105],
+ loc: {
+ start: { column: 31, line: 3 },
+ end: { column: 32, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [106, 107],
+ loc: {
+ start: { column: 33, line: 3 },
+ end: { column: 34, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "intrinsic",
+
+ range: [108, 117],
+ loc: {
+ start: { column: 35, line: 3 },
+ end: { column: 44, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [117, 118],
+ loc: {
+ start: { column: 44, line: 3 },
+ end: { column: 45, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "type",
+
+ range: [119, 123],
+ loc: {
+ start: { column: 0, line: 4 },
+ end: { column: 4, line: 4 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Lowercase",
+
+ range: [124, 133],
+ loc: {
+ start: { column: 5, line: 4 },
+ end: { column: 14, line: 4 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "<",
+
+ range: [133, 134],
+ loc: {
+ start: { column: 14, line: 4 },
+ end: { column: 15, line: 4 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "S",
+
+ range: [134, 135],
+ loc: {
+ start: { column: 15, line: 4 },
+ end: { column: 16, line: 4 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "extends",
+
+ range: [136, 143],
+ loc: {
+ start: { column: 17, line: 4 },
+ end: { column: 24, line: 4 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "string",
+
+ range: [144, 150],
+ loc: {
+ start: { column: 25, line: 4 },
+ end: { column: 31, line: 4 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ">",
+
+ range: [150, 151],
+ loc: {
+ start: { column: 31, line: 4 },
+ end: { column: 32, line: 4 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [152, 153],
+ loc: {
+ start: { column: 33, line: 4 },
+ end: { column: 34, line: 4 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "intrinsic",
+
+ range: [154, 163],
+ loc: {
+ start: { column: 35, line: 4 },
+ end: { column: 44, line: 4 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [163, 164],
+ loc: {
+ start: { column: 44, line: 4 },
+ end: { column: 45, line: 4 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "type",
+
+ range: [165, 169],
+ loc: {
+ start: { column: 0, line: 5 },
+ end: { column: 4, line: 5 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Capitalize",
+
+ range: [170, 180],
+ loc: {
+ start: { column: 5, line: 5 },
+ end: { column: 15, line: 5 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "<",
+
+ range: [180, 181],
+ loc: {
+ start: { column: 15, line: 5 },
+ end: { column: 16, line: 5 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "S",
+
+ range: [181, 182],
+ loc: {
+ start: { column: 16, line: 5 },
+ end: { column: 17, line: 5 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "extends",
+
+ range: [183, 190],
+ loc: {
+ start: { column: 18, line: 5 },
+ end: { column: 25, line: 5 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "string",
+
+ range: [191, 197],
+ loc: {
+ start: { column: 26, line: 5 },
+ end: { column: 32, line: 5 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ">",
+
+ range: [197, 198],
+ loc: {
+ start: { column: 32, line: 5 },
+ end: { column: 33, line: 5 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [199, 200],
+ loc: {
+ start: { column: 34, line: 5 },
+ end: { column: 35, line: 5 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "intrinsic",
+
+ range: [201, 210],
+ loc: {
+ start: { column: 36, line: 5 },
+ end: { column: 45, line: 5 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [210, 211],
+ loc: {
+ start: { column: 45, line: 5 },
+ end: { column: 46, line: 5 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "type",
+
+ range: [212, 216],
+ loc: {
+ start: { column: 0, line: 6 },
+ end: { column: 4, line: 6 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Uncapitalize",
+
+ range: [217, 229],
+ loc: {
+ start: { column: 5, line: 6 },
+ end: { column: 17, line: 6 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "<",
+
+ range: [229, 230],
+ loc: {
+ start: { column: 17, line: 6 },
+ end: { column: 18, line: 6 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "S",
+
+ range: [230, 231],
+ loc: {
+ start: { column: 18, line: 6 },
+ end: { column: 19, line: 6 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "extends",
+
+ range: [232, 239],
+ loc: {
+ start: { column: 20, line: 6 },
+ end: { column: 27, line: 6 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "string",
+
+ range: [240, 246],
+ loc: {
+ start: { column: 28, line: 6 },
+ end: { column: 34, line: 6 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ">",
+
+ range: [246, 247],
+ loc: {
+ start: { column: 34, line: 6 },
+ end: { column: 35, line: 6 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [248, 249],
+ loc: {
+ start: { column: 36, line: 6 },
+ end: { column: 37, line: 6 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "intrinsic",
+
+ range: [250, 259],
+ loc: {
+ start: { column: 38, line: 6 },
+ end: { column: 47, line: 6 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [259, 260],
+ loc: {
+ start: { column: 47, line: 6 },
+ end: { column: 48, line: 6 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/3-Babel-AST.shot
new file mode 100644
index 000000000000..00e093d9f435
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/3-Babel-AST.shot
@@ -0,0 +1,248 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics intrinsic-keyword Babel - AST 1`] = `
+Program {
+ type: "Program",
+ body: Array [
+ TSTypeAliasDeclaration {
+ type: "TSTypeAliasDeclaration",
+ id: Identifier {
+ type: "Identifier",
+ name: "Uppercase",
+
+ range: [78, 87],
+ loc: {
+ start: { column: 5, line: 3 },
+ end: { column: 14, line: 3 },
+ },
+ },
+ typeAnnotation: TSIntrinsicKeyword {
+ type: "TSIntrinsicKeyword",
+
+ range: [108, 117],
+ loc: {
+ start: { column: 35, line: 3 },
+ end: { column: 44, line: 3 },
+ },
+ },
+ typeParameters: TSTypeParameterDeclaration {
+ type: "TSTypeParameterDeclaration",
+ params: Array [
+ TSTypeParameter {
+ type: "TSTypeParameter",
+ constraint: TSStringKeyword {
+ type: "TSStringKeyword",
+
+ range: [98, 104],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 31, line: 3 },
+ },
+ },
+ name: "S",
+
+ range: [88, 104],
+ loc: {
+ start: { column: 15, line: 3 },
+ end: { column: 31, line: 3 },
+ },
+ },
+ ],
+
+ range: [87, 105],
+ loc: {
+ start: { column: 14, line: 3 },
+ end: { column: 32, line: 3 },
+ },
+ },
+
+ range: [73, 118],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 45, line: 3 },
+ },
+ },
+ TSTypeAliasDeclaration {
+ type: "TSTypeAliasDeclaration",
+ id: Identifier {
+ type: "Identifier",
+ name: "Lowercase",
+
+ range: [124, 133],
+ loc: {
+ start: { column: 5, line: 4 },
+ end: { column: 14, line: 4 },
+ },
+ },
+ typeAnnotation: TSIntrinsicKeyword {
+ type: "TSIntrinsicKeyword",
+
+ range: [154, 163],
+ loc: {
+ start: { column: 35, line: 4 },
+ end: { column: 44, line: 4 },
+ },
+ },
+ typeParameters: TSTypeParameterDeclaration {
+ type: "TSTypeParameterDeclaration",
+ params: Array [
+ TSTypeParameter {
+ type: "TSTypeParameter",
+ constraint: TSStringKeyword {
+ type: "TSStringKeyword",
+
+ range: [144, 150],
+ loc: {
+ start: { column: 25, line: 4 },
+ end: { column: 31, line: 4 },
+ },
+ },
+ name: "S",
+
+ range: [134, 150],
+ loc: {
+ start: { column: 15, line: 4 },
+ end: { column: 31, line: 4 },
+ },
+ },
+ ],
+
+ range: [133, 151],
+ loc: {
+ start: { column: 14, line: 4 },
+ end: { column: 32, line: 4 },
+ },
+ },
+
+ range: [119, 164],
+ loc: {
+ start: { column: 0, line: 4 },
+ end: { column: 45, line: 4 },
+ },
+ },
+ TSTypeAliasDeclaration {
+ type: "TSTypeAliasDeclaration",
+ id: Identifier {
+ type: "Identifier",
+ name: "Capitalize",
+
+ range: [170, 180],
+ loc: {
+ start: { column: 5, line: 5 },
+ end: { column: 15, line: 5 },
+ },
+ },
+ typeAnnotation: TSIntrinsicKeyword {
+ type: "TSIntrinsicKeyword",
+
+ range: [201, 210],
+ loc: {
+ start: { column: 36, line: 5 },
+ end: { column: 45, line: 5 },
+ },
+ },
+ typeParameters: TSTypeParameterDeclaration {
+ type: "TSTypeParameterDeclaration",
+ params: Array [
+ TSTypeParameter {
+ type: "TSTypeParameter",
+ constraint: TSStringKeyword {
+ type: "TSStringKeyword",
+
+ range: [191, 197],
+ loc: {
+ start: { column: 26, line: 5 },
+ end: { column: 32, line: 5 },
+ },
+ },
+ name: "S",
+
+ range: [181, 197],
+ loc: {
+ start: { column: 16, line: 5 },
+ end: { column: 32, line: 5 },
+ },
+ },
+ ],
+
+ range: [180, 198],
+ loc: {
+ start: { column: 15, line: 5 },
+ end: { column: 33, line: 5 },
+ },
+ },
+
+ range: [165, 211],
+ loc: {
+ start: { column: 0, line: 5 },
+ end: { column: 46, line: 5 },
+ },
+ },
+ TSTypeAliasDeclaration {
+ type: "TSTypeAliasDeclaration",
+ id: Identifier {
+ type: "Identifier",
+ name: "Uncapitalize",
+
+ range: [217, 229],
+ loc: {
+ start: { column: 5, line: 6 },
+ end: { column: 17, line: 6 },
+ },
+ },
+ typeAnnotation: TSIntrinsicKeyword {
+ type: "TSIntrinsicKeyword",
+
+ range: [250, 259],
+ loc: {
+ start: { column: 38, line: 6 },
+ end: { column: 47, line: 6 },
+ },
+ },
+ typeParameters: TSTypeParameterDeclaration {
+ type: "TSTypeParameterDeclaration",
+ params: Array [
+ TSTypeParameter {
+ type: "TSTypeParameter",
+ constraint: TSStringKeyword {
+ type: "TSStringKeyword",
+
+ range: [240, 246],
+ loc: {
+ start: { column: 28, line: 6 },
+ end: { column: 34, line: 6 },
+ },
+ },
+ name: "S",
+
+ range: [230, 246],
+ loc: {
+ start: { column: 18, line: 6 },
+ end: { column: 34, line: 6 },
+ },
+ },
+ ],
+
+ range: [229, 247],
+ loc: {
+ start: { column: 17, line: 6 },
+ end: { column: 35, line: 6 },
+ },
+ },
+
+ range: [212, 260],
+ loc: {
+ start: { column: 0, line: 6 },
+ end: { column: 48, line: 6 },
+ },
+ },
+ ],
+ sourceType: "script",
+
+ range: [73, 261],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 0, line: 7 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/4-Babel-Tokens.shot
new file mode 100644
index 000000000000..4cad27453916
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/4-Babel-Tokens.shot
@@ -0,0 +1,406 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics intrinsic-keyword Babel - Tokens 1`] = `
+Array [
+ Identifier {
+ type: "Identifier",
+ value: "type",
+
+ range: [73, 77],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 4, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Uppercase",
+
+ range: [78, 87],
+ loc: {
+ start: { column: 5, line: 3 },
+ end: { column: 14, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "<",
+
+ range: [87, 88],
+ loc: {
+ start: { column: 14, line: 3 },
+ end: { column: 15, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "S",
+
+ range: [88, 89],
+ loc: {
+ start: { column: 15, line: 3 },
+ end: { column: 16, line: 3 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "extends",
+
+ range: [90, 97],
+ loc: {
+ start: { column: 17, line: 3 },
+ end: { column: 24, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "string",
+
+ range: [98, 104],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 31, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ">",
+
+ range: [104, 105],
+ loc: {
+ start: { column: 31, line: 3 },
+ end: { column: 32, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [106, 107],
+ loc: {
+ start: { column: 33, line: 3 },
+ end: { column: 34, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "intrinsic",
+
+ range: [108, 117],
+ loc: {
+ start: { column: 35, line: 3 },
+ end: { column: 44, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [117, 118],
+ loc: {
+ start: { column: 44, line: 3 },
+ end: { column: 45, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "type",
+
+ range: [119, 123],
+ loc: {
+ start: { column: 0, line: 4 },
+ end: { column: 4, line: 4 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Lowercase",
+
+ range: [124, 133],
+ loc: {
+ start: { column: 5, line: 4 },
+ end: { column: 14, line: 4 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "<",
+
+ range: [133, 134],
+ loc: {
+ start: { column: 14, line: 4 },
+ end: { column: 15, line: 4 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "S",
+
+ range: [134, 135],
+ loc: {
+ start: { column: 15, line: 4 },
+ end: { column: 16, line: 4 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "extends",
+
+ range: [136, 143],
+ loc: {
+ start: { column: 17, line: 4 },
+ end: { column: 24, line: 4 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "string",
+
+ range: [144, 150],
+ loc: {
+ start: { column: 25, line: 4 },
+ end: { column: 31, line: 4 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ">",
+
+ range: [150, 151],
+ loc: {
+ start: { column: 31, line: 4 },
+ end: { column: 32, line: 4 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [152, 153],
+ loc: {
+ start: { column: 33, line: 4 },
+ end: { column: 34, line: 4 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "intrinsic",
+
+ range: [154, 163],
+ loc: {
+ start: { column: 35, line: 4 },
+ end: { column: 44, line: 4 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [163, 164],
+ loc: {
+ start: { column: 44, line: 4 },
+ end: { column: 45, line: 4 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "type",
+
+ range: [165, 169],
+ loc: {
+ start: { column: 0, line: 5 },
+ end: { column: 4, line: 5 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Capitalize",
+
+ range: [170, 180],
+ loc: {
+ start: { column: 5, line: 5 },
+ end: { column: 15, line: 5 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "<",
+
+ range: [180, 181],
+ loc: {
+ start: { column: 15, line: 5 },
+ end: { column: 16, line: 5 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "S",
+
+ range: [181, 182],
+ loc: {
+ start: { column: 16, line: 5 },
+ end: { column: 17, line: 5 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "extends",
+
+ range: [183, 190],
+ loc: {
+ start: { column: 18, line: 5 },
+ end: { column: 25, line: 5 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "string",
+
+ range: [191, 197],
+ loc: {
+ start: { column: 26, line: 5 },
+ end: { column: 32, line: 5 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ">",
+
+ range: [197, 198],
+ loc: {
+ start: { column: 32, line: 5 },
+ end: { column: 33, line: 5 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [199, 200],
+ loc: {
+ start: { column: 34, line: 5 },
+ end: { column: 35, line: 5 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "intrinsic",
+
+ range: [201, 210],
+ loc: {
+ start: { column: 36, line: 5 },
+ end: { column: 45, line: 5 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [210, 211],
+ loc: {
+ start: { column: 45, line: 5 },
+ end: { column: 46, line: 5 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "type",
+
+ range: [212, 216],
+ loc: {
+ start: { column: 0, line: 6 },
+ end: { column: 4, line: 6 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "Uncapitalize",
+
+ range: [217, 229],
+ loc: {
+ start: { column: 5, line: 6 },
+ end: { column: 17, line: 6 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "<",
+
+ range: [229, 230],
+ loc: {
+ start: { column: 17, line: 6 },
+ end: { column: 18, line: 6 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "S",
+
+ range: [230, 231],
+ loc: {
+ start: { column: 18, line: 6 },
+ end: { column: 19, line: 6 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "extends",
+
+ range: [232, 239],
+ loc: {
+ start: { column: 20, line: 6 },
+ end: { column: 27, line: 6 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "string",
+
+ range: [240, 246],
+ loc: {
+ start: { column: 28, line: 6 },
+ end: { column: 34, line: 6 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ">",
+
+ range: [246, 247],
+ loc: {
+ start: { column: 34, line: 6 },
+ end: { column: 35, line: 6 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [248, 249],
+ loc: {
+ start: { column: 36, line: 6 },
+ end: { column: 37, line: 6 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "intrinsic",
+
+ range: [250, 259],
+ loc: {
+ start: { column: 38, line: 6 },
+ end: { column: 47, line: 6 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [259, 260],
+ loc: {
+ start: { column: 47, line: 6 },
+ end: { column: 48, line: 6 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/5-AST-Alignment-AST.shot
new file mode 100644
index 000000000000..69311fed2219
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/5-AST-Alignment-AST.shot
@@ -0,0 +1,300 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics intrinsic-keyword AST Alignment - AST 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Program {
+ type: 'Program',
+ body: Array [
+ TSTypeAliasDeclaration {
+ type: 'TSTypeAliasDeclaration',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'Uppercase',
+
+ range: [78, 87],
+ loc: {
+ start: { column: 5, line: 3 },
+ end: { column: 14, line: 3 },
+ },
+ },
+ typeAnnotation: TSIntrinsicKeyword {
+ type: 'TSIntrinsicKeyword',
+
+ range: [108, 117],
+ loc: {
+ start: { column: 35, line: 3 },
+ end: { column: 44, line: 3 },
+ },
+ },
+ typeParameters: TSTypeParameterDeclaration {
+ type: 'TSTypeParameterDeclaration',
+ params: Array [
+ TSTypeParameter {
+ type: 'TSTypeParameter',
+ constraint: TSStringKeyword {
+ type: 'TSStringKeyword',
+
+ range: [98, 104],
+ loc: {
+ start: { column: 25, line: 3 },
+ end: { column: 31, line: 3 },
+ },
+ },
+- in: false,
+- name: Identifier {
+- type: 'Identifier',
+- name: 'S',
+-
+- range: [88, 89],
+- loc: {
+- start: { column: 15, line: 3 },
+- end: { column: 16, line: 3 },
+- },
+- },
+- out: false,
++ name: 'S',
+
+ range: [88, 104],
+ loc: {
+ start: { column: 15, line: 3 },
+ end: { column: 31, line: 3 },
+ },
+ },
+ ],
+
+ range: [87, 105],
+ loc: {
+ start: { column: 14, line: 3 },
+ end: { column: 32, line: 3 },
+ },
+ },
+
+ range: [73, 118],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 45, line: 3 },
+ },
+ },
+ TSTypeAliasDeclaration {
+ type: 'TSTypeAliasDeclaration',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'Lowercase',
+
+ range: [124, 133],
+ loc: {
+ start: { column: 5, line: 4 },
+ end: { column: 14, line: 4 },
+ },
+ },
+ typeAnnotation: TSIntrinsicKeyword {
+ type: 'TSIntrinsicKeyword',
+
+ range: [154, 163],
+ loc: {
+ start: { column: 35, line: 4 },
+ end: { column: 44, line: 4 },
+ },
+ },
+ typeParameters: TSTypeParameterDeclaration {
+ type: 'TSTypeParameterDeclaration',
+ params: Array [
+ TSTypeParameter {
+ type: 'TSTypeParameter',
+ constraint: TSStringKeyword {
+ type: 'TSStringKeyword',
+
+ range: [144, 150],
+ loc: {
+ start: { column: 25, line: 4 },
+ end: { column: 31, line: 4 },
+- },
+- },
+- in: false,
+- name: Identifier {
+- type: 'Identifier',
+- name: 'S',
+-
+- range: [134, 135],
+- loc: {
+- start: { column: 15, line: 4 },
+- end: { column: 16, line: 4 },
+ },
+ },
+- out: false,
++ name: 'S',
+
+ range: [134, 150],
+ loc: {
+ start: { column: 15, line: 4 },
+ end: { column: 31, line: 4 },
+ },
+ },
+ ],
+
+ range: [133, 151],
+ loc: {
+ start: { column: 14, line: 4 },
+ end: { column: 32, line: 4 },
+ },
+ },
+
+ range: [119, 164],
+ loc: {
+ start: { column: 0, line: 4 },
+ end: { column: 45, line: 4 },
+ },
+ },
+ TSTypeAliasDeclaration {
+ type: 'TSTypeAliasDeclaration',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'Capitalize',
+
+ range: [170, 180],
+ loc: {
+ start: { column: 5, line: 5 },
+ end: { column: 15, line: 5 },
+ },
+ },
+ typeAnnotation: TSIntrinsicKeyword {
+ type: 'TSIntrinsicKeyword',
+
+ range: [201, 210],
+ loc: {
+ start: { column: 36, line: 5 },
+ end: { column: 45, line: 5 },
+ },
+ },
+ typeParameters: TSTypeParameterDeclaration {
+ type: 'TSTypeParameterDeclaration',
+ params: Array [
+ TSTypeParameter {
+ type: 'TSTypeParameter',
+ constraint: TSStringKeyword {
+ type: 'TSStringKeyword',
+
+ range: [191, 197],
+ loc: {
+ start: { column: 26, line: 5 },
+ end: { column: 32, line: 5 },
+- },
+- },
+- in: false,
+- name: Identifier {
+- type: 'Identifier',
+- name: 'S',
+-
+- range: [181, 182],
+- loc: {
+- start: { column: 16, line: 5 },
+- end: { column: 17, line: 5 },
+ },
+ },
+- out: false,
++ name: 'S',
+
+ range: [181, 197],
+ loc: {
+ start: { column: 16, line: 5 },
+ end: { column: 32, line: 5 },
+ },
+ },
+ ],
+
+ range: [180, 198],
+ loc: {
+ start: { column: 15, line: 5 },
+ end: { column: 33, line: 5 },
+ },
+ },
+
+ range: [165, 211],
+ loc: {
+ start: { column: 0, line: 5 },
+ end: { column: 46, line: 5 },
+ },
+ },
+ TSTypeAliasDeclaration {
+ type: 'TSTypeAliasDeclaration',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'Uncapitalize',
+
+ range: [217, 229],
+ loc: {
+ start: { column: 5, line: 6 },
+ end: { column: 17, line: 6 },
+ },
+ },
+ typeAnnotation: TSIntrinsicKeyword {
+ type: 'TSIntrinsicKeyword',
+
+ range: [250, 259],
+ loc: {
+ start: { column: 38, line: 6 },
+ end: { column: 47, line: 6 },
+ },
+ },
+ typeParameters: TSTypeParameterDeclaration {
+ type: 'TSTypeParameterDeclaration',
+ params: Array [
+ TSTypeParameter {
+ type: 'TSTypeParameter',
+ constraint: TSStringKeyword {
+ type: 'TSStringKeyword',
+
+ range: [240, 246],
+ loc: {
+ start: { column: 28, line: 6 },
+ end: { column: 34, line: 6 },
+ },
+ },
+- in: false,
+- name: Identifier {
+- type: 'Identifier',
+- name: 'S',
+-
+- range: [230, 231],
+- loc: {
+- start: { column: 18, line: 6 },
+- end: { column: 19, line: 6 },
+- },
+- },
+- out: false,
++ name: 'S',
+
+ range: [230, 246],
+ loc: {
+ start: { column: 18, line: 6 },
+ end: { column: 34, line: 6 },
+ },
+ },
+ ],
+
+ range: [229, 247],
+ loc: {
+ start: { column: 17, line: 6 },
+ end: { column: 35, line: 6 },
+ },
+ },
+
+ range: [212, 260],
+ loc: {
+ start: { column: 0, line: 6 },
+ end: { column: 48, line: 6 },
+ },
+ },
+ ],
+ sourceType: 'script',
+
+ range: [73, 261],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 0, line: 7 },
+ },
+ }"
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..0ff10a84d493
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/intrinsic-keyword/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics intrinsic-keyword AST Alignment - Token 1`] = `
+"Snapshot Diff:
+Compared values have no visual difference."
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/fixture.ts b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/fixture.ts
new file mode 100644
index 000000000000..671b1a1af577
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/fixture.ts
@@ -0,0 +1,3 @@
+// TODO: This fixture might be too large, and if so should be split up.
+
+type x = keyof foo;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/1-TSESTree-AST.shot
new file mode 100644
index 000000000000..b5752b0534b8
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/1-TSESTree-AST.shot
@@ -0,0 +1,64 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics keyof-operator TSESTree - AST 1`] = `
+Program {
+ type: "Program",
+ body: Array [
+ TSTypeAliasDeclaration {
+ type: "TSTypeAliasDeclaration",
+ id: Identifier {
+ type: "Identifier",
+ name: "x",
+
+ range: [78, 79],
+ loc: {
+ start: { column: 5, line: 3 },
+ end: { column: 6, line: 3 },
+ },
+ },
+ typeAnnotation: TSTypeOperator {
+ type: "TSTypeOperator",
+ operator: "keyof",
+ typeAnnotation: TSTypeReference {
+ type: "TSTypeReference",
+ typeName: Identifier {
+ type: "Identifier",
+ name: "foo",
+
+ range: [88, 91],
+ loc: {
+ start: { column: 15, line: 3 },
+ end: { column: 18, line: 3 },
+ },
+ },
+
+ range: [88, 91],
+ loc: {
+ start: { column: 15, line: 3 },
+ end: { column: 18, line: 3 },
+ },
+ },
+
+ range: [82, 91],
+ loc: {
+ start: { column: 9, line: 3 },
+ end: { column: 18, line: 3 },
+ },
+ },
+
+ range: [73, 92],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 19, line: 3 },
+ },
+ },
+ ],
+ sourceType: "script",
+
+ range: [73, 93],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 0, line: 4 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/2-TSESTree-Tokens.shot
new file mode 100644
index 000000000000..6a574fb8e5e2
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/2-TSESTree-Tokens.shot
@@ -0,0 +1,66 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics keyof-operator TSESTree - Tokens 1`] = `
+Array [
+ Identifier {
+ type: "Identifier",
+ value: "type",
+
+ range: [73, 77],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 4, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "x",
+
+ range: [78, 79],
+ loc: {
+ start: { column: 5, line: 3 },
+ end: { column: 6, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [80, 81],
+ loc: {
+ start: { column: 7, line: 3 },
+ end: { column: 8, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "keyof",
+
+ range: [82, 87],
+ loc: {
+ start: { column: 9, line: 3 },
+ end: { column: 14, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "foo",
+
+ range: [88, 91],
+ loc: {
+ start: { column: 15, line: 3 },
+ end: { column: 18, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [91, 92],
+ loc: {
+ start: { column: 18, line: 3 },
+ end: { column: 19, line: 3 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/3-Babel-AST.shot
new file mode 100644
index 000000000000..0549f5eea457
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/3-Babel-AST.shot
@@ -0,0 +1,64 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics keyof-operator Babel - AST 1`] = `
+Program {
+ type: "Program",
+ body: Array [
+ TSTypeAliasDeclaration {
+ type: "TSTypeAliasDeclaration",
+ id: Identifier {
+ type: "Identifier",
+ name: "x",
+
+ range: [78, 79],
+ loc: {
+ start: { column: 5, line: 3 },
+ end: { column: 6, line: 3 },
+ },
+ },
+ typeAnnotation: TSTypeOperator {
+ type: "TSTypeOperator",
+ operator: "keyof",
+ typeAnnotation: TSTypeReference {
+ type: "TSTypeReference",
+ typeName: Identifier {
+ type: "Identifier",
+ name: "foo",
+
+ range: [88, 91],
+ loc: {
+ start: { column: 15, line: 3 },
+ end: { column: 18, line: 3 },
+ },
+ },
+
+ range: [88, 91],
+ loc: {
+ start: { column: 15, line: 3 },
+ end: { column: 18, line: 3 },
+ },
+ },
+
+ range: [82, 91],
+ loc: {
+ start: { column: 9, line: 3 },
+ end: { column: 18, line: 3 },
+ },
+ },
+
+ range: [73, 92],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 19, line: 3 },
+ },
+ },
+ ],
+ sourceType: "script",
+
+ range: [73, 93],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 0, line: 4 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/4-Babel-Tokens.shot
new file mode 100644
index 000000000000..4d1d407330a3
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/4-Babel-Tokens.shot
@@ -0,0 +1,66 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics keyof-operator Babel - Tokens 1`] = `
+Array [
+ Identifier {
+ type: "Identifier",
+ value: "type",
+
+ range: [73, 77],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 4, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "x",
+
+ range: [78, 79],
+ loc: {
+ start: { column: 5, line: 3 },
+ end: { column: 6, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [80, 81],
+ loc: {
+ start: { column: 7, line: 3 },
+ end: { column: 8, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "keyof",
+
+ range: [82, 87],
+ loc: {
+ start: { column: 9, line: 3 },
+ end: { column: 14, line: 3 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "foo",
+
+ range: [88, 91],
+ loc: {
+ start: { column: 15, line: 3 },
+ end: { column: 18, line: 3 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [91, 92],
+ loc: {
+ start: { column: 18, line: 3 },
+ end: { column: 19, line: 3 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/5-AST-Alignment-AST.shot
new file mode 100644
index 000000000000..066f52e976fa
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/5-AST-Alignment-AST.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics keyof-operator AST Alignment - AST 1`] = `
+"Snapshot Diff:
+Compared values have no visual difference."
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..dc8c1f1bcc26
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyof-operator/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,6 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics keyof-operator AST Alignment - Token 1`] = `
+"Snapshot Diff:
+Compared values have no visual difference."
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/fixture.ts b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/fixture.ts
new file mode 100644
index 000000000000..dc3991668144
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/fixture.ts
@@ -0,0 +1,79 @@
+// TODO: This fixture might be too large, and if so should be split up.
+
+{
+ const abstract = 1;
+ const as = 1;
+ const asserts = 1;
+ const any = 1;
+ const async = 1;
+ const await = 1;
+ const boolean = 1;
+ const constructor = 1;
+ const declare = 1;
+ const get = 1;
+ const infer = 1;
+ const is = 1;
+ const keyof = 1;
+ const module = 1;
+ const namespace = 1;
+ const never = 1;
+ const readonly = 1;
+ const require = 1;
+ const number = 1;
+ const object = 1;
+ const set = 1;
+ const string = 1;
+ const symbol = 1;
+ const type = 1;
+ const undefined = 1;
+ const unique = 1;
+ const unknown = 1;
+ const from = 1;
+ const global = 1;
+ const bigint = 1;
+ const of = 1;
+}
+
+import {
+ abstract,
+ as,
+ asserts,
+ any,
+ async,
+ await,
+ boolean,
+ constructor,
+ declare,
+ get,
+ infer,
+ is,
+ keyof,
+ module,
+ namespace,
+ never,
+ readonly,
+ require,
+ number,
+ object,
+ set,
+ string,
+ symbol,
+ type,
+ undefined,
+ unique,
+ unknown,
+ from,
+ global,
+ bigint,
+ of,
+} from 'fake-module';
+
+interface X {}
+class C implements X {
+ static a() {}
+ private b() {}
+ public c() {}
+ protected *d() {
+ let x = yield;
+ }
+}
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/1-TSESTree-AST.shot
new file mode 100644
index 000000000000..962ee2d70e09
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/1-TSESTree-AST.shot
@@ -0,0 +1,2598 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics keyword-variables TSESTree - AST 1`] = `
+Program {
+ type: "Program",
+ body: Array [
+ BlockStatement {
+ type: "BlockStatement",
+ body: Array [
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "abstract",
+
+ range: [83, 91],
+ loc: {
+ start: { column: 8, line: 4 },
+ end: { column: 16, line: 4 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [94, 95],
+ loc: {
+ start: { column: 19, line: 4 },
+ end: { column: 20, line: 4 },
+ },
+ },
+
+ range: [83, 95],
+ loc: {
+ start: { column: 8, line: 4 },
+ end: { column: 20, line: 4 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [77, 96],
+ loc: {
+ start: { column: 2, line: 4 },
+ end: { column: 21, line: 4 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "as",
+
+ range: [105, 107],
+ loc: {
+ start: { column: 8, line: 5 },
+ end: { column: 10, line: 5 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [110, 111],
+ loc: {
+ start: { column: 13, line: 5 },
+ end: { column: 14, line: 5 },
+ },
+ },
+
+ range: [105, 111],
+ loc: {
+ start: { column: 8, line: 5 },
+ end: { column: 14, line: 5 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [99, 112],
+ loc: {
+ start: { column: 2, line: 5 },
+ end: { column: 15, line: 5 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "asserts",
+
+ range: [121, 128],
+ loc: {
+ start: { column: 8, line: 6 },
+ end: { column: 15, line: 6 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [131, 132],
+ loc: {
+ start: { column: 18, line: 6 },
+ end: { column: 19, line: 6 },
+ },
+ },
+
+ range: [121, 132],
+ loc: {
+ start: { column: 8, line: 6 },
+ end: { column: 19, line: 6 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [115, 133],
+ loc: {
+ start: { column: 2, line: 6 },
+ end: { column: 20, line: 6 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "any",
+
+ range: [142, 145],
+ loc: {
+ start: { column: 8, line: 7 },
+ end: { column: 11, line: 7 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [148, 149],
+ loc: {
+ start: { column: 14, line: 7 },
+ end: { column: 15, line: 7 },
+ },
+ },
+
+ range: [142, 149],
+ loc: {
+ start: { column: 8, line: 7 },
+ end: { column: 15, line: 7 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [136, 150],
+ loc: {
+ start: { column: 2, line: 7 },
+ end: { column: 16, line: 7 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "async",
+
+ range: [159, 164],
+ loc: {
+ start: { column: 8, line: 8 },
+ end: { column: 13, line: 8 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [167, 168],
+ loc: {
+ start: { column: 16, line: 8 },
+ end: { column: 17, line: 8 },
+ },
+ },
+
+ range: [159, 168],
+ loc: {
+ start: { column: 8, line: 8 },
+ end: { column: 17, line: 8 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [153, 169],
+ loc: {
+ start: { column: 2, line: 8 },
+ end: { column: 18, line: 8 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "await",
+
+ range: [178, 183],
+ loc: {
+ start: { column: 8, line: 9 },
+ end: { column: 13, line: 9 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [186, 187],
+ loc: {
+ start: { column: 16, line: 9 },
+ end: { column: 17, line: 9 },
+ },
+ },
+
+ range: [178, 187],
+ loc: {
+ start: { column: 8, line: 9 },
+ end: { column: 17, line: 9 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [172, 188],
+ loc: {
+ start: { column: 2, line: 9 },
+ end: { column: 18, line: 9 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "boolean",
+
+ range: [197, 204],
+ loc: {
+ start: { column: 8, line: 10 },
+ end: { column: 15, line: 10 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [207, 208],
+ loc: {
+ start: { column: 18, line: 10 },
+ end: { column: 19, line: 10 },
+ },
+ },
+
+ range: [197, 208],
+ loc: {
+ start: { column: 8, line: 10 },
+ end: { column: 19, line: 10 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [191, 209],
+ loc: {
+ start: { column: 2, line: 10 },
+ end: { column: 20, line: 10 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "constructor",
+
+ range: [218, 229],
+ loc: {
+ start: { column: 8, line: 11 },
+ end: { column: 19, line: 11 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [232, 233],
+ loc: {
+ start: { column: 22, line: 11 },
+ end: { column: 23, line: 11 },
+ },
+ },
+
+ range: [218, 233],
+ loc: {
+ start: { column: 8, line: 11 },
+ end: { column: 23, line: 11 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [212, 234],
+ loc: {
+ start: { column: 2, line: 11 },
+ end: { column: 24, line: 11 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "declare",
+
+ range: [243, 250],
+ loc: {
+ start: { column: 8, line: 12 },
+ end: { column: 15, line: 12 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [253, 254],
+ loc: {
+ start: { column: 18, line: 12 },
+ end: { column: 19, line: 12 },
+ },
+ },
+
+ range: [243, 254],
+ loc: {
+ start: { column: 8, line: 12 },
+ end: { column: 19, line: 12 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [237, 255],
+ loc: {
+ start: { column: 2, line: 12 },
+ end: { column: 20, line: 12 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "get",
+
+ range: [264, 267],
+ loc: {
+ start: { column: 8, line: 13 },
+ end: { column: 11, line: 13 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [270, 271],
+ loc: {
+ start: { column: 14, line: 13 },
+ end: { column: 15, line: 13 },
+ },
+ },
+
+ range: [264, 271],
+ loc: {
+ start: { column: 8, line: 13 },
+ end: { column: 15, line: 13 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [258, 272],
+ loc: {
+ start: { column: 2, line: 13 },
+ end: { column: 16, line: 13 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "infer",
+
+ range: [281, 286],
+ loc: {
+ start: { column: 8, line: 14 },
+ end: { column: 13, line: 14 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [289, 290],
+ loc: {
+ start: { column: 16, line: 14 },
+ end: { column: 17, line: 14 },
+ },
+ },
+
+ range: [281, 290],
+ loc: {
+ start: { column: 8, line: 14 },
+ end: { column: 17, line: 14 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [275, 291],
+ loc: {
+ start: { column: 2, line: 14 },
+ end: { column: 18, line: 14 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "is",
+
+ range: [300, 302],
+ loc: {
+ start: { column: 8, line: 15 },
+ end: { column: 10, line: 15 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [305, 306],
+ loc: {
+ start: { column: 13, line: 15 },
+ end: { column: 14, line: 15 },
+ },
+ },
+
+ range: [300, 306],
+ loc: {
+ start: { column: 8, line: 15 },
+ end: { column: 14, line: 15 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [294, 307],
+ loc: {
+ start: { column: 2, line: 15 },
+ end: { column: 15, line: 15 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "keyof",
+
+ range: [316, 321],
+ loc: {
+ start: { column: 8, line: 16 },
+ end: { column: 13, line: 16 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [324, 325],
+ loc: {
+ start: { column: 16, line: 16 },
+ end: { column: 17, line: 16 },
+ },
+ },
+
+ range: [316, 325],
+ loc: {
+ start: { column: 8, line: 16 },
+ end: { column: 17, line: 16 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [310, 326],
+ loc: {
+ start: { column: 2, line: 16 },
+ end: { column: 18, line: 16 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "module",
+
+ range: [335, 341],
+ loc: {
+ start: { column: 8, line: 17 },
+ end: { column: 14, line: 17 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [344, 345],
+ loc: {
+ start: { column: 17, line: 17 },
+ end: { column: 18, line: 17 },
+ },
+ },
+
+ range: [335, 345],
+ loc: {
+ start: { column: 8, line: 17 },
+ end: { column: 18, line: 17 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [329, 346],
+ loc: {
+ start: { column: 2, line: 17 },
+ end: { column: 19, line: 17 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "namespace",
+
+ range: [355, 364],
+ loc: {
+ start: { column: 8, line: 18 },
+ end: { column: 17, line: 18 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [367, 368],
+ loc: {
+ start: { column: 20, line: 18 },
+ end: { column: 21, line: 18 },
+ },
+ },
+
+ range: [355, 368],
+ loc: {
+ start: { column: 8, line: 18 },
+ end: { column: 21, line: 18 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [349, 369],
+ loc: {
+ start: { column: 2, line: 18 },
+ end: { column: 22, line: 18 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "never",
+
+ range: [378, 383],
+ loc: {
+ start: { column: 8, line: 19 },
+ end: { column: 13, line: 19 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [386, 387],
+ loc: {
+ start: { column: 16, line: 19 },
+ end: { column: 17, line: 19 },
+ },
+ },
+
+ range: [378, 387],
+ loc: {
+ start: { column: 8, line: 19 },
+ end: { column: 17, line: 19 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [372, 388],
+ loc: {
+ start: { column: 2, line: 19 },
+ end: { column: 18, line: 19 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "readonly",
+
+ range: [397, 405],
+ loc: {
+ start: { column: 8, line: 20 },
+ end: { column: 16, line: 20 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [408, 409],
+ loc: {
+ start: { column: 19, line: 20 },
+ end: { column: 20, line: 20 },
+ },
+ },
+
+ range: [397, 409],
+ loc: {
+ start: { column: 8, line: 20 },
+ end: { column: 20, line: 20 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [391, 410],
+ loc: {
+ start: { column: 2, line: 20 },
+ end: { column: 21, line: 20 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "require",
+
+ range: [419, 426],
+ loc: {
+ start: { column: 8, line: 21 },
+ end: { column: 15, line: 21 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [429, 430],
+ loc: {
+ start: { column: 18, line: 21 },
+ end: { column: 19, line: 21 },
+ },
+ },
+
+ range: [419, 430],
+ loc: {
+ start: { column: 8, line: 21 },
+ end: { column: 19, line: 21 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [413, 431],
+ loc: {
+ start: { column: 2, line: 21 },
+ end: { column: 20, line: 21 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "number",
+
+ range: [440, 446],
+ loc: {
+ start: { column: 8, line: 22 },
+ end: { column: 14, line: 22 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [449, 450],
+ loc: {
+ start: { column: 17, line: 22 },
+ end: { column: 18, line: 22 },
+ },
+ },
+
+ range: [440, 450],
+ loc: {
+ start: { column: 8, line: 22 },
+ end: { column: 18, line: 22 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [434, 451],
+ loc: {
+ start: { column: 2, line: 22 },
+ end: { column: 19, line: 22 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "object",
+
+ range: [460, 466],
+ loc: {
+ start: { column: 8, line: 23 },
+ end: { column: 14, line: 23 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [469, 470],
+ loc: {
+ start: { column: 17, line: 23 },
+ end: { column: 18, line: 23 },
+ },
+ },
+
+ range: [460, 470],
+ loc: {
+ start: { column: 8, line: 23 },
+ end: { column: 18, line: 23 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [454, 471],
+ loc: {
+ start: { column: 2, line: 23 },
+ end: { column: 19, line: 23 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "set",
+
+ range: [480, 483],
+ loc: {
+ start: { column: 8, line: 24 },
+ end: { column: 11, line: 24 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [486, 487],
+ loc: {
+ start: { column: 14, line: 24 },
+ end: { column: 15, line: 24 },
+ },
+ },
+
+ range: [480, 487],
+ loc: {
+ start: { column: 8, line: 24 },
+ end: { column: 15, line: 24 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [474, 488],
+ loc: {
+ start: { column: 2, line: 24 },
+ end: { column: 16, line: 24 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "string",
+
+ range: [497, 503],
+ loc: {
+ start: { column: 8, line: 25 },
+ end: { column: 14, line: 25 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [506, 507],
+ loc: {
+ start: { column: 17, line: 25 },
+ end: { column: 18, line: 25 },
+ },
+ },
+
+ range: [497, 507],
+ loc: {
+ start: { column: 8, line: 25 },
+ end: { column: 18, line: 25 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [491, 508],
+ loc: {
+ start: { column: 2, line: 25 },
+ end: { column: 19, line: 25 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "symbol",
+
+ range: [517, 523],
+ loc: {
+ start: { column: 8, line: 26 },
+ end: { column: 14, line: 26 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [526, 527],
+ loc: {
+ start: { column: 17, line: 26 },
+ end: { column: 18, line: 26 },
+ },
+ },
+
+ range: [517, 527],
+ loc: {
+ start: { column: 8, line: 26 },
+ end: { column: 18, line: 26 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [511, 528],
+ loc: {
+ start: { column: 2, line: 26 },
+ end: { column: 19, line: 26 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "type",
+
+ range: [537, 541],
+ loc: {
+ start: { column: 8, line: 27 },
+ end: { column: 12, line: 27 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [544, 545],
+ loc: {
+ start: { column: 15, line: 27 },
+ end: { column: 16, line: 27 },
+ },
+ },
+
+ range: [537, 545],
+ loc: {
+ start: { column: 8, line: 27 },
+ end: { column: 16, line: 27 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [531, 546],
+ loc: {
+ start: { column: 2, line: 27 },
+ end: { column: 17, line: 27 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "undefined",
+
+ range: [555, 564],
+ loc: {
+ start: { column: 8, line: 28 },
+ end: { column: 17, line: 28 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [567, 568],
+ loc: {
+ start: { column: 20, line: 28 },
+ end: { column: 21, line: 28 },
+ },
+ },
+
+ range: [555, 568],
+ loc: {
+ start: { column: 8, line: 28 },
+ end: { column: 21, line: 28 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [549, 569],
+ loc: {
+ start: { column: 2, line: 28 },
+ end: { column: 22, line: 28 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "unique",
+
+ range: [578, 584],
+ loc: {
+ start: { column: 8, line: 29 },
+ end: { column: 14, line: 29 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [587, 588],
+ loc: {
+ start: { column: 17, line: 29 },
+ end: { column: 18, line: 29 },
+ },
+ },
+
+ range: [578, 588],
+ loc: {
+ start: { column: 8, line: 29 },
+ end: { column: 18, line: 29 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [572, 589],
+ loc: {
+ start: { column: 2, line: 29 },
+ end: { column: 19, line: 29 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "unknown",
+
+ range: [598, 605],
+ loc: {
+ start: { column: 8, line: 30 },
+ end: { column: 15, line: 30 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [608, 609],
+ loc: {
+ start: { column: 18, line: 30 },
+ end: { column: 19, line: 30 },
+ },
+ },
+
+ range: [598, 609],
+ loc: {
+ start: { column: 8, line: 30 },
+ end: { column: 19, line: 30 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [592, 610],
+ loc: {
+ start: { column: 2, line: 30 },
+ end: { column: 20, line: 30 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "from",
+
+ range: [619, 623],
+ loc: {
+ start: { column: 8, line: 31 },
+ end: { column: 12, line: 31 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [626, 627],
+ loc: {
+ start: { column: 15, line: 31 },
+ end: { column: 16, line: 31 },
+ },
+ },
+
+ range: [619, 627],
+ loc: {
+ start: { column: 8, line: 31 },
+ end: { column: 16, line: 31 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [613, 628],
+ loc: {
+ start: { column: 2, line: 31 },
+ end: { column: 17, line: 31 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "global",
+
+ range: [637, 643],
+ loc: {
+ start: { column: 8, line: 32 },
+ end: { column: 14, line: 32 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [646, 647],
+ loc: {
+ start: { column: 17, line: 32 },
+ end: { column: 18, line: 32 },
+ },
+ },
+
+ range: [637, 647],
+ loc: {
+ start: { column: 8, line: 32 },
+ end: { column: 18, line: 32 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [631, 648],
+ loc: {
+ start: { column: 2, line: 32 },
+ end: { column: 19, line: 32 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "bigint",
+
+ range: [657, 663],
+ loc: {
+ start: { column: 8, line: 33 },
+ end: { column: 14, line: 33 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [666, 667],
+ loc: {
+ start: { column: 17, line: 33 },
+ end: { column: 18, line: 33 },
+ },
+ },
+
+ range: [657, 667],
+ loc: {
+ start: { column: 8, line: 33 },
+ end: { column: 18, line: 33 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [651, 668],
+ loc: {
+ start: { column: 2, line: 33 },
+ end: { column: 19, line: 33 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "of",
+
+ range: [677, 679],
+ loc: {
+ start: { column: 8, line: 34 },
+ end: { column: 10, line: 34 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [682, 683],
+ loc: {
+ start: { column: 13, line: 34 },
+ end: { column: 14, line: 34 },
+ },
+ },
+
+ range: [677, 683],
+ loc: {
+ start: { column: 8, line: 34 },
+ end: { column: 14, line: 34 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [671, 684],
+ loc: {
+ start: { column: 2, line: 34 },
+ end: { column: 15, line: 34 },
+ },
+ },
+ ],
+
+ range: [73, 686],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 1, line: 35 },
+ },
+ },
+ ImportDeclaration {
+ type: "ImportDeclaration",
+ assertions: Array [],
+ importKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'fake-module'",
+ value: "fake-module",
+
+ range: [1004, 1017],
+ loc: {
+ start: { column: 7, line: 69 },
+ end: { column: 20, line: 69 },
+ },
+ },
+ specifiers: Array [
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "abstract",
+
+ range: [699, 707],
+ loc: {
+ start: { column: 2, line: 38 },
+ end: { column: 10, line: 38 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "abstract",
+
+ range: [699, 707],
+ loc: {
+ start: { column: 2, line: 38 },
+ end: { column: 10, line: 38 },
+ },
+ },
+
+ range: [699, 707],
+ loc: {
+ start: { column: 2, line: 38 },
+ end: { column: 10, line: 38 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "as",
+
+ range: [711, 713],
+ loc: {
+ start: { column: 2, line: 39 },
+ end: { column: 4, line: 39 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "as",
+
+ range: [711, 713],
+ loc: {
+ start: { column: 2, line: 39 },
+ end: { column: 4, line: 39 },
+ },
+ },
+
+ range: [711, 713],
+ loc: {
+ start: { column: 2, line: 39 },
+ end: { column: 4, line: 39 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "asserts",
+
+ range: [717, 724],
+ loc: {
+ start: { column: 2, line: 40 },
+ end: { column: 9, line: 40 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "asserts",
+
+ range: [717, 724],
+ loc: {
+ start: { column: 2, line: 40 },
+ end: { column: 9, line: 40 },
+ },
+ },
+
+ range: [717, 724],
+ loc: {
+ start: { column: 2, line: 40 },
+ end: { column: 9, line: 40 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "any",
+
+ range: [728, 731],
+ loc: {
+ start: { column: 2, line: 41 },
+ end: { column: 5, line: 41 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "any",
+
+ range: [728, 731],
+ loc: {
+ start: { column: 2, line: 41 },
+ end: { column: 5, line: 41 },
+ },
+ },
+
+ range: [728, 731],
+ loc: {
+ start: { column: 2, line: 41 },
+ end: { column: 5, line: 41 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "async",
+
+ range: [735, 740],
+ loc: {
+ start: { column: 2, line: 42 },
+ end: { column: 7, line: 42 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "async",
+
+ range: [735, 740],
+ loc: {
+ start: { column: 2, line: 42 },
+ end: { column: 7, line: 42 },
+ },
+ },
+
+ range: [735, 740],
+ loc: {
+ start: { column: 2, line: 42 },
+ end: { column: 7, line: 42 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "await",
+
+ range: [744, 749],
+ loc: {
+ start: { column: 2, line: 43 },
+ end: { column: 7, line: 43 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "await",
+
+ range: [744, 749],
+ loc: {
+ start: { column: 2, line: 43 },
+ end: { column: 7, line: 43 },
+ },
+ },
+
+ range: [744, 749],
+ loc: {
+ start: { column: 2, line: 43 },
+ end: { column: 7, line: 43 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "boolean",
+
+ range: [753, 760],
+ loc: {
+ start: { column: 2, line: 44 },
+ end: { column: 9, line: 44 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "boolean",
+
+ range: [753, 760],
+ loc: {
+ start: { column: 2, line: 44 },
+ end: { column: 9, line: 44 },
+ },
+ },
+
+ range: [753, 760],
+ loc: {
+ start: { column: 2, line: 44 },
+ end: { column: 9, line: 44 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "constructor",
+
+ range: [764, 775],
+ loc: {
+ start: { column: 2, line: 45 },
+ end: { column: 13, line: 45 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "constructor",
+
+ range: [764, 775],
+ loc: {
+ start: { column: 2, line: 45 },
+ end: { column: 13, line: 45 },
+ },
+ },
+
+ range: [764, 775],
+ loc: {
+ start: { column: 2, line: 45 },
+ end: { column: 13, line: 45 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "declare",
+
+ range: [779, 786],
+ loc: {
+ start: { column: 2, line: 46 },
+ end: { column: 9, line: 46 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "declare",
+
+ range: [779, 786],
+ loc: {
+ start: { column: 2, line: 46 },
+ end: { column: 9, line: 46 },
+ },
+ },
+
+ range: [779, 786],
+ loc: {
+ start: { column: 2, line: 46 },
+ end: { column: 9, line: 46 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "get",
+
+ range: [790, 793],
+ loc: {
+ start: { column: 2, line: 47 },
+ end: { column: 5, line: 47 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "get",
+
+ range: [790, 793],
+ loc: {
+ start: { column: 2, line: 47 },
+ end: { column: 5, line: 47 },
+ },
+ },
+
+ range: [790, 793],
+ loc: {
+ start: { column: 2, line: 47 },
+ end: { column: 5, line: 47 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "infer",
+
+ range: [797, 802],
+ loc: {
+ start: { column: 2, line: 48 },
+ end: { column: 7, line: 48 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "infer",
+
+ range: [797, 802],
+ loc: {
+ start: { column: 2, line: 48 },
+ end: { column: 7, line: 48 },
+ },
+ },
+
+ range: [797, 802],
+ loc: {
+ start: { column: 2, line: 48 },
+ end: { column: 7, line: 48 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "is",
+
+ range: [806, 808],
+ loc: {
+ start: { column: 2, line: 49 },
+ end: { column: 4, line: 49 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "is",
+
+ range: [806, 808],
+ loc: {
+ start: { column: 2, line: 49 },
+ end: { column: 4, line: 49 },
+ },
+ },
+
+ range: [806, 808],
+ loc: {
+ start: { column: 2, line: 49 },
+ end: { column: 4, line: 49 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "keyof",
+
+ range: [812, 817],
+ loc: {
+ start: { column: 2, line: 50 },
+ end: { column: 7, line: 50 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "keyof",
+
+ range: [812, 817],
+ loc: {
+ start: { column: 2, line: 50 },
+ end: { column: 7, line: 50 },
+ },
+ },
+
+ range: [812, 817],
+ loc: {
+ start: { column: 2, line: 50 },
+ end: { column: 7, line: 50 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "module",
+
+ range: [821, 827],
+ loc: {
+ start: { column: 2, line: 51 },
+ end: { column: 8, line: 51 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "module",
+
+ range: [821, 827],
+ loc: {
+ start: { column: 2, line: 51 },
+ end: { column: 8, line: 51 },
+ },
+ },
+
+ range: [821, 827],
+ loc: {
+ start: { column: 2, line: 51 },
+ end: { column: 8, line: 51 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "namespace",
+
+ range: [831, 840],
+ loc: {
+ start: { column: 2, line: 52 },
+ end: { column: 11, line: 52 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "namespace",
+
+ range: [831, 840],
+ loc: {
+ start: { column: 2, line: 52 },
+ end: { column: 11, line: 52 },
+ },
+ },
+
+ range: [831, 840],
+ loc: {
+ start: { column: 2, line: 52 },
+ end: { column: 11, line: 52 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "never",
+
+ range: [844, 849],
+ loc: {
+ start: { column: 2, line: 53 },
+ end: { column: 7, line: 53 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "never",
+
+ range: [844, 849],
+ loc: {
+ start: { column: 2, line: 53 },
+ end: { column: 7, line: 53 },
+ },
+ },
+
+ range: [844, 849],
+ loc: {
+ start: { column: 2, line: 53 },
+ end: { column: 7, line: 53 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "readonly",
+
+ range: [853, 861],
+ loc: {
+ start: { column: 2, line: 54 },
+ end: { column: 10, line: 54 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "readonly",
+
+ range: [853, 861],
+ loc: {
+ start: { column: 2, line: 54 },
+ end: { column: 10, line: 54 },
+ },
+ },
+
+ range: [853, 861],
+ loc: {
+ start: { column: 2, line: 54 },
+ end: { column: 10, line: 54 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "require",
+
+ range: [865, 872],
+ loc: {
+ start: { column: 2, line: 55 },
+ end: { column: 9, line: 55 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "require",
+
+ range: [865, 872],
+ loc: {
+ start: { column: 2, line: 55 },
+ end: { column: 9, line: 55 },
+ },
+ },
+
+ range: [865, 872],
+ loc: {
+ start: { column: 2, line: 55 },
+ end: { column: 9, line: 55 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "number",
+
+ range: [876, 882],
+ loc: {
+ start: { column: 2, line: 56 },
+ end: { column: 8, line: 56 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "number",
+
+ range: [876, 882],
+ loc: {
+ start: { column: 2, line: 56 },
+ end: { column: 8, line: 56 },
+ },
+ },
+
+ range: [876, 882],
+ loc: {
+ start: { column: 2, line: 56 },
+ end: { column: 8, line: 56 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "object",
+
+ range: [886, 892],
+ loc: {
+ start: { column: 2, line: 57 },
+ end: { column: 8, line: 57 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "object",
+
+ range: [886, 892],
+ loc: {
+ start: { column: 2, line: 57 },
+ end: { column: 8, line: 57 },
+ },
+ },
+
+ range: [886, 892],
+ loc: {
+ start: { column: 2, line: 57 },
+ end: { column: 8, line: 57 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "set",
+
+ range: [896, 899],
+ loc: {
+ start: { column: 2, line: 58 },
+ end: { column: 5, line: 58 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "set",
+
+ range: [896, 899],
+ loc: {
+ start: { column: 2, line: 58 },
+ end: { column: 5, line: 58 },
+ },
+ },
+
+ range: [896, 899],
+ loc: {
+ start: { column: 2, line: 58 },
+ end: { column: 5, line: 58 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "string",
+
+ range: [903, 909],
+ loc: {
+ start: { column: 2, line: 59 },
+ end: { column: 8, line: 59 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "string",
+
+ range: [903, 909],
+ loc: {
+ start: { column: 2, line: 59 },
+ end: { column: 8, line: 59 },
+ },
+ },
+
+ range: [903, 909],
+ loc: {
+ start: { column: 2, line: 59 },
+ end: { column: 8, line: 59 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "symbol",
+
+ range: [913, 919],
+ loc: {
+ start: { column: 2, line: 60 },
+ end: { column: 8, line: 60 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "symbol",
+
+ range: [913, 919],
+ loc: {
+ start: { column: 2, line: 60 },
+ end: { column: 8, line: 60 },
+ },
+ },
+
+ range: [913, 919],
+ loc: {
+ start: { column: 2, line: 60 },
+ end: { column: 8, line: 60 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "type",
+
+ range: [923, 927],
+ loc: {
+ start: { column: 2, line: 61 },
+ end: { column: 6, line: 61 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "type",
+
+ range: [923, 927],
+ loc: {
+ start: { column: 2, line: 61 },
+ end: { column: 6, line: 61 },
+ },
+ },
+
+ range: [923, 927],
+ loc: {
+ start: { column: 2, line: 61 },
+ end: { column: 6, line: 61 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "undefined",
+
+ range: [931, 940],
+ loc: {
+ start: { column: 2, line: 62 },
+ end: { column: 11, line: 62 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "undefined",
+
+ range: [931, 940],
+ loc: {
+ start: { column: 2, line: 62 },
+ end: { column: 11, line: 62 },
+ },
+ },
+
+ range: [931, 940],
+ loc: {
+ start: { column: 2, line: 62 },
+ end: { column: 11, line: 62 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "unique",
+
+ range: [944, 950],
+ loc: {
+ start: { column: 2, line: 63 },
+ end: { column: 8, line: 63 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "unique",
+
+ range: [944, 950],
+ loc: {
+ start: { column: 2, line: 63 },
+ end: { column: 8, line: 63 },
+ },
+ },
+
+ range: [944, 950],
+ loc: {
+ start: { column: 2, line: 63 },
+ end: { column: 8, line: 63 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "unknown",
+
+ range: [954, 961],
+ loc: {
+ start: { column: 2, line: 64 },
+ end: { column: 9, line: 64 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "unknown",
+
+ range: [954, 961],
+ loc: {
+ start: { column: 2, line: 64 },
+ end: { column: 9, line: 64 },
+ },
+ },
+
+ range: [954, 961],
+ loc: {
+ start: { column: 2, line: 64 },
+ end: { column: 9, line: 64 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "from",
+
+ range: [965, 969],
+ loc: {
+ start: { column: 2, line: 65 },
+ end: { column: 6, line: 65 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "from",
+
+ range: [965, 969],
+ loc: {
+ start: { column: 2, line: 65 },
+ end: { column: 6, line: 65 },
+ },
+ },
+
+ range: [965, 969],
+ loc: {
+ start: { column: 2, line: 65 },
+ end: { column: 6, line: 65 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "global",
+
+ range: [973, 979],
+ loc: {
+ start: { column: 2, line: 66 },
+ end: { column: 8, line: 66 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "global",
+
+ range: [973, 979],
+ loc: {
+ start: { column: 2, line: 66 },
+ end: { column: 8, line: 66 },
+ },
+ },
+
+ range: [973, 979],
+ loc: {
+ start: { column: 2, line: 66 },
+ end: { column: 8, line: 66 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "bigint",
+
+ range: [983, 989],
+ loc: {
+ start: { column: 2, line: 67 },
+ end: { column: 8, line: 67 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "bigint",
+
+ range: [983, 989],
+ loc: {
+ start: { column: 2, line: 67 },
+ end: { column: 8, line: 67 },
+ },
+ },
+
+ range: [983, 989],
+ loc: {
+ start: { column: 2, line: 67 },
+ end: { column: 8, line: 67 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "of",
+
+ range: [993, 995],
+ loc: {
+ start: { column: 2, line: 68 },
+ end: { column: 4, line: 68 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "of",
+
+ range: [993, 995],
+ loc: {
+ start: { column: 2, line: 68 },
+ end: { column: 4, line: 68 },
+ },
+ },
+
+ range: [993, 995],
+ loc: {
+ start: { column: 2, line: 68 },
+ end: { column: 4, line: 68 },
+ },
+ },
+ ],
+
+ range: [688, 1018],
+ loc: {
+ start: { column: 0, line: 37 },
+ end: { column: 21, line: 69 },
+ },
+ },
+ TSInterfaceDeclaration {
+ type: "TSInterfaceDeclaration",
+ body: TSInterfaceBody {
+ type: "TSInterfaceBody",
+ body: Array [],
+
+ range: [1032, 1034],
+ loc: {
+ start: { column: 12, line: 71 },
+ end: { column: 14, line: 71 },
+ },
+ },
+ id: Identifier {
+ type: "Identifier",
+ name: "X",
+
+ range: [1030, 1031],
+ loc: {
+ start: { column: 10, line: 71 },
+ end: { column: 11, line: 71 },
+ },
+ },
+
+ range: [1020, 1034],
+ loc: {
+ start: { column: 0, line: 71 },
+ end: { column: 14, line: 71 },
+ },
+ },
+ ClassDeclaration {
+ type: "ClassDeclaration",
+ body: ClassBody {
+ type: "ClassBody",
+ body: Array [
+ MethodDefinition {
+ type: "MethodDefinition",
+ computed: false,
+ key: Identifier {
+ type: "Identifier",
+ name: "a",
+
+ range: [1067, 1068],
+ loc: {
+ start: { column: 9, line: 73 },
+ end: { column: 10, line: 73 },
+ },
+ },
+ kind: "method",
+ override: false,
+ static: true,
+ value: FunctionExpression {
+ type: "FunctionExpression",
+ async: false,
+ body: BlockStatement {
+ type: "BlockStatement",
+ body: Array [],
+
+ range: [1071, 1073],
+ loc: {
+ start: { column: 13, line: 73 },
+ end: { column: 15, line: 73 },
+ },
+ },
+ expression: false,
+ generator: false,
+ id: null,
+ params: Array [],
+
+ range: [1068, 1073],
+ loc: {
+ start: { column: 10, line: 73 },
+ end: { column: 15, line: 73 },
+ },
+ },
+
+ range: [1060, 1073],
+ loc: {
+ start: { column: 2, line: 73 },
+ end: { column: 15, line: 73 },
+ },
+ },
+ MethodDefinition {
+ type: "MethodDefinition",
+ accessibility: "private",
+ computed: false,
+ key: Identifier {
+ type: "Identifier",
+ name: "b",
+
+ range: [1084, 1085],
+ loc: {
+ start: { column: 10, line: 74 },
+ end: { column: 11, line: 74 },
+ },
+ },
+ kind: "method",
+ override: false,
+ static: false,
+ value: FunctionExpression {
+ type: "FunctionExpression",
+ async: false,
+ body: BlockStatement {
+ type: "BlockStatement",
+ body: Array [],
+
+ range: [1088, 1090],
+ loc: {
+ start: { column: 14, line: 74 },
+ end: { column: 16, line: 74 },
+ },
+ },
+ expression: false,
+ generator: false,
+ id: null,
+ params: Array [],
+
+ range: [1085, 1090],
+ loc: {
+ start: { column: 11, line: 74 },
+ end: { column: 16, line: 74 },
+ },
+ },
+
+ range: [1076, 1090],
+ loc: {
+ start: { column: 2, line: 74 },
+ end: { column: 16, line: 74 },
+ },
+ },
+ MethodDefinition {
+ type: "MethodDefinition",
+ accessibility: "public",
+ computed: false,
+ key: Identifier {
+ type: "Identifier",
+ name: "c",
+
+ range: [1100, 1101],
+ loc: {
+ start: { column: 9, line: 75 },
+ end: { column: 10, line: 75 },
+ },
+ },
+ kind: "method",
+ override: false,
+ static: false,
+ value: FunctionExpression {
+ type: "FunctionExpression",
+ async: false,
+ body: BlockStatement {
+ type: "BlockStatement",
+ body: Array [],
+
+ range: [1104, 1106],
+ loc: {
+ start: { column: 13, line: 75 },
+ end: { column: 15, line: 75 },
+ },
+ },
+ expression: false,
+ generator: false,
+ id: null,
+ params: Array [],
+
+ range: [1101, 1106],
+ loc: {
+ start: { column: 10, line: 75 },
+ end: { column: 15, line: 75 },
+ },
+ },
+
+ range: [1093, 1106],
+ loc: {
+ start: { column: 2, line: 75 },
+ end: { column: 15, line: 75 },
+ },
+ },
+ MethodDefinition {
+ type: "MethodDefinition",
+ accessibility: "protected",
+ computed: false,
+ key: Identifier {
+ type: "Identifier",
+ name: "d",
+
+ range: [1120, 1121],
+ loc: {
+ start: { column: 13, line: 76 },
+ end: { column: 14, line: 76 },
+ },
+ },
+ kind: "method",
+ override: false,
+ static: false,
+ value: FunctionExpression {
+ type: "FunctionExpression",
+ async: false,
+ body: BlockStatement {
+ type: "BlockStatement",
+ body: Array [
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "x",
+
+ range: [1134, 1135],
+ loc: {
+ start: { column: 8, line: 77 },
+ end: { column: 9, line: 77 },
+ },
+ },
+ init: YieldExpression {
+ type: "YieldExpression",
+ argument: null,
+ delegate: false,
+
+ range: [1138, 1143],
+ loc: {
+ start: { column: 12, line: 77 },
+ end: { column: 17, line: 77 },
+ },
+ },
+
+ range: [1134, 1143],
+ loc: {
+ start: { column: 8, line: 77 },
+ end: { column: 17, line: 77 },
+ },
+ },
+ ],
+ kind: "let",
+
+ range: [1130, 1144],
+ loc: {
+ start: { column: 4, line: 77 },
+ end: { column: 18, line: 77 },
+ },
+ },
+ ],
+
+ range: [1124, 1148],
+ loc: {
+ start: { column: 17, line: 76 },
+ end: { column: 3, line: 78 },
+ },
+ },
+ expression: false,
+ generator: true,
+ id: null,
+ params: Array [],
+
+ range: [1121, 1148],
+ loc: {
+ start: { column: 14, line: 76 },
+ end: { column: 3, line: 78 },
+ },
+ },
+
+ range: [1109, 1148],
+ loc: {
+ start: { column: 2, line: 76 },
+ end: { column: 3, line: 78 },
+ },
+ },
+ ],
+
+ range: [1056, 1150],
+ loc: {
+ start: { column: 21, line: 72 },
+ end: { column: 1, line: 79 },
+ },
+ },
+ id: Identifier {
+ type: "Identifier",
+ name: "C",
+
+ range: [1041, 1042],
+ loc: {
+ start: { column: 6, line: 72 },
+ end: { column: 7, line: 72 },
+ },
+ },
+ implements: Array [
+ TSClassImplements {
+ type: "TSClassImplements",
+ expression: Identifier {
+ type: "Identifier",
+ name: "X",
+
+ range: [1054, 1055],
+ loc: {
+ start: { column: 19, line: 72 },
+ end: { column: 20, line: 72 },
+ },
+ },
+
+ range: [1054, 1055],
+ loc: {
+ start: { column: 19, line: 72 },
+ end: { column: 20, line: 72 },
+ },
+ },
+ ],
+ superClass: null,
+
+ range: [1035, 1150],
+ loc: {
+ start: { column: 0, line: 72 },
+ end: { column: 1, line: 79 },
+ },
+ },
+ ],
+ sourceType: "module",
+
+ range: [73, 1151],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 0, line: 80 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/2-TSESTree-Tokens.shot
new file mode 100644
index 000000000000..2b4189a009c7
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/2-TSESTree-Tokens.shot
@@ -0,0 +1,2656 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics keyword-variables TSESTree - Tokens 1`] = `
+Array [
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [73, 74],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 1, line: 3 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [77, 82],
+ loc: {
+ start: { column: 2, line: 4 },
+ end: { column: 7, line: 4 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "abstract",
+
+ range: [83, 91],
+ loc: {
+ start: { column: 8, line: 4 },
+ end: { column: 16, line: 4 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [92, 93],
+ loc: {
+ start: { column: 17, line: 4 },
+ end: { column: 18, line: 4 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [94, 95],
+ loc: {
+ start: { column: 19, line: 4 },
+ end: { column: 20, line: 4 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [95, 96],
+ loc: {
+ start: { column: 20, line: 4 },
+ end: { column: 21, line: 4 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [99, 104],
+ loc: {
+ start: { column: 2, line: 5 },
+ end: { column: 7, line: 5 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "as",
+
+ range: [105, 107],
+ loc: {
+ start: { column: 8, line: 5 },
+ end: { column: 10, line: 5 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [108, 109],
+ loc: {
+ start: { column: 11, line: 5 },
+ end: { column: 12, line: 5 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [110, 111],
+ loc: {
+ start: { column: 13, line: 5 },
+ end: { column: 14, line: 5 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [111, 112],
+ loc: {
+ start: { column: 14, line: 5 },
+ end: { column: 15, line: 5 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [115, 120],
+ loc: {
+ start: { column: 2, line: 6 },
+ end: { column: 7, line: 6 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "asserts",
+
+ range: [121, 128],
+ loc: {
+ start: { column: 8, line: 6 },
+ end: { column: 15, line: 6 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [129, 130],
+ loc: {
+ start: { column: 16, line: 6 },
+ end: { column: 17, line: 6 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [131, 132],
+ loc: {
+ start: { column: 18, line: 6 },
+ end: { column: 19, line: 6 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [132, 133],
+ loc: {
+ start: { column: 19, line: 6 },
+ end: { column: 20, line: 6 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [136, 141],
+ loc: {
+ start: { column: 2, line: 7 },
+ end: { column: 7, line: 7 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "any",
+
+ range: [142, 145],
+ loc: {
+ start: { column: 8, line: 7 },
+ end: { column: 11, line: 7 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [146, 147],
+ loc: {
+ start: { column: 12, line: 7 },
+ end: { column: 13, line: 7 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [148, 149],
+ loc: {
+ start: { column: 14, line: 7 },
+ end: { column: 15, line: 7 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [149, 150],
+ loc: {
+ start: { column: 15, line: 7 },
+ end: { column: 16, line: 7 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [153, 158],
+ loc: {
+ start: { column: 2, line: 8 },
+ end: { column: 7, line: 8 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "async",
+
+ range: [159, 164],
+ loc: {
+ start: { column: 8, line: 8 },
+ end: { column: 13, line: 8 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [165, 166],
+ loc: {
+ start: { column: 14, line: 8 },
+ end: { column: 15, line: 8 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [167, 168],
+ loc: {
+ start: { column: 16, line: 8 },
+ end: { column: 17, line: 8 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [168, 169],
+ loc: {
+ start: { column: 17, line: 8 },
+ end: { column: 18, line: 8 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [172, 177],
+ loc: {
+ start: { column: 2, line: 9 },
+ end: { column: 7, line: 9 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "await",
+
+ range: [178, 183],
+ loc: {
+ start: { column: 8, line: 9 },
+ end: { column: 13, line: 9 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [184, 185],
+ loc: {
+ start: { column: 14, line: 9 },
+ end: { column: 15, line: 9 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [186, 187],
+ loc: {
+ start: { column: 16, line: 9 },
+ end: { column: 17, line: 9 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [187, 188],
+ loc: {
+ start: { column: 17, line: 9 },
+ end: { column: 18, line: 9 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [191, 196],
+ loc: {
+ start: { column: 2, line: 10 },
+ end: { column: 7, line: 10 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "boolean",
+
+ range: [197, 204],
+ loc: {
+ start: { column: 8, line: 10 },
+ end: { column: 15, line: 10 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [205, 206],
+ loc: {
+ start: { column: 16, line: 10 },
+ end: { column: 17, line: 10 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [207, 208],
+ loc: {
+ start: { column: 18, line: 10 },
+ end: { column: 19, line: 10 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [208, 209],
+ loc: {
+ start: { column: 19, line: 10 },
+ end: { column: 20, line: 10 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [212, 217],
+ loc: {
+ start: { column: 2, line: 11 },
+ end: { column: 7, line: 11 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "constructor",
+
+ range: [218, 229],
+ loc: {
+ start: { column: 8, line: 11 },
+ end: { column: 19, line: 11 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [230, 231],
+ loc: {
+ start: { column: 20, line: 11 },
+ end: { column: 21, line: 11 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [232, 233],
+ loc: {
+ start: { column: 22, line: 11 },
+ end: { column: 23, line: 11 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [233, 234],
+ loc: {
+ start: { column: 23, line: 11 },
+ end: { column: 24, line: 11 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [237, 242],
+ loc: {
+ start: { column: 2, line: 12 },
+ end: { column: 7, line: 12 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "declare",
+
+ range: [243, 250],
+ loc: {
+ start: { column: 8, line: 12 },
+ end: { column: 15, line: 12 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [251, 252],
+ loc: {
+ start: { column: 16, line: 12 },
+ end: { column: 17, line: 12 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [253, 254],
+ loc: {
+ start: { column: 18, line: 12 },
+ end: { column: 19, line: 12 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [254, 255],
+ loc: {
+ start: { column: 19, line: 12 },
+ end: { column: 20, line: 12 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [258, 263],
+ loc: {
+ start: { column: 2, line: 13 },
+ end: { column: 7, line: 13 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "get",
+
+ range: [264, 267],
+ loc: {
+ start: { column: 8, line: 13 },
+ end: { column: 11, line: 13 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [268, 269],
+ loc: {
+ start: { column: 12, line: 13 },
+ end: { column: 13, line: 13 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [270, 271],
+ loc: {
+ start: { column: 14, line: 13 },
+ end: { column: 15, line: 13 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [271, 272],
+ loc: {
+ start: { column: 15, line: 13 },
+ end: { column: 16, line: 13 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [275, 280],
+ loc: {
+ start: { column: 2, line: 14 },
+ end: { column: 7, line: 14 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "infer",
+
+ range: [281, 286],
+ loc: {
+ start: { column: 8, line: 14 },
+ end: { column: 13, line: 14 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [287, 288],
+ loc: {
+ start: { column: 14, line: 14 },
+ end: { column: 15, line: 14 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [289, 290],
+ loc: {
+ start: { column: 16, line: 14 },
+ end: { column: 17, line: 14 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [290, 291],
+ loc: {
+ start: { column: 17, line: 14 },
+ end: { column: 18, line: 14 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [294, 299],
+ loc: {
+ start: { column: 2, line: 15 },
+ end: { column: 7, line: 15 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "is",
+
+ range: [300, 302],
+ loc: {
+ start: { column: 8, line: 15 },
+ end: { column: 10, line: 15 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [303, 304],
+ loc: {
+ start: { column: 11, line: 15 },
+ end: { column: 12, line: 15 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [305, 306],
+ loc: {
+ start: { column: 13, line: 15 },
+ end: { column: 14, line: 15 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [306, 307],
+ loc: {
+ start: { column: 14, line: 15 },
+ end: { column: 15, line: 15 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [310, 315],
+ loc: {
+ start: { column: 2, line: 16 },
+ end: { column: 7, line: 16 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "keyof",
+
+ range: [316, 321],
+ loc: {
+ start: { column: 8, line: 16 },
+ end: { column: 13, line: 16 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [322, 323],
+ loc: {
+ start: { column: 14, line: 16 },
+ end: { column: 15, line: 16 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [324, 325],
+ loc: {
+ start: { column: 16, line: 16 },
+ end: { column: 17, line: 16 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [325, 326],
+ loc: {
+ start: { column: 17, line: 16 },
+ end: { column: 18, line: 16 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [329, 334],
+ loc: {
+ start: { column: 2, line: 17 },
+ end: { column: 7, line: 17 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "module",
+
+ range: [335, 341],
+ loc: {
+ start: { column: 8, line: 17 },
+ end: { column: 14, line: 17 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [342, 343],
+ loc: {
+ start: { column: 15, line: 17 },
+ end: { column: 16, line: 17 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [344, 345],
+ loc: {
+ start: { column: 17, line: 17 },
+ end: { column: 18, line: 17 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [345, 346],
+ loc: {
+ start: { column: 18, line: 17 },
+ end: { column: 19, line: 17 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [349, 354],
+ loc: {
+ start: { column: 2, line: 18 },
+ end: { column: 7, line: 18 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "namespace",
+
+ range: [355, 364],
+ loc: {
+ start: { column: 8, line: 18 },
+ end: { column: 17, line: 18 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [365, 366],
+ loc: {
+ start: { column: 18, line: 18 },
+ end: { column: 19, line: 18 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [367, 368],
+ loc: {
+ start: { column: 20, line: 18 },
+ end: { column: 21, line: 18 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [368, 369],
+ loc: {
+ start: { column: 21, line: 18 },
+ end: { column: 22, line: 18 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [372, 377],
+ loc: {
+ start: { column: 2, line: 19 },
+ end: { column: 7, line: 19 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "never",
+
+ range: [378, 383],
+ loc: {
+ start: { column: 8, line: 19 },
+ end: { column: 13, line: 19 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [384, 385],
+ loc: {
+ start: { column: 14, line: 19 },
+ end: { column: 15, line: 19 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [386, 387],
+ loc: {
+ start: { column: 16, line: 19 },
+ end: { column: 17, line: 19 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [387, 388],
+ loc: {
+ start: { column: 17, line: 19 },
+ end: { column: 18, line: 19 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [391, 396],
+ loc: {
+ start: { column: 2, line: 20 },
+ end: { column: 7, line: 20 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "readonly",
+
+ range: [397, 405],
+ loc: {
+ start: { column: 8, line: 20 },
+ end: { column: 16, line: 20 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [406, 407],
+ loc: {
+ start: { column: 17, line: 20 },
+ end: { column: 18, line: 20 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [408, 409],
+ loc: {
+ start: { column: 19, line: 20 },
+ end: { column: 20, line: 20 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [409, 410],
+ loc: {
+ start: { column: 20, line: 20 },
+ end: { column: 21, line: 20 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [413, 418],
+ loc: {
+ start: { column: 2, line: 21 },
+ end: { column: 7, line: 21 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "require",
+
+ range: [419, 426],
+ loc: {
+ start: { column: 8, line: 21 },
+ end: { column: 15, line: 21 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [427, 428],
+ loc: {
+ start: { column: 16, line: 21 },
+ end: { column: 17, line: 21 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [429, 430],
+ loc: {
+ start: { column: 18, line: 21 },
+ end: { column: 19, line: 21 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [430, 431],
+ loc: {
+ start: { column: 19, line: 21 },
+ end: { column: 20, line: 21 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [434, 439],
+ loc: {
+ start: { column: 2, line: 22 },
+ end: { column: 7, line: 22 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "number",
+
+ range: [440, 446],
+ loc: {
+ start: { column: 8, line: 22 },
+ end: { column: 14, line: 22 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [447, 448],
+ loc: {
+ start: { column: 15, line: 22 },
+ end: { column: 16, line: 22 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [449, 450],
+ loc: {
+ start: { column: 17, line: 22 },
+ end: { column: 18, line: 22 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [450, 451],
+ loc: {
+ start: { column: 18, line: 22 },
+ end: { column: 19, line: 22 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [454, 459],
+ loc: {
+ start: { column: 2, line: 23 },
+ end: { column: 7, line: 23 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "object",
+
+ range: [460, 466],
+ loc: {
+ start: { column: 8, line: 23 },
+ end: { column: 14, line: 23 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [467, 468],
+ loc: {
+ start: { column: 15, line: 23 },
+ end: { column: 16, line: 23 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [469, 470],
+ loc: {
+ start: { column: 17, line: 23 },
+ end: { column: 18, line: 23 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [470, 471],
+ loc: {
+ start: { column: 18, line: 23 },
+ end: { column: 19, line: 23 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [474, 479],
+ loc: {
+ start: { column: 2, line: 24 },
+ end: { column: 7, line: 24 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "set",
+
+ range: [480, 483],
+ loc: {
+ start: { column: 8, line: 24 },
+ end: { column: 11, line: 24 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [484, 485],
+ loc: {
+ start: { column: 12, line: 24 },
+ end: { column: 13, line: 24 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [486, 487],
+ loc: {
+ start: { column: 14, line: 24 },
+ end: { column: 15, line: 24 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [487, 488],
+ loc: {
+ start: { column: 15, line: 24 },
+ end: { column: 16, line: 24 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [491, 496],
+ loc: {
+ start: { column: 2, line: 25 },
+ end: { column: 7, line: 25 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "string",
+
+ range: [497, 503],
+ loc: {
+ start: { column: 8, line: 25 },
+ end: { column: 14, line: 25 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [504, 505],
+ loc: {
+ start: { column: 15, line: 25 },
+ end: { column: 16, line: 25 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [506, 507],
+ loc: {
+ start: { column: 17, line: 25 },
+ end: { column: 18, line: 25 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [507, 508],
+ loc: {
+ start: { column: 18, line: 25 },
+ end: { column: 19, line: 25 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [511, 516],
+ loc: {
+ start: { column: 2, line: 26 },
+ end: { column: 7, line: 26 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "symbol",
+
+ range: [517, 523],
+ loc: {
+ start: { column: 8, line: 26 },
+ end: { column: 14, line: 26 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [524, 525],
+ loc: {
+ start: { column: 15, line: 26 },
+ end: { column: 16, line: 26 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [526, 527],
+ loc: {
+ start: { column: 17, line: 26 },
+ end: { column: 18, line: 26 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [527, 528],
+ loc: {
+ start: { column: 18, line: 26 },
+ end: { column: 19, line: 26 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [531, 536],
+ loc: {
+ start: { column: 2, line: 27 },
+ end: { column: 7, line: 27 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "type",
+
+ range: [537, 541],
+ loc: {
+ start: { column: 8, line: 27 },
+ end: { column: 12, line: 27 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [542, 543],
+ loc: {
+ start: { column: 13, line: 27 },
+ end: { column: 14, line: 27 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [544, 545],
+ loc: {
+ start: { column: 15, line: 27 },
+ end: { column: 16, line: 27 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [545, 546],
+ loc: {
+ start: { column: 16, line: 27 },
+ end: { column: 17, line: 27 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [549, 554],
+ loc: {
+ start: { column: 2, line: 28 },
+ end: { column: 7, line: 28 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "undefined",
+
+ range: [555, 564],
+ loc: {
+ start: { column: 8, line: 28 },
+ end: { column: 17, line: 28 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [565, 566],
+ loc: {
+ start: { column: 18, line: 28 },
+ end: { column: 19, line: 28 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [567, 568],
+ loc: {
+ start: { column: 20, line: 28 },
+ end: { column: 21, line: 28 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [568, 569],
+ loc: {
+ start: { column: 21, line: 28 },
+ end: { column: 22, line: 28 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [572, 577],
+ loc: {
+ start: { column: 2, line: 29 },
+ end: { column: 7, line: 29 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "unique",
+
+ range: [578, 584],
+ loc: {
+ start: { column: 8, line: 29 },
+ end: { column: 14, line: 29 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [585, 586],
+ loc: {
+ start: { column: 15, line: 29 },
+ end: { column: 16, line: 29 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [587, 588],
+ loc: {
+ start: { column: 17, line: 29 },
+ end: { column: 18, line: 29 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [588, 589],
+ loc: {
+ start: { column: 18, line: 29 },
+ end: { column: 19, line: 29 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [592, 597],
+ loc: {
+ start: { column: 2, line: 30 },
+ end: { column: 7, line: 30 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "unknown",
+
+ range: [598, 605],
+ loc: {
+ start: { column: 8, line: 30 },
+ end: { column: 15, line: 30 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [606, 607],
+ loc: {
+ start: { column: 16, line: 30 },
+ end: { column: 17, line: 30 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [608, 609],
+ loc: {
+ start: { column: 18, line: 30 },
+ end: { column: 19, line: 30 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [609, 610],
+ loc: {
+ start: { column: 19, line: 30 },
+ end: { column: 20, line: 30 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [613, 618],
+ loc: {
+ start: { column: 2, line: 31 },
+ end: { column: 7, line: 31 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [619, 623],
+ loc: {
+ start: { column: 8, line: 31 },
+ end: { column: 12, line: 31 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [624, 625],
+ loc: {
+ start: { column: 13, line: 31 },
+ end: { column: 14, line: 31 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [626, 627],
+ loc: {
+ start: { column: 15, line: 31 },
+ end: { column: 16, line: 31 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [627, 628],
+ loc: {
+ start: { column: 16, line: 31 },
+ end: { column: 17, line: 31 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [631, 636],
+ loc: {
+ start: { column: 2, line: 32 },
+ end: { column: 7, line: 32 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "global",
+
+ range: [637, 643],
+ loc: {
+ start: { column: 8, line: 32 },
+ end: { column: 14, line: 32 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [644, 645],
+ loc: {
+ start: { column: 15, line: 32 },
+ end: { column: 16, line: 32 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [646, 647],
+ loc: {
+ start: { column: 17, line: 32 },
+ end: { column: 18, line: 32 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [647, 648],
+ loc: {
+ start: { column: 18, line: 32 },
+ end: { column: 19, line: 32 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [651, 656],
+ loc: {
+ start: { column: 2, line: 33 },
+ end: { column: 7, line: 33 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "bigint",
+
+ range: [657, 663],
+ loc: {
+ start: { column: 8, line: 33 },
+ end: { column: 14, line: 33 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [664, 665],
+ loc: {
+ start: { column: 15, line: 33 },
+ end: { column: 16, line: 33 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [666, 667],
+ loc: {
+ start: { column: 17, line: 33 },
+ end: { column: 18, line: 33 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [667, 668],
+ loc: {
+ start: { column: 18, line: 33 },
+ end: { column: 19, line: 33 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [671, 676],
+ loc: {
+ start: { column: 2, line: 34 },
+ end: { column: 7, line: 34 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "of",
+
+ range: [677, 679],
+ loc: {
+ start: { column: 8, line: 34 },
+ end: { column: 10, line: 34 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [680, 681],
+ loc: {
+ start: { column: 11, line: 34 },
+ end: { column: 12, line: 34 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [682, 683],
+ loc: {
+ start: { column: 13, line: 34 },
+ end: { column: 14, line: 34 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [683, 684],
+ loc: {
+ start: { column: 14, line: 34 },
+ end: { column: 15, line: 34 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [685, 686],
+ loc: {
+ start: { column: 0, line: 35 },
+ end: { column: 1, line: 35 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "import",
+
+ range: [688, 694],
+ loc: {
+ start: { column: 0, line: 37 },
+ end: { column: 6, line: 37 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [695, 696],
+ loc: {
+ start: { column: 7, line: 37 },
+ end: { column: 8, line: 37 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "abstract",
+
+ range: [699, 707],
+ loc: {
+ start: { column: 2, line: 38 },
+ end: { column: 10, line: 38 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [707, 708],
+ loc: {
+ start: { column: 10, line: 38 },
+ end: { column: 11, line: 38 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "as",
+
+ range: [711, 713],
+ loc: {
+ start: { column: 2, line: 39 },
+ end: { column: 4, line: 39 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [713, 714],
+ loc: {
+ start: { column: 4, line: 39 },
+ end: { column: 5, line: 39 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "asserts",
+
+ range: [717, 724],
+ loc: {
+ start: { column: 2, line: 40 },
+ end: { column: 9, line: 40 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [724, 725],
+ loc: {
+ start: { column: 9, line: 40 },
+ end: { column: 10, line: 40 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "any",
+
+ range: [728, 731],
+ loc: {
+ start: { column: 2, line: 41 },
+ end: { column: 5, line: 41 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [731, 732],
+ loc: {
+ start: { column: 5, line: 41 },
+ end: { column: 6, line: 41 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "async",
+
+ range: [735, 740],
+ loc: {
+ start: { column: 2, line: 42 },
+ end: { column: 7, line: 42 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [740, 741],
+ loc: {
+ start: { column: 7, line: 42 },
+ end: { column: 8, line: 42 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "await",
+
+ range: [744, 749],
+ loc: {
+ start: { column: 2, line: 43 },
+ end: { column: 7, line: 43 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [749, 750],
+ loc: {
+ start: { column: 7, line: 43 },
+ end: { column: 8, line: 43 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "boolean",
+
+ range: [753, 760],
+ loc: {
+ start: { column: 2, line: 44 },
+ end: { column: 9, line: 44 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [760, 761],
+ loc: {
+ start: { column: 9, line: 44 },
+ end: { column: 10, line: 44 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "constructor",
+
+ range: [764, 775],
+ loc: {
+ start: { column: 2, line: 45 },
+ end: { column: 13, line: 45 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [775, 776],
+ loc: {
+ start: { column: 13, line: 45 },
+ end: { column: 14, line: 45 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "declare",
+
+ range: [779, 786],
+ loc: {
+ start: { column: 2, line: 46 },
+ end: { column: 9, line: 46 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [786, 787],
+ loc: {
+ start: { column: 9, line: 46 },
+ end: { column: 10, line: 46 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "get",
+
+ range: [790, 793],
+ loc: {
+ start: { column: 2, line: 47 },
+ end: { column: 5, line: 47 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [793, 794],
+ loc: {
+ start: { column: 5, line: 47 },
+ end: { column: 6, line: 47 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "infer",
+
+ range: [797, 802],
+ loc: {
+ start: { column: 2, line: 48 },
+ end: { column: 7, line: 48 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [802, 803],
+ loc: {
+ start: { column: 7, line: 48 },
+ end: { column: 8, line: 48 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "is",
+
+ range: [806, 808],
+ loc: {
+ start: { column: 2, line: 49 },
+ end: { column: 4, line: 49 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [808, 809],
+ loc: {
+ start: { column: 4, line: 49 },
+ end: { column: 5, line: 49 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "keyof",
+
+ range: [812, 817],
+ loc: {
+ start: { column: 2, line: 50 },
+ end: { column: 7, line: 50 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [817, 818],
+ loc: {
+ start: { column: 7, line: 50 },
+ end: { column: 8, line: 50 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "module",
+
+ range: [821, 827],
+ loc: {
+ start: { column: 2, line: 51 },
+ end: { column: 8, line: 51 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [827, 828],
+ loc: {
+ start: { column: 8, line: 51 },
+ end: { column: 9, line: 51 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "namespace",
+
+ range: [831, 840],
+ loc: {
+ start: { column: 2, line: 52 },
+ end: { column: 11, line: 52 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [840, 841],
+ loc: {
+ start: { column: 11, line: 52 },
+ end: { column: 12, line: 52 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "never",
+
+ range: [844, 849],
+ loc: {
+ start: { column: 2, line: 53 },
+ end: { column: 7, line: 53 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [849, 850],
+ loc: {
+ start: { column: 7, line: 53 },
+ end: { column: 8, line: 53 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "readonly",
+
+ range: [853, 861],
+ loc: {
+ start: { column: 2, line: 54 },
+ end: { column: 10, line: 54 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [861, 862],
+ loc: {
+ start: { column: 10, line: 54 },
+ end: { column: 11, line: 54 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "require",
+
+ range: [865, 872],
+ loc: {
+ start: { column: 2, line: 55 },
+ end: { column: 9, line: 55 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [872, 873],
+ loc: {
+ start: { column: 9, line: 55 },
+ end: { column: 10, line: 55 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "number",
+
+ range: [876, 882],
+ loc: {
+ start: { column: 2, line: 56 },
+ end: { column: 8, line: 56 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [882, 883],
+ loc: {
+ start: { column: 8, line: 56 },
+ end: { column: 9, line: 56 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "object",
+
+ range: [886, 892],
+ loc: {
+ start: { column: 2, line: 57 },
+ end: { column: 8, line: 57 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [892, 893],
+ loc: {
+ start: { column: 8, line: 57 },
+ end: { column: 9, line: 57 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "set",
+
+ range: [896, 899],
+ loc: {
+ start: { column: 2, line: 58 },
+ end: { column: 5, line: 58 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [899, 900],
+ loc: {
+ start: { column: 5, line: 58 },
+ end: { column: 6, line: 58 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "string",
+
+ range: [903, 909],
+ loc: {
+ start: { column: 2, line: 59 },
+ end: { column: 8, line: 59 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [909, 910],
+ loc: {
+ start: { column: 8, line: 59 },
+ end: { column: 9, line: 59 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "symbol",
+
+ range: [913, 919],
+ loc: {
+ start: { column: 2, line: 60 },
+ end: { column: 8, line: 60 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [919, 920],
+ loc: {
+ start: { column: 8, line: 60 },
+ end: { column: 9, line: 60 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "type",
+
+ range: [923, 927],
+ loc: {
+ start: { column: 2, line: 61 },
+ end: { column: 6, line: 61 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [927, 928],
+ loc: {
+ start: { column: 6, line: 61 },
+ end: { column: 7, line: 61 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "undefined",
+
+ range: [931, 940],
+ loc: {
+ start: { column: 2, line: 62 },
+ end: { column: 11, line: 62 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [940, 941],
+ loc: {
+ start: { column: 11, line: 62 },
+ end: { column: 12, line: 62 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "unique",
+
+ range: [944, 950],
+ loc: {
+ start: { column: 2, line: 63 },
+ end: { column: 8, line: 63 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [950, 951],
+ loc: {
+ start: { column: 8, line: 63 },
+ end: { column: 9, line: 63 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "unknown",
+
+ range: [954, 961],
+ loc: {
+ start: { column: 2, line: 64 },
+ end: { column: 9, line: 64 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [961, 962],
+ loc: {
+ start: { column: 9, line: 64 },
+ end: { column: 10, line: 64 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [965, 969],
+ loc: {
+ start: { column: 2, line: 65 },
+ end: { column: 6, line: 65 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [969, 970],
+ loc: {
+ start: { column: 6, line: 65 },
+ end: { column: 7, line: 65 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "global",
+
+ range: [973, 979],
+ loc: {
+ start: { column: 2, line: 66 },
+ end: { column: 8, line: 66 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [979, 980],
+ loc: {
+ start: { column: 8, line: 66 },
+ end: { column: 9, line: 66 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "bigint",
+
+ range: [983, 989],
+ loc: {
+ start: { column: 2, line: 67 },
+ end: { column: 8, line: 67 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [989, 990],
+ loc: {
+ start: { column: 8, line: 67 },
+ end: { column: 9, line: 67 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "of",
+
+ range: [993, 995],
+ loc: {
+ start: { column: 2, line: 68 },
+ end: { column: 4, line: 68 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [995, 996],
+ loc: {
+ start: { column: 4, line: 68 },
+ end: { column: 5, line: 68 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [997, 998],
+ loc: {
+ start: { column: 0, line: 69 },
+ end: { column: 1, line: 69 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [999, 1003],
+ loc: {
+ start: { column: 2, line: 69 },
+ end: { column: 6, line: 69 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'fake-module'",
+
+ range: [1004, 1017],
+ loc: {
+ start: { column: 7, line: 69 },
+ end: { column: 20, line: 69 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [1017, 1018],
+ loc: {
+ start: { column: 20, line: 69 },
+ end: { column: 21, line: 69 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "interface",
+
+ range: [1020, 1029],
+ loc: {
+ start: { column: 0, line: 71 },
+ end: { column: 9, line: 71 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "X",
+
+ range: [1030, 1031],
+ loc: {
+ start: { column: 10, line: 71 },
+ end: { column: 11, line: 71 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [1032, 1033],
+ loc: {
+ start: { column: 12, line: 71 },
+ end: { column: 13, line: 71 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [1033, 1034],
+ loc: {
+ start: { column: 13, line: 71 },
+ end: { column: 14, line: 71 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "class",
+
+ range: [1035, 1040],
+ loc: {
+ start: { column: 0, line: 72 },
+ end: { column: 5, line: 72 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "C",
+
+ range: [1041, 1042],
+ loc: {
+ start: { column: 6, line: 72 },
+ end: { column: 7, line: 72 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "implements",
+
+ range: [1043, 1053],
+ loc: {
+ start: { column: 8, line: 72 },
+ end: { column: 18, line: 72 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "X",
+
+ range: [1054, 1055],
+ loc: {
+ start: { column: 19, line: 72 },
+ end: { column: 20, line: 72 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [1056, 1057],
+ loc: {
+ start: { column: 21, line: 72 },
+ end: { column: 22, line: 72 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "static",
+
+ range: [1060, 1066],
+ loc: {
+ start: { column: 2, line: 73 },
+ end: { column: 8, line: 73 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "a",
+
+ range: [1067, 1068],
+ loc: {
+ start: { column: 9, line: 73 },
+ end: { column: 10, line: 73 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "(",
+
+ range: [1068, 1069],
+ loc: {
+ start: { column: 10, line: 73 },
+ end: { column: 11, line: 73 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ")",
+
+ range: [1069, 1070],
+ loc: {
+ start: { column: 11, line: 73 },
+ end: { column: 12, line: 73 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [1071, 1072],
+ loc: {
+ start: { column: 13, line: 73 },
+ end: { column: 14, line: 73 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [1072, 1073],
+ loc: {
+ start: { column: 14, line: 73 },
+ end: { column: 15, line: 73 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "private",
+
+ range: [1076, 1083],
+ loc: {
+ start: { column: 2, line: 74 },
+ end: { column: 9, line: 74 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "b",
+
+ range: [1084, 1085],
+ loc: {
+ start: { column: 10, line: 74 },
+ end: { column: 11, line: 74 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "(",
+
+ range: [1085, 1086],
+ loc: {
+ start: { column: 11, line: 74 },
+ end: { column: 12, line: 74 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ")",
+
+ range: [1086, 1087],
+ loc: {
+ start: { column: 12, line: 74 },
+ end: { column: 13, line: 74 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [1088, 1089],
+ loc: {
+ start: { column: 14, line: 74 },
+ end: { column: 15, line: 74 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [1089, 1090],
+ loc: {
+ start: { column: 15, line: 74 },
+ end: { column: 16, line: 74 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "public",
+
+ range: [1093, 1099],
+ loc: {
+ start: { column: 2, line: 75 },
+ end: { column: 8, line: 75 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "c",
+
+ range: [1100, 1101],
+ loc: {
+ start: { column: 9, line: 75 },
+ end: { column: 10, line: 75 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "(",
+
+ range: [1101, 1102],
+ loc: {
+ start: { column: 10, line: 75 },
+ end: { column: 11, line: 75 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ")",
+
+ range: [1102, 1103],
+ loc: {
+ start: { column: 11, line: 75 },
+ end: { column: 12, line: 75 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [1104, 1105],
+ loc: {
+ start: { column: 13, line: 75 },
+ end: { column: 14, line: 75 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [1105, 1106],
+ loc: {
+ start: { column: 14, line: 75 },
+ end: { column: 15, line: 75 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "protected",
+
+ range: [1109, 1118],
+ loc: {
+ start: { column: 2, line: 76 },
+ end: { column: 11, line: 76 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "*",
+
+ range: [1119, 1120],
+ loc: {
+ start: { column: 12, line: 76 },
+ end: { column: 13, line: 76 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "d",
+
+ range: [1120, 1121],
+ loc: {
+ start: { column: 13, line: 76 },
+ end: { column: 14, line: 76 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "(",
+
+ range: [1121, 1122],
+ loc: {
+ start: { column: 14, line: 76 },
+ end: { column: 15, line: 76 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ")",
+
+ range: [1122, 1123],
+ loc: {
+ start: { column: 15, line: 76 },
+ end: { column: 16, line: 76 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [1124, 1125],
+ loc: {
+ start: { column: 17, line: 76 },
+ end: { column: 18, line: 76 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "let",
+
+ range: [1130, 1133],
+ loc: {
+ start: { column: 4, line: 77 },
+ end: { column: 7, line: 77 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "x",
+
+ range: [1134, 1135],
+ loc: {
+ start: { column: 8, line: 77 },
+ end: { column: 9, line: 77 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [1136, 1137],
+ loc: {
+ start: { column: 10, line: 77 },
+ end: { column: 11, line: 77 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "yield",
+
+ range: [1138, 1143],
+ loc: {
+ start: { column: 12, line: 77 },
+ end: { column: 17, line: 77 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [1143, 1144],
+ loc: {
+ start: { column: 17, line: 77 },
+ end: { column: 18, line: 77 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [1147, 1148],
+ loc: {
+ start: { column: 2, line: 78 },
+ end: { column: 3, line: 78 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [1149, 1150],
+ loc: {
+ start: { column: 0, line: 79 },
+ end: { column: 1, line: 79 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/3-Babel-AST.shot
new file mode 100644
index 000000000000..81f35fdd1774
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/3-Babel-AST.shot
@@ -0,0 +1,2594 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics keyword-variables Babel - AST 1`] = `
+Program {
+ type: "Program",
+ body: Array [
+ BlockStatement {
+ type: "BlockStatement",
+ body: Array [
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "abstract",
+
+ range: [83, 91],
+ loc: {
+ start: { column: 8, line: 4 },
+ end: { column: 16, line: 4 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [94, 95],
+ loc: {
+ start: { column: 19, line: 4 },
+ end: { column: 20, line: 4 },
+ },
+ },
+
+ range: [83, 95],
+ loc: {
+ start: { column: 8, line: 4 },
+ end: { column: 20, line: 4 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [77, 96],
+ loc: {
+ start: { column: 2, line: 4 },
+ end: { column: 21, line: 4 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "as",
+
+ range: [105, 107],
+ loc: {
+ start: { column: 8, line: 5 },
+ end: { column: 10, line: 5 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [110, 111],
+ loc: {
+ start: { column: 13, line: 5 },
+ end: { column: 14, line: 5 },
+ },
+ },
+
+ range: [105, 111],
+ loc: {
+ start: { column: 8, line: 5 },
+ end: { column: 14, line: 5 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [99, 112],
+ loc: {
+ start: { column: 2, line: 5 },
+ end: { column: 15, line: 5 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "asserts",
+
+ range: [121, 128],
+ loc: {
+ start: { column: 8, line: 6 },
+ end: { column: 15, line: 6 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [131, 132],
+ loc: {
+ start: { column: 18, line: 6 },
+ end: { column: 19, line: 6 },
+ },
+ },
+
+ range: [121, 132],
+ loc: {
+ start: { column: 8, line: 6 },
+ end: { column: 19, line: 6 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [115, 133],
+ loc: {
+ start: { column: 2, line: 6 },
+ end: { column: 20, line: 6 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "any",
+
+ range: [142, 145],
+ loc: {
+ start: { column: 8, line: 7 },
+ end: { column: 11, line: 7 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [148, 149],
+ loc: {
+ start: { column: 14, line: 7 },
+ end: { column: 15, line: 7 },
+ },
+ },
+
+ range: [142, 149],
+ loc: {
+ start: { column: 8, line: 7 },
+ end: { column: 15, line: 7 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [136, 150],
+ loc: {
+ start: { column: 2, line: 7 },
+ end: { column: 16, line: 7 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "async",
+
+ range: [159, 164],
+ loc: {
+ start: { column: 8, line: 8 },
+ end: { column: 13, line: 8 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [167, 168],
+ loc: {
+ start: { column: 16, line: 8 },
+ end: { column: 17, line: 8 },
+ },
+ },
+
+ range: [159, 168],
+ loc: {
+ start: { column: 8, line: 8 },
+ end: { column: 17, line: 8 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [153, 169],
+ loc: {
+ start: { column: 2, line: 8 },
+ end: { column: 18, line: 8 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "await",
+
+ range: [178, 183],
+ loc: {
+ start: { column: 8, line: 9 },
+ end: { column: 13, line: 9 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [186, 187],
+ loc: {
+ start: { column: 16, line: 9 },
+ end: { column: 17, line: 9 },
+ },
+ },
+
+ range: [178, 187],
+ loc: {
+ start: { column: 8, line: 9 },
+ end: { column: 17, line: 9 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [172, 188],
+ loc: {
+ start: { column: 2, line: 9 },
+ end: { column: 18, line: 9 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "boolean",
+
+ range: [197, 204],
+ loc: {
+ start: { column: 8, line: 10 },
+ end: { column: 15, line: 10 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [207, 208],
+ loc: {
+ start: { column: 18, line: 10 },
+ end: { column: 19, line: 10 },
+ },
+ },
+
+ range: [197, 208],
+ loc: {
+ start: { column: 8, line: 10 },
+ end: { column: 19, line: 10 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [191, 209],
+ loc: {
+ start: { column: 2, line: 10 },
+ end: { column: 20, line: 10 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "constructor",
+
+ range: [218, 229],
+ loc: {
+ start: { column: 8, line: 11 },
+ end: { column: 19, line: 11 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [232, 233],
+ loc: {
+ start: { column: 22, line: 11 },
+ end: { column: 23, line: 11 },
+ },
+ },
+
+ range: [218, 233],
+ loc: {
+ start: { column: 8, line: 11 },
+ end: { column: 23, line: 11 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [212, 234],
+ loc: {
+ start: { column: 2, line: 11 },
+ end: { column: 24, line: 11 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "declare",
+
+ range: [243, 250],
+ loc: {
+ start: { column: 8, line: 12 },
+ end: { column: 15, line: 12 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [253, 254],
+ loc: {
+ start: { column: 18, line: 12 },
+ end: { column: 19, line: 12 },
+ },
+ },
+
+ range: [243, 254],
+ loc: {
+ start: { column: 8, line: 12 },
+ end: { column: 19, line: 12 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [237, 255],
+ loc: {
+ start: { column: 2, line: 12 },
+ end: { column: 20, line: 12 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "get",
+
+ range: [264, 267],
+ loc: {
+ start: { column: 8, line: 13 },
+ end: { column: 11, line: 13 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [270, 271],
+ loc: {
+ start: { column: 14, line: 13 },
+ end: { column: 15, line: 13 },
+ },
+ },
+
+ range: [264, 271],
+ loc: {
+ start: { column: 8, line: 13 },
+ end: { column: 15, line: 13 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [258, 272],
+ loc: {
+ start: { column: 2, line: 13 },
+ end: { column: 16, line: 13 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "infer",
+
+ range: [281, 286],
+ loc: {
+ start: { column: 8, line: 14 },
+ end: { column: 13, line: 14 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [289, 290],
+ loc: {
+ start: { column: 16, line: 14 },
+ end: { column: 17, line: 14 },
+ },
+ },
+
+ range: [281, 290],
+ loc: {
+ start: { column: 8, line: 14 },
+ end: { column: 17, line: 14 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [275, 291],
+ loc: {
+ start: { column: 2, line: 14 },
+ end: { column: 18, line: 14 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "is",
+
+ range: [300, 302],
+ loc: {
+ start: { column: 8, line: 15 },
+ end: { column: 10, line: 15 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [305, 306],
+ loc: {
+ start: { column: 13, line: 15 },
+ end: { column: 14, line: 15 },
+ },
+ },
+
+ range: [300, 306],
+ loc: {
+ start: { column: 8, line: 15 },
+ end: { column: 14, line: 15 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [294, 307],
+ loc: {
+ start: { column: 2, line: 15 },
+ end: { column: 15, line: 15 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "keyof",
+
+ range: [316, 321],
+ loc: {
+ start: { column: 8, line: 16 },
+ end: { column: 13, line: 16 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [324, 325],
+ loc: {
+ start: { column: 16, line: 16 },
+ end: { column: 17, line: 16 },
+ },
+ },
+
+ range: [316, 325],
+ loc: {
+ start: { column: 8, line: 16 },
+ end: { column: 17, line: 16 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [310, 326],
+ loc: {
+ start: { column: 2, line: 16 },
+ end: { column: 18, line: 16 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "module",
+
+ range: [335, 341],
+ loc: {
+ start: { column: 8, line: 17 },
+ end: { column: 14, line: 17 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [344, 345],
+ loc: {
+ start: { column: 17, line: 17 },
+ end: { column: 18, line: 17 },
+ },
+ },
+
+ range: [335, 345],
+ loc: {
+ start: { column: 8, line: 17 },
+ end: { column: 18, line: 17 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [329, 346],
+ loc: {
+ start: { column: 2, line: 17 },
+ end: { column: 19, line: 17 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "namespace",
+
+ range: [355, 364],
+ loc: {
+ start: { column: 8, line: 18 },
+ end: { column: 17, line: 18 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [367, 368],
+ loc: {
+ start: { column: 20, line: 18 },
+ end: { column: 21, line: 18 },
+ },
+ },
+
+ range: [355, 368],
+ loc: {
+ start: { column: 8, line: 18 },
+ end: { column: 21, line: 18 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [349, 369],
+ loc: {
+ start: { column: 2, line: 18 },
+ end: { column: 22, line: 18 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "never",
+
+ range: [378, 383],
+ loc: {
+ start: { column: 8, line: 19 },
+ end: { column: 13, line: 19 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [386, 387],
+ loc: {
+ start: { column: 16, line: 19 },
+ end: { column: 17, line: 19 },
+ },
+ },
+
+ range: [378, 387],
+ loc: {
+ start: { column: 8, line: 19 },
+ end: { column: 17, line: 19 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [372, 388],
+ loc: {
+ start: { column: 2, line: 19 },
+ end: { column: 18, line: 19 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "readonly",
+
+ range: [397, 405],
+ loc: {
+ start: { column: 8, line: 20 },
+ end: { column: 16, line: 20 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [408, 409],
+ loc: {
+ start: { column: 19, line: 20 },
+ end: { column: 20, line: 20 },
+ },
+ },
+
+ range: [397, 409],
+ loc: {
+ start: { column: 8, line: 20 },
+ end: { column: 20, line: 20 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [391, 410],
+ loc: {
+ start: { column: 2, line: 20 },
+ end: { column: 21, line: 20 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "require",
+
+ range: [419, 426],
+ loc: {
+ start: { column: 8, line: 21 },
+ end: { column: 15, line: 21 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [429, 430],
+ loc: {
+ start: { column: 18, line: 21 },
+ end: { column: 19, line: 21 },
+ },
+ },
+
+ range: [419, 430],
+ loc: {
+ start: { column: 8, line: 21 },
+ end: { column: 19, line: 21 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [413, 431],
+ loc: {
+ start: { column: 2, line: 21 },
+ end: { column: 20, line: 21 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "number",
+
+ range: [440, 446],
+ loc: {
+ start: { column: 8, line: 22 },
+ end: { column: 14, line: 22 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [449, 450],
+ loc: {
+ start: { column: 17, line: 22 },
+ end: { column: 18, line: 22 },
+ },
+ },
+
+ range: [440, 450],
+ loc: {
+ start: { column: 8, line: 22 },
+ end: { column: 18, line: 22 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [434, 451],
+ loc: {
+ start: { column: 2, line: 22 },
+ end: { column: 19, line: 22 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "object",
+
+ range: [460, 466],
+ loc: {
+ start: { column: 8, line: 23 },
+ end: { column: 14, line: 23 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [469, 470],
+ loc: {
+ start: { column: 17, line: 23 },
+ end: { column: 18, line: 23 },
+ },
+ },
+
+ range: [460, 470],
+ loc: {
+ start: { column: 8, line: 23 },
+ end: { column: 18, line: 23 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [454, 471],
+ loc: {
+ start: { column: 2, line: 23 },
+ end: { column: 19, line: 23 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "set",
+
+ range: [480, 483],
+ loc: {
+ start: { column: 8, line: 24 },
+ end: { column: 11, line: 24 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [486, 487],
+ loc: {
+ start: { column: 14, line: 24 },
+ end: { column: 15, line: 24 },
+ },
+ },
+
+ range: [480, 487],
+ loc: {
+ start: { column: 8, line: 24 },
+ end: { column: 15, line: 24 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [474, 488],
+ loc: {
+ start: { column: 2, line: 24 },
+ end: { column: 16, line: 24 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "string",
+
+ range: [497, 503],
+ loc: {
+ start: { column: 8, line: 25 },
+ end: { column: 14, line: 25 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [506, 507],
+ loc: {
+ start: { column: 17, line: 25 },
+ end: { column: 18, line: 25 },
+ },
+ },
+
+ range: [497, 507],
+ loc: {
+ start: { column: 8, line: 25 },
+ end: { column: 18, line: 25 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [491, 508],
+ loc: {
+ start: { column: 2, line: 25 },
+ end: { column: 19, line: 25 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "symbol",
+
+ range: [517, 523],
+ loc: {
+ start: { column: 8, line: 26 },
+ end: { column: 14, line: 26 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [526, 527],
+ loc: {
+ start: { column: 17, line: 26 },
+ end: { column: 18, line: 26 },
+ },
+ },
+
+ range: [517, 527],
+ loc: {
+ start: { column: 8, line: 26 },
+ end: { column: 18, line: 26 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [511, 528],
+ loc: {
+ start: { column: 2, line: 26 },
+ end: { column: 19, line: 26 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "type",
+
+ range: [537, 541],
+ loc: {
+ start: { column: 8, line: 27 },
+ end: { column: 12, line: 27 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [544, 545],
+ loc: {
+ start: { column: 15, line: 27 },
+ end: { column: 16, line: 27 },
+ },
+ },
+
+ range: [537, 545],
+ loc: {
+ start: { column: 8, line: 27 },
+ end: { column: 16, line: 27 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [531, 546],
+ loc: {
+ start: { column: 2, line: 27 },
+ end: { column: 17, line: 27 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "undefined",
+
+ range: [555, 564],
+ loc: {
+ start: { column: 8, line: 28 },
+ end: { column: 17, line: 28 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [567, 568],
+ loc: {
+ start: { column: 20, line: 28 },
+ end: { column: 21, line: 28 },
+ },
+ },
+
+ range: [555, 568],
+ loc: {
+ start: { column: 8, line: 28 },
+ end: { column: 21, line: 28 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [549, 569],
+ loc: {
+ start: { column: 2, line: 28 },
+ end: { column: 22, line: 28 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "unique",
+
+ range: [578, 584],
+ loc: {
+ start: { column: 8, line: 29 },
+ end: { column: 14, line: 29 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [587, 588],
+ loc: {
+ start: { column: 17, line: 29 },
+ end: { column: 18, line: 29 },
+ },
+ },
+
+ range: [578, 588],
+ loc: {
+ start: { column: 8, line: 29 },
+ end: { column: 18, line: 29 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [572, 589],
+ loc: {
+ start: { column: 2, line: 29 },
+ end: { column: 19, line: 29 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "unknown",
+
+ range: [598, 605],
+ loc: {
+ start: { column: 8, line: 30 },
+ end: { column: 15, line: 30 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [608, 609],
+ loc: {
+ start: { column: 18, line: 30 },
+ end: { column: 19, line: 30 },
+ },
+ },
+
+ range: [598, 609],
+ loc: {
+ start: { column: 8, line: 30 },
+ end: { column: 19, line: 30 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [592, 610],
+ loc: {
+ start: { column: 2, line: 30 },
+ end: { column: 20, line: 30 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "from",
+
+ range: [619, 623],
+ loc: {
+ start: { column: 8, line: 31 },
+ end: { column: 12, line: 31 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [626, 627],
+ loc: {
+ start: { column: 15, line: 31 },
+ end: { column: 16, line: 31 },
+ },
+ },
+
+ range: [619, 627],
+ loc: {
+ start: { column: 8, line: 31 },
+ end: { column: 16, line: 31 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [613, 628],
+ loc: {
+ start: { column: 2, line: 31 },
+ end: { column: 17, line: 31 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "global",
+
+ range: [637, 643],
+ loc: {
+ start: { column: 8, line: 32 },
+ end: { column: 14, line: 32 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [646, 647],
+ loc: {
+ start: { column: 17, line: 32 },
+ end: { column: 18, line: 32 },
+ },
+ },
+
+ range: [637, 647],
+ loc: {
+ start: { column: 8, line: 32 },
+ end: { column: 18, line: 32 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [631, 648],
+ loc: {
+ start: { column: 2, line: 32 },
+ end: { column: 19, line: 32 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "bigint",
+
+ range: [657, 663],
+ loc: {
+ start: { column: 8, line: 33 },
+ end: { column: 14, line: 33 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [666, 667],
+ loc: {
+ start: { column: 17, line: 33 },
+ end: { column: 18, line: 33 },
+ },
+ },
+
+ range: [657, 667],
+ loc: {
+ start: { column: 8, line: 33 },
+ end: { column: 18, line: 33 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [651, 668],
+ loc: {
+ start: { column: 2, line: 33 },
+ end: { column: 19, line: 33 },
+ },
+ },
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "of",
+
+ range: [677, 679],
+ loc: {
+ start: { column: 8, line: 34 },
+ end: { column: 10, line: 34 },
+ },
+ },
+ init: Literal {
+ type: "Literal",
+ raw: "1",
+ value: 1,
+
+ range: [682, 683],
+ loc: {
+ start: { column: 13, line: 34 },
+ end: { column: 14, line: 34 },
+ },
+ },
+
+ range: [677, 683],
+ loc: {
+ start: { column: 8, line: 34 },
+ end: { column: 14, line: 34 },
+ },
+ },
+ ],
+ kind: "const",
+
+ range: [671, 684],
+ loc: {
+ start: { column: 2, line: 34 },
+ end: { column: 15, line: 34 },
+ },
+ },
+ ],
+
+ range: [73, 686],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 1, line: 35 },
+ },
+ },
+ ImportDeclaration {
+ type: "ImportDeclaration",
+ assertions: Array [],
+ importKind: "value",
+ source: Literal {
+ type: "Literal",
+ raw: "'fake-module'",
+ value: "fake-module",
+
+ range: [1004, 1017],
+ loc: {
+ start: { column: 7, line: 69 },
+ end: { column: 20, line: 69 },
+ },
+ },
+ specifiers: Array [
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "abstract",
+
+ range: [699, 707],
+ loc: {
+ start: { column: 2, line: 38 },
+ end: { column: 10, line: 38 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "abstract",
+
+ range: [699, 707],
+ loc: {
+ start: { column: 2, line: 38 },
+ end: { column: 10, line: 38 },
+ },
+ },
+
+ range: [699, 707],
+ loc: {
+ start: { column: 2, line: 38 },
+ end: { column: 10, line: 38 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "as",
+
+ range: [711, 713],
+ loc: {
+ start: { column: 2, line: 39 },
+ end: { column: 4, line: 39 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "as",
+
+ range: [711, 713],
+ loc: {
+ start: { column: 2, line: 39 },
+ end: { column: 4, line: 39 },
+ },
+ },
+
+ range: [711, 713],
+ loc: {
+ start: { column: 2, line: 39 },
+ end: { column: 4, line: 39 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "asserts",
+
+ range: [717, 724],
+ loc: {
+ start: { column: 2, line: 40 },
+ end: { column: 9, line: 40 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "asserts",
+
+ range: [717, 724],
+ loc: {
+ start: { column: 2, line: 40 },
+ end: { column: 9, line: 40 },
+ },
+ },
+
+ range: [717, 724],
+ loc: {
+ start: { column: 2, line: 40 },
+ end: { column: 9, line: 40 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "any",
+
+ range: [728, 731],
+ loc: {
+ start: { column: 2, line: 41 },
+ end: { column: 5, line: 41 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "any",
+
+ range: [728, 731],
+ loc: {
+ start: { column: 2, line: 41 },
+ end: { column: 5, line: 41 },
+ },
+ },
+
+ range: [728, 731],
+ loc: {
+ start: { column: 2, line: 41 },
+ end: { column: 5, line: 41 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "async",
+
+ range: [735, 740],
+ loc: {
+ start: { column: 2, line: 42 },
+ end: { column: 7, line: 42 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "async",
+
+ range: [735, 740],
+ loc: {
+ start: { column: 2, line: 42 },
+ end: { column: 7, line: 42 },
+ },
+ },
+
+ range: [735, 740],
+ loc: {
+ start: { column: 2, line: 42 },
+ end: { column: 7, line: 42 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "await",
+
+ range: [744, 749],
+ loc: {
+ start: { column: 2, line: 43 },
+ end: { column: 7, line: 43 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "await",
+
+ range: [744, 749],
+ loc: {
+ start: { column: 2, line: 43 },
+ end: { column: 7, line: 43 },
+ },
+ },
+
+ range: [744, 749],
+ loc: {
+ start: { column: 2, line: 43 },
+ end: { column: 7, line: 43 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "boolean",
+
+ range: [753, 760],
+ loc: {
+ start: { column: 2, line: 44 },
+ end: { column: 9, line: 44 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "boolean",
+
+ range: [753, 760],
+ loc: {
+ start: { column: 2, line: 44 },
+ end: { column: 9, line: 44 },
+ },
+ },
+
+ range: [753, 760],
+ loc: {
+ start: { column: 2, line: 44 },
+ end: { column: 9, line: 44 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "constructor",
+
+ range: [764, 775],
+ loc: {
+ start: { column: 2, line: 45 },
+ end: { column: 13, line: 45 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "constructor",
+
+ range: [764, 775],
+ loc: {
+ start: { column: 2, line: 45 },
+ end: { column: 13, line: 45 },
+ },
+ },
+
+ range: [764, 775],
+ loc: {
+ start: { column: 2, line: 45 },
+ end: { column: 13, line: 45 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "declare",
+
+ range: [779, 786],
+ loc: {
+ start: { column: 2, line: 46 },
+ end: { column: 9, line: 46 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "declare",
+
+ range: [779, 786],
+ loc: {
+ start: { column: 2, line: 46 },
+ end: { column: 9, line: 46 },
+ },
+ },
+
+ range: [779, 786],
+ loc: {
+ start: { column: 2, line: 46 },
+ end: { column: 9, line: 46 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "get",
+
+ range: [790, 793],
+ loc: {
+ start: { column: 2, line: 47 },
+ end: { column: 5, line: 47 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "get",
+
+ range: [790, 793],
+ loc: {
+ start: { column: 2, line: 47 },
+ end: { column: 5, line: 47 },
+ },
+ },
+
+ range: [790, 793],
+ loc: {
+ start: { column: 2, line: 47 },
+ end: { column: 5, line: 47 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "infer",
+
+ range: [797, 802],
+ loc: {
+ start: { column: 2, line: 48 },
+ end: { column: 7, line: 48 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "infer",
+
+ range: [797, 802],
+ loc: {
+ start: { column: 2, line: 48 },
+ end: { column: 7, line: 48 },
+ },
+ },
+
+ range: [797, 802],
+ loc: {
+ start: { column: 2, line: 48 },
+ end: { column: 7, line: 48 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "is",
+
+ range: [806, 808],
+ loc: {
+ start: { column: 2, line: 49 },
+ end: { column: 4, line: 49 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "is",
+
+ range: [806, 808],
+ loc: {
+ start: { column: 2, line: 49 },
+ end: { column: 4, line: 49 },
+ },
+ },
+
+ range: [806, 808],
+ loc: {
+ start: { column: 2, line: 49 },
+ end: { column: 4, line: 49 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "keyof",
+
+ range: [812, 817],
+ loc: {
+ start: { column: 2, line: 50 },
+ end: { column: 7, line: 50 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "keyof",
+
+ range: [812, 817],
+ loc: {
+ start: { column: 2, line: 50 },
+ end: { column: 7, line: 50 },
+ },
+ },
+
+ range: [812, 817],
+ loc: {
+ start: { column: 2, line: 50 },
+ end: { column: 7, line: 50 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "module",
+
+ range: [821, 827],
+ loc: {
+ start: { column: 2, line: 51 },
+ end: { column: 8, line: 51 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "module",
+
+ range: [821, 827],
+ loc: {
+ start: { column: 2, line: 51 },
+ end: { column: 8, line: 51 },
+ },
+ },
+
+ range: [821, 827],
+ loc: {
+ start: { column: 2, line: 51 },
+ end: { column: 8, line: 51 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "namespace",
+
+ range: [831, 840],
+ loc: {
+ start: { column: 2, line: 52 },
+ end: { column: 11, line: 52 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "namespace",
+
+ range: [831, 840],
+ loc: {
+ start: { column: 2, line: 52 },
+ end: { column: 11, line: 52 },
+ },
+ },
+
+ range: [831, 840],
+ loc: {
+ start: { column: 2, line: 52 },
+ end: { column: 11, line: 52 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "never",
+
+ range: [844, 849],
+ loc: {
+ start: { column: 2, line: 53 },
+ end: { column: 7, line: 53 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "never",
+
+ range: [844, 849],
+ loc: {
+ start: { column: 2, line: 53 },
+ end: { column: 7, line: 53 },
+ },
+ },
+
+ range: [844, 849],
+ loc: {
+ start: { column: 2, line: 53 },
+ end: { column: 7, line: 53 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "readonly",
+
+ range: [853, 861],
+ loc: {
+ start: { column: 2, line: 54 },
+ end: { column: 10, line: 54 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "readonly",
+
+ range: [853, 861],
+ loc: {
+ start: { column: 2, line: 54 },
+ end: { column: 10, line: 54 },
+ },
+ },
+
+ range: [853, 861],
+ loc: {
+ start: { column: 2, line: 54 },
+ end: { column: 10, line: 54 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "require",
+
+ range: [865, 872],
+ loc: {
+ start: { column: 2, line: 55 },
+ end: { column: 9, line: 55 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "require",
+
+ range: [865, 872],
+ loc: {
+ start: { column: 2, line: 55 },
+ end: { column: 9, line: 55 },
+ },
+ },
+
+ range: [865, 872],
+ loc: {
+ start: { column: 2, line: 55 },
+ end: { column: 9, line: 55 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "number",
+
+ range: [876, 882],
+ loc: {
+ start: { column: 2, line: 56 },
+ end: { column: 8, line: 56 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "number",
+
+ range: [876, 882],
+ loc: {
+ start: { column: 2, line: 56 },
+ end: { column: 8, line: 56 },
+ },
+ },
+
+ range: [876, 882],
+ loc: {
+ start: { column: 2, line: 56 },
+ end: { column: 8, line: 56 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "object",
+
+ range: [886, 892],
+ loc: {
+ start: { column: 2, line: 57 },
+ end: { column: 8, line: 57 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "object",
+
+ range: [886, 892],
+ loc: {
+ start: { column: 2, line: 57 },
+ end: { column: 8, line: 57 },
+ },
+ },
+
+ range: [886, 892],
+ loc: {
+ start: { column: 2, line: 57 },
+ end: { column: 8, line: 57 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "set",
+
+ range: [896, 899],
+ loc: {
+ start: { column: 2, line: 58 },
+ end: { column: 5, line: 58 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "set",
+
+ range: [896, 899],
+ loc: {
+ start: { column: 2, line: 58 },
+ end: { column: 5, line: 58 },
+ },
+ },
+
+ range: [896, 899],
+ loc: {
+ start: { column: 2, line: 58 },
+ end: { column: 5, line: 58 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "string",
+
+ range: [903, 909],
+ loc: {
+ start: { column: 2, line: 59 },
+ end: { column: 8, line: 59 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "string",
+
+ range: [903, 909],
+ loc: {
+ start: { column: 2, line: 59 },
+ end: { column: 8, line: 59 },
+ },
+ },
+
+ range: [903, 909],
+ loc: {
+ start: { column: 2, line: 59 },
+ end: { column: 8, line: 59 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "symbol",
+
+ range: [913, 919],
+ loc: {
+ start: { column: 2, line: 60 },
+ end: { column: 8, line: 60 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "symbol",
+
+ range: [913, 919],
+ loc: {
+ start: { column: 2, line: 60 },
+ end: { column: 8, line: 60 },
+ },
+ },
+
+ range: [913, 919],
+ loc: {
+ start: { column: 2, line: 60 },
+ end: { column: 8, line: 60 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "type",
+
+ range: [923, 927],
+ loc: {
+ start: { column: 2, line: 61 },
+ end: { column: 6, line: 61 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "type",
+
+ range: [923, 927],
+ loc: {
+ start: { column: 2, line: 61 },
+ end: { column: 6, line: 61 },
+ },
+ },
+
+ range: [923, 927],
+ loc: {
+ start: { column: 2, line: 61 },
+ end: { column: 6, line: 61 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "undefined",
+
+ range: [931, 940],
+ loc: {
+ start: { column: 2, line: 62 },
+ end: { column: 11, line: 62 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "undefined",
+
+ range: [931, 940],
+ loc: {
+ start: { column: 2, line: 62 },
+ end: { column: 11, line: 62 },
+ },
+ },
+
+ range: [931, 940],
+ loc: {
+ start: { column: 2, line: 62 },
+ end: { column: 11, line: 62 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "unique",
+
+ range: [944, 950],
+ loc: {
+ start: { column: 2, line: 63 },
+ end: { column: 8, line: 63 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "unique",
+
+ range: [944, 950],
+ loc: {
+ start: { column: 2, line: 63 },
+ end: { column: 8, line: 63 },
+ },
+ },
+
+ range: [944, 950],
+ loc: {
+ start: { column: 2, line: 63 },
+ end: { column: 8, line: 63 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "unknown",
+
+ range: [954, 961],
+ loc: {
+ start: { column: 2, line: 64 },
+ end: { column: 9, line: 64 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "unknown",
+
+ range: [954, 961],
+ loc: {
+ start: { column: 2, line: 64 },
+ end: { column: 9, line: 64 },
+ },
+ },
+
+ range: [954, 961],
+ loc: {
+ start: { column: 2, line: 64 },
+ end: { column: 9, line: 64 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "from",
+
+ range: [965, 969],
+ loc: {
+ start: { column: 2, line: 65 },
+ end: { column: 6, line: 65 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "from",
+
+ range: [965, 969],
+ loc: {
+ start: { column: 2, line: 65 },
+ end: { column: 6, line: 65 },
+ },
+ },
+
+ range: [965, 969],
+ loc: {
+ start: { column: 2, line: 65 },
+ end: { column: 6, line: 65 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "global",
+
+ range: [973, 979],
+ loc: {
+ start: { column: 2, line: 66 },
+ end: { column: 8, line: 66 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "global",
+
+ range: [973, 979],
+ loc: {
+ start: { column: 2, line: 66 },
+ end: { column: 8, line: 66 },
+ },
+ },
+
+ range: [973, 979],
+ loc: {
+ start: { column: 2, line: 66 },
+ end: { column: 8, line: 66 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "bigint",
+
+ range: [983, 989],
+ loc: {
+ start: { column: 2, line: 67 },
+ end: { column: 8, line: 67 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "bigint",
+
+ range: [983, 989],
+ loc: {
+ start: { column: 2, line: 67 },
+ end: { column: 8, line: 67 },
+ },
+ },
+
+ range: [983, 989],
+ loc: {
+ start: { column: 2, line: 67 },
+ end: { column: 8, line: 67 },
+ },
+ },
+ ImportSpecifier {
+ type: "ImportSpecifier",
+ imported: Identifier {
+ type: "Identifier",
+ name: "of",
+
+ range: [993, 995],
+ loc: {
+ start: { column: 2, line: 68 },
+ end: { column: 4, line: 68 },
+ },
+ },
+ importKind: "value",
+ local: Identifier {
+ type: "Identifier",
+ name: "of",
+
+ range: [993, 995],
+ loc: {
+ start: { column: 2, line: 68 },
+ end: { column: 4, line: 68 },
+ },
+ },
+
+ range: [993, 995],
+ loc: {
+ start: { column: 2, line: 68 },
+ end: { column: 4, line: 68 },
+ },
+ },
+ ],
+
+ range: [688, 1018],
+ loc: {
+ start: { column: 0, line: 37 },
+ end: { column: 21, line: 69 },
+ },
+ },
+ TSInterfaceDeclaration {
+ type: "TSInterfaceDeclaration",
+ body: TSInterfaceBody {
+ type: "TSInterfaceBody",
+ body: Array [],
+
+ range: [1032, 1034],
+ loc: {
+ start: { column: 12, line: 71 },
+ end: { column: 14, line: 71 },
+ },
+ },
+ id: Identifier {
+ type: "Identifier",
+ name: "X",
+
+ range: [1030, 1031],
+ loc: {
+ start: { column: 10, line: 71 },
+ end: { column: 11, line: 71 },
+ },
+ },
+
+ range: [1020, 1034],
+ loc: {
+ start: { column: 0, line: 71 },
+ end: { column: 14, line: 71 },
+ },
+ },
+ ClassDeclaration {
+ type: "ClassDeclaration",
+ body: ClassBody {
+ type: "ClassBody",
+ body: Array [
+ MethodDefinition {
+ type: "MethodDefinition",
+ computed: false,
+ key: Identifier {
+ type: "Identifier",
+ name: "a",
+
+ range: [1067, 1068],
+ loc: {
+ start: { column: 9, line: 73 },
+ end: { column: 10, line: 73 },
+ },
+ },
+ kind: "method",
+ static: true,
+ value: FunctionExpression {
+ type: "FunctionExpression",
+ async: false,
+ body: BlockStatement {
+ type: "BlockStatement",
+ body: Array [],
+
+ range: [1071, 1073],
+ loc: {
+ start: { column: 13, line: 73 },
+ end: { column: 15, line: 73 },
+ },
+ },
+ expression: false,
+ generator: false,
+ id: null,
+ params: Array [],
+
+ range: [1068, 1073],
+ loc: {
+ start: { column: 10, line: 73 },
+ end: { column: 15, line: 73 },
+ },
+ },
+
+ range: [1060, 1073],
+ loc: {
+ start: { column: 2, line: 73 },
+ end: { column: 15, line: 73 },
+ },
+ },
+ MethodDefinition {
+ type: "MethodDefinition",
+ accessibility: "private",
+ computed: false,
+ key: Identifier {
+ type: "Identifier",
+ name: "b",
+
+ range: [1084, 1085],
+ loc: {
+ start: { column: 10, line: 74 },
+ end: { column: 11, line: 74 },
+ },
+ },
+ kind: "method",
+ static: false,
+ value: FunctionExpression {
+ type: "FunctionExpression",
+ async: false,
+ body: BlockStatement {
+ type: "BlockStatement",
+ body: Array [],
+
+ range: [1088, 1090],
+ loc: {
+ start: { column: 14, line: 74 },
+ end: { column: 16, line: 74 },
+ },
+ },
+ expression: false,
+ generator: false,
+ id: null,
+ params: Array [],
+
+ range: [1085, 1090],
+ loc: {
+ start: { column: 11, line: 74 },
+ end: { column: 16, line: 74 },
+ },
+ },
+
+ range: [1076, 1090],
+ loc: {
+ start: { column: 2, line: 74 },
+ end: { column: 16, line: 74 },
+ },
+ },
+ MethodDefinition {
+ type: "MethodDefinition",
+ accessibility: "public",
+ computed: false,
+ key: Identifier {
+ type: "Identifier",
+ name: "c",
+
+ range: [1100, 1101],
+ loc: {
+ start: { column: 9, line: 75 },
+ end: { column: 10, line: 75 },
+ },
+ },
+ kind: "method",
+ static: false,
+ value: FunctionExpression {
+ type: "FunctionExpression",
+ async: false,
+ body: BlockStatement {
+ type: "BlockStatement",
+ body: Array [],
+
+ range: [1104, 1106],
+ loc: {
+ start: { column: 13, line: 75 },
+ end: { column: 15, line: 75 },
+ },
+ },
+ expression: false,
+ generator: false,
+ id: null,
+ params: Array [],
+
+ range: [1101, 1106],
+ loc: {
+ start: { column: 10, line: 75 },
+ end: { column: 15, line: 75 },
+ },
+ },
+
+ range: [1093, 1106],
+ loc: {
+ start: { column: 2, line: 75 },
+ end: { column: 15, line: 75 },
+ },
+ },
+ MethodDefinition {
+ type: "MethodDefinition",
+ accessibility: "protected",
+ computed: false,
+ key: Identifier {
+ type: "Identifier",
+ name: "d",
+
+ range: [1120, 1121],
+ loc: {
+ start: { column: 13, line: 76 },
+ end: { column: 14, line: 76 },
+ },
+ },
+ kind: "method",
+ static: false,
+ value: FunctionExpression {
+ type: "FunctionExpression",
+ async: false,
+ body: BlockStatement {
+ type: "BlockStatement",
+ body: Array [
+ VariableDeclaration {
+ type: "VariableDeclaration",
+ declarations: Array [
+ VariableDeclarator {
+ type: "VariableDeclarator",
+ id: Identifier {
+ type: "Identifier",
+ name: "x",
+
+ range: [1134, 1135],
+ loc: {
+ start: { column: 8, line: 77 },
+ end: { column: 9, line: 77 },
+ },
+ },
+ init: YieldExpression {
+ type: "YieldExpression",
+ argument: null,
+ delegate: false,
+
+ range: [1138, 1143],
+ loc: {
+ start: { column: 12, line: 77 },
+ end: { column: 17, line: 77 },
+ },
+ },
+
+ range: [1134, 1143],
+ loc: {
+ start: { column: 8, line: 77 },
+ end: { column: 17, line: 77 },
+ },
+ },
+ ],
+ kind: "let",
+
+ range: [1130, 1144],
+ loc: {
+ start: { column: 4, line: 77 },
+ end: { column: 18, line: 77 },
+ },
+ },
+ ],
+
+ range: [1124, 1148],
+ loc: {
+ start: { column: 17, line: 76 },
+ end: { column: 3, line: 78 },
+ },
+ },
+ expression: false,
+ generator: true,
+ id: null,
+ params: Array [],
+
+ range: [1121, 1148],
+ loc: {
+ start: { column: 14, line: 76 },
+ end: { column: 3, line: 78 },
+ },
+ },
+
+ range: [1109, 1148],
+ loc: {
+ start: { column: 2, line: 76 },
+ end: { column: 3, line: 78 },
+ },
+ },
+ ],
+
+ range: [1056, 1150],
+ loc: {
+ start: { column: 21, line: 72 },
+ end: { column: 1, line: 79 },
+ },
+ },
+ id: Identifier {
+ type: "Identifier",
+ name: "C",
+
+ range: [1041, 1042],
+ loc: {
+ start: { column: 6, line: 72 },
+ end: { column: 7, line: 72 },
+ },
+ },
+ implements: Array [
+ TSExpressionWithTypeArguments {
+ type: "TSExpressionWithTypeArguments",
+ expression: Identifier {
+ type: "Identifier",
+ name: "X",
+
+ range: [1054, 1055],
+ loc: {
+ start: { column: 19, line: 72 },
+ end: { column: 20, line: 72 },
+ },
+ },
+
+ range: [1054, 1055],
+ loc: {
+ start: { column: 19, line: 72 },
+ end: { column: 20, line: 72 },
+ },
+ },
+ ],
+ superClass: null,
+
+ range: [1035, 1150],
+ loc: {
+ start: { column: 0, line: 72 },
+ end: { column: 1, line: 79 },
+ },
+ },
+ ],
+ sourceType: "script",
+
+ range: [73, 1151],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 0, line: 80 },
+ },
+}
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/4-Babel-Tokens.shot
new file mode 100644
index 000000000000..84970292e9fd
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/4-Babel-Tokens.shot
@@ -0,0 +1,2656 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics keyword-variables Babel - Tokens 1`] = `
+Array [
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [73, 74],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 1, line: 3 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [77, 82],
+ loc: {
+ start: { column: 2, line: 4 },
+ end: { column: 7, line: 4 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "abstract",
+
+ range: [83, 91],
+ loc: {
+ start: { column: 8, line: 4 },
+ end: { column: 16, line: 4 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [92, 93],
+ loc: {
+ start: { column: 17, line: 4 },
+ end: { column: 18, line: 4 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [94, 95],
+ loc: {
+ start: { column: 19, line: 4 },
+ end: { column: 20, line: 4 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [95, 96],
+ loc: {
+ start: { column: 20, line: 4 },
+ end: { column: 21, line: 4 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [99, 104],
+ loc: {
+ start: { column: 2, line: 5 },
+ end: { column: 7, line: 5 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "as",
+
+ range: [105, 107],
+ loc: {
+ start: { column: 8, line: 5 },
+ end: { column: 10, line: 5 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [108, 109],
+ loc: {
+ start: { column: 11, line: 5 },
+ end: { column: 12, line: 5 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [110, 111],
+ loc: {
+ start: { column: 13, line: 5 },
+ end: { column: 14, line: 5 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [111, 112],
+ loc: {
+ start: { column: 14, line: 5 },
+ end: { column: 15, line: 5 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [115, 120],
+ loc: {
+ start: { column: 2, line: 6 },
+ end: { column: 7, line: 6 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "asserts",
+
+ range: [121, 128],
+ loc: {
+ start: { column: 8, line: 6 },
+ end: { column: 15, line: 6 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [129, 130],
+ loc: {
+ start: { column: 16, line: 6 },
+ end: { column: 17, line: 6 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [131, 132],
+ loc: {
+ start: { column: 18, line: 6 },
+ end: { column: 19, line: 6 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [132, 133],
+ loc: {
+ start: { column: 19, line: 6 },
+ end: { column: 20, line: 6 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [136, 141],
+ loc: {
+ start: { column: 2, line: 7 },
+ end: { column: 7, line: 7 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "any",
+
+ range: [142, 145],
+ loc: {
+ start: { column: 8, line: 7 },
+ end: { column: 11, line: 7 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [146, 147],
+ loc: {
+ start: { column: 12, line: 7 },
+ end: { column: 13, line: 7 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [148, 149],
+ loc: {
+ start: { column: 14, line: 7 },
+ end: { column: 15, line: 7 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [149, 150],
+ loc: {
+ start: { column: 15, line: 7 },
+ end: { column: 16, line: 7 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [153, 158],
+ loc: {
+ start: { column: 2, line: 8 },
+ end: { column: 7, line: 8 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "async",
+
+ range: [159, 164],
+ loc: {
+ start: { column: 8, line: 8 },
+ end: { column: 13, line: 8 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [165, 166],
+ loc: {
+ start: { column: 14, line: 8 },
+ end: { column: 15, line: 8 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [167, 168],
+ loc: {
+ start: { column: 16, line: 8 },
+ end: { column: 17, line: 8 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [168, 169],
+ loc: {
+ start: { column: 17, line: 8 },
+ end: { column: 18, line: 8 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [172, 177],
+ loc: {
+ start: { column: 2, line: 9 },
+ end: { column: 7, line: 9 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "await",
+
+ range: [178, 183],
+ loc: {
+ start: { column: 8, line: 9 },
+ end: { column: 13, line: 9 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [184, 185],
+ loc: {
+ start: { column: 14, line: 9 },
+ end: { column: 15, line: 9 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [186, 187],
+ loc: {
+ start: { column: 16, line: 9 },
+ end: { column: 17, line: 9 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [187, 188],
+ loc: {
+ start: { column: 17, line: 9 },
+ end: { column: 18, line: 9 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [191, 196],
+ loc: {
+ start: { column: 2, line: 10 },
+ end: { column: 7, line: 10 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "boolean",
+
+ range: [197, 204],
+ loc: {
+ start: { column: 8, line: 10 },
+ end: { column: 15, line: 10 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [205, 206],
+ loc: {
+ start: { column: 16, line: 10 },
+ end: { column: 17, line: 10 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [207, 208],
+ loc: {
+ start: { column: 18, line: 10 },
+ end: { column: 19, line: 10 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [208, 209],
+ loc: {
+ start: { column: 19, line: 10 },
+ end: { column: 20, line: 10 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [212, 217],
+ loc: {
+ start: { column: 2, line: 11 },
+ end: { column: 7, line: 11 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "constructor",
+
+ range: [218, 229],
+ loc: {
+ start: { column: 8, line: 11 },
+ end: { column: 19, line: 11 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [230, 231],
+ loc: {
+ start: { column: 20, line: 11 },
+ end: { column: 21, line: 11 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [232, 233],
+ loc: {
+ start: { column: 22, line: 11 },
+ end: { column: 23, line: 11 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [233, 234],
+ loc: {
+ start: { column: 23, line: 11 },
+ end: { column: 24, line: 11 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [237, 242],
+ loc: {
+ start: { column: 2, line: 12 },
+ end: { column: 7, line: 12 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "declare",
+
+ range: [243, 250],
+ loc: {
+ start: { column: 8, line: 12 },
+ end: { column: 15, line: 12 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [251, 252],
+ loc: {
+ start: { column: 16, line: 12 },
+ end: { column: 17, line: 12 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [253, 254],
+ loc: {
+ start: { column: 18, line: 12 },
+ end: { column: 19, line: 12 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [254, 255],
+ loc: {
+ start: { column: 19, line: 12 },
+ end: { column: 20, line: 12 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [258, 263],
+ loc: {
+ start: { column: 2, line: 13 },
+ end: { column: 7, line: 13 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "get",
+
+ range: [264, 267],
+ loc: {
+ start: { column: 8, line: 13 },
+ end: { column: 11, line: 13 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [268, 269],
+ loc: {
+ start: { column: 12, line: 13 },
+ end: { column: 13, line: 13 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [270, 271],
+ loc: {
+ start: { column: 14, line: 13 },
+ end: { column: 15, line: 13 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [271, 272],
+ loc: {
+ start: { column: 15, line: 13 },
+ end: { column: 16, line: 13 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [275, 280],
+ loc: {
+ start: { column: 2, line: 14 },
+ end: { column: 7, line: 14 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "infer",
+
+ range: [281, 286],
+ loc: {
+ start: { column: 8, line: 14 },
+ end: { column: 13, line: 14 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [287, 288],
+ loc: {
+ start: { column: 14, line: 14 },
+ end: { column: 15, line: 14 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [289, 290],
+ loc: {
+ start: { column: 16, line: 14 },
+ end: { column: 17, line: 14 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [290, 291],
+ loc: {
+ start: { column: 17, line: 14 },
+ end: { column: 18, line: 14 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [294, 299],
+ loc: {
+ start: { column: 2, line: 15 },
+ end: { column: 7, line: 15 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "is",
+
+ range: [300, 302],
+ loc: {
+ start: { column: 8, line: 15 },
+ end: { column: 10, line: 15 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [303, 304],
+ loc: {
+ start: { column: 11, line: 15 },
+ end: { column: 12, line: 15 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [305, 306],
+ loc: {
+ start: { column: 13, line: 15 },
+ end: { column: 14, line: 15 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [306, 307],
+ loc: {
+ start: { column: 14, line: 15 },
+ end: { column: 15, line: 15 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [310, 315],
+ loc: {
+ start: { column: 2, line: 16 },
+ end: { column: 7, line: 16 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "keyof",
+
+ range: [316, 321],
+ loc: {
+ start: { column: 8, line: 16 },
+ end: { column: 13, line: 16 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [322, 323],
+ loc: {
+ start: { column: 14, line: 16 },
+ end: { column: 15, line: 16 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [324, 325],
+ loc: {
+ start: { column: 16, line: 16 },
+ end: { column: 17, line: 16 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [325, 326],
+ loc: {
+ start: { column: 17, line: 16 },
+ end: { column: 18, line: 16 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [329, 334],
+ loc: {
+ start: { column: 2, line: 17 },
+ end: { column: 7, line: 17 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "module",
+
+ range: [335, 341],
+ loc: {
+ start: { column: 8, line: 17 },
+ end: { column: 14, line: 17 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [342, 343],
+ loc: {
+ start: { column: 15, line: 17 },
+ end: { column: 16, line: 17 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [344, 345],
+ loc: {
+ start: { column: 17, line: 17 },
+ end: { column: 18, line: 17 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [345, 346],
+ loc: {
+ start: { column: 18, line: 17 },
+ end: { column: 19, line: 17 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [349, 354],
+ loc: {
+ start: { column: 2, line: 18 },
+ end: { column: 7, line: 18 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "namespace",
+
+ range: [355, 364],
+ loc: {
+ start: { column: 8, line: 18 },
+ end: { column: 17, line: 18 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [365, 366],
+ loc: {
+ start: { column: 18, line: 18 },
+ end: { column: 19, line: 18 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [367, 368],
+ loc: {
+ start: { column: 20, line: 18 },
+ end: { column: 21, line: 18 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [368, 369],
+ loc: {
+ start: { column: 21, line: 18 },
+ end: { column: 22, line: 18 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [372, 377],
+ loc: {
+ start: { column: 2, line: 19 },
+ end: { column: 7, line: 19 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "never",
+
+ range: [378, 383],
+ loc: {
+ start: { column: 8, line: 19 },
+ end: { column: 13, line: 19 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [384, 385],
+ loc: {
+ start: { column: 14, line: 19 },
+ end: { column: 15, line: 19 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [386, 387],
+ loc: {
+ start: { column: 16, line: 19 },
+ end: { column: 17, line: 19 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [387, 388],
+ loc: {
+ start: { column: 17, line: 19 },
+ end: { column: 18, line: 19 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [391, 396],
+ loc: {
+ start: { column: 2, line: 20 },
+ end: { column: 7, line: 20 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "readonly",
+
+ range: [397, 405],
+ loc: {
+ start: { column: 8, line: 20 },
+ end: { column: 16, line: 20 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [406, 407],
+ loc: {
+ start: { column: 17, line: 20 },
+ end: { column: 18, line: 20 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [408, 409],
+ loc: {
+ start: { column: 19, line: 20 },
+ end: { column: 20, line: 20 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [409, 410],
+ loc: {
+ start: { column: 20, line: 20 },
+ end: { column: 21, line: 20 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [413, 418],
+ loc: {
+ start: { column: 2, line: 21 },
+ end: { column: 7, line: 21 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "require",
+
+ range: [419, 426],
+ loc: {
+ start: { column: 8, line: 21 },
+ end: { column: 15, line: 21 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [427, 428],
+ loc: {
+ start: { column: 16, line: 21 },
+ end: { column: 17, line: 21 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [429, 430],
+ loc: {
+ start: { column: 18, line: 21 },
+ end: { column: 19, line: 21 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [430, 431],
+ loc: {
+ start: { column: 19, line: 21 },
+ end: { column: 20, line: 21 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [434, 439],
+ loc: {
+ start: { column: 2, line: 22 },
+ end: { column: 7, line: 22 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "number",
+
+ range: [440, 446],
+ loc: {
+ start: { column: 8, line: 22 },
+ end: { column: 14, line: 22 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [447, 448],
+ loc: {
+ start: { column: 15, line: 22 },
+ end: { column: 16, line: 22 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [449, 450],
+ loc: {
+ start: { column: 17, line: 22 },
+ end: { column: 18, line: 22 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [450, 451],
+ loc: {
+ start: { column: 18, line: 22 },
+ end: { column: 19, line: 22 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [454, 459],
+ loc: {
+ start: { column: 2, line: 23 },
+ end: { column: 7, line: 23 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "object",
+
+ range: [460, 466],
+ loc: {
+ start: { column: 8, line: 23 },
+ end: { column: 14, line: 23 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [467, 468],
+ loc: {
+ start: { column: 15, line: 23 },
+ end: { column: 16, line: 23 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [469, 470],
+ loc: {
+ start: { column: 17, line: 23 },
+ end: { column: 18, line: 23 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [470, 471],
+ loc: {
+ start: { column: 18, line: 23 },
+ end: { column: 19, line: 23 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [474, 479],
+ loc: {
+ start: { column: 2, line: 24 },
+ end: { column: 7, line: 24 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "set",
+
+ range: [480, 483],
+ loc: {
+ start: { column: 8, line: 24 },
+ end: { column: 11, line: 24 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [484, 485],
+ loc: {
+ start: { column: 12, line: 24 },
+ end: { column: 13, line: 24 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [486, 487],
+ loc: {
+ start: { column: 14, line: 24 },
+ end: { column: 15, line: 24 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [487, 488],
+ loc: {
+ start: { column: 15, line: 24 },
+ end: { column: 16, line: 24 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [491, 496],
+ loc: {
+ start: { column: 2, line: 25 },
+ end: { column: 7, line: 25 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "string",
+
+ range: [497, 503],
+ loc: {
+ start: { column: 8, line: 25 },
+ end: { column: 14, line: 25 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [504, 505],
+ loc: {
+ start: { column: 15, line: 25 },
+ end: { column: 16, line: 25 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [506, 507],
+ loc: {
+ start: { column: 17, line: 25 },
+ end: { column: 18, line: 25 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [507, 508],
+ loc: {
+ start: { column: 18, line: 25 },
+ end: { column: 19, line: 25 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [511, 516],
+ loc: {
+ start: { column: 2, line: 26 },
+ end: { column: 7, line: 26 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "symbol",
+
+ range: [517, 523],
+ loc: {
+ start: { column: 8, line: 26 },
+ end: { column: 14, line: 26 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [524, 525],
+ loc: {
+ start: { column: 15, line: 26 },
+ end: { column: 16, line: 26 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [526, 527],
+ loc: {
+ start: { column: 17, line: 26 },
+ end: { column: 18, line: 26 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [527, 528],
+ loc: {
+ start: { column: 18, line: 26 },
+ end: { column: 19, line: 26 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [531, 536],
+ loc: {
+ start: { column: 2, line: 27 },
+ end: { column: 7, line: 27 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "type",
+
+ range: [537, 541],
+ loc: {
+ start: { column: 8, line: 27 },
+ end: { column: 12, line: 27 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [542, 543],
+ loc: {
+ start: { column: 13, line: 27 },
+ end: { column: 14, line: 27 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [544, 545],
+ loc: {
+ start: { column: 15, line: 27 },
+ end: { column: 16, line: 27 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [545, 546],
+ loc: {
+ start: { column: 16, line: 27 },
+ end: { column: 17, line: 27 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [549, 554],
+ loc: {
+ start: { column: 2, line: 28 },
+ end: { column: 7, line: 28 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "undefined",
+
+ range: [555, 564],
+ loc: {
+ start: { column: 8, line: 28 },
+ end: { column: 17, line: 28 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [565, 566],
+ loc: {
+ start: { column: 18, line: 28 },
+ end: { column: 19, line: 28 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [567, 568],
+ loc: {
+ start: { column: 20, line: 28 },
+ end: { column: 21, line: 28 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [568, 569],
+ loc: {
+ start: { column: 21, line: 28 },
+ end: { column: 22, line: 28 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [572, 577],
+ loc: {
+ start: { column: 2, line: 29 },
+ end: { column: 7, line: 29 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "unique",
+
+ range: [578, 584],
+ loc: {
+ start: { column: 8, line: 29 },
+ end: { column: 14, line: 29 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [585, 586],
+ loc: {
+ start: { column: 15, line: 29 },
+ end: { column: 16, line: 29 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [587, 588],
+ loc: {
+ start: { column: 17, line: 29 },
+ end: { column: 18, line: 29 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [588, 589],
+ loc: {
+ start: { column: 18, line: 29 },
+ end: { column: 19, line: 29 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [592, 597],
+ loc: {
+ start: { column: 2, line: 30 },
+ end: { column: 7, line: 30 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "unknown",
+
+ range: [598, 605],
+ loc: {
+ start: { column: 8, line: 30 },
+ end: { column: 15, line: 30 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [606, 607],
+ loc: {
+ start: { column: 16, line: 30 },
+ end: { column: 17, line: 30 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [608, 609],
+ loc: {
+ start: { column: 18, line: 30 },
+ end: { column: 19, line: 30 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [609, 610],
+ loc: {
+ start: { column: 19, line: 30 },
+ end: { column: 20, line: 30 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [613, 618],
+ loc: {
+ start: { column: 2, line: 31 },
+ end: { column: 7, line: 31 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [619, 623],
+ loc: {
+ start: { column: 8, line: 31 },
+ end: { column: 12, line: 31 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [624, 625],
+ loc: {
+ start: { column: 13, line: 31 },
+ end: { column: 14, line: 31 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [626, 627],
+ loc: {
+ start: { column: 15, line: 31 },
+ end: { column: 16, line: 31 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [627, 628],
+ loc: {
+ start: { column: 16, line: 31 },
+ end: { column: 17, line: 31 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [631, 636],
+ loc: {
+ start: { column: 2, line: 32 },
+ end: { column: 7, line: 32 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "global",
+
+ range: [637, 643],
+ loc: {
+ start: { column: 8, line: 32 },
+ end: { column: 14, line: 32 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [644, 645],
+ loc: {
+ start: { column: 15, line: 32 },
+ end: { column: 16, line: 32 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [646, 647],
+ loc: {
+ start: { column: 17, line: 32 },
+ end: { column: 18, line: 32 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [647, 648],
+ loc: {
+ start: { column: 18, line: 32 },
+ end: { column: 19, line: 32 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [651, 656],
+ loc: {
+ start: { column: 2, line: 33 },
+ end: { column: 7, line: 33 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "bigint",
+
+ range: [657, 663],
+ loc: {
+ start: { column: 8, line: 33 },
+ end: { column: 14, line: 33 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [664, 665],
+ loc: {
+ start: { column: 15, line: 33 },
+ end: { column: 16, line: 33 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [666, 667],
+ loc: {
+ start: { column: 17, line: 33 },
+ end: { column: 18, line: 33 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [667, 668],
+ loc: {
+ start: { column: 18, line: 33 },
+ end: { column: 19, line: 33 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "const",
+
+ range: [671, 676],
+ loc: {
+ start: { column: 2, line: 34 },
+ end: { column: 7, line: 34 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "of",
+
+ range: [677, 679],
+ loc: {
+ start: { column: 8, line: 34 },
+ end: { column: 10, line: 34 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [680, 681],
+ loc: {
+ start: { column: 11, line: 34 },
+ end: { column: 12, line: 34 },
+ },
+ },
+ Numeric {
+ type: "Numeric",
+ value: "1",
+
+ range: [682, 683],
+ loc: {
+ start: { column: 13, line: 34 },
+ end: { column: 14, line: 34 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [683, 684],
+ loc: {
+ start: { column: 14, line: 34 },
+ end: { column: 15, line: 34 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [685, 686],
+ loc: {
+ start: { column: 0, line: 35 },
+ end: { column: 1, line: 35 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "import",
+
+ range: [688, 694],
+ loc: {
+ start: { column: 0, line: 37 },
+ end: { column: 6, line: 37 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [695, 696],
+ loc: {
+ start: { column: 7, line: 37 },
+ end: { column: 8, line: 37 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "abstract",
+
+ range: [699, 707],
+ loc: {
+ start: { column: 2, line: 38 },
+ end: { column: 10, line: 38 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [707, 708],
+ loc: {
+ start: { column: 10, line: 38 },
+ end: { column: 11, line: 38 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "as",
+
+ range: [711, 713],
+ loc: {
+ start: { column: 2, line: 39 },
+ end: { column: 4, line: 39 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [713, 714],
+ loc: {
+ start: { column: 4, line: 39 },
+ end: { column: 5, line: 39 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "asserts",
+
+ range: [717, 724],
+ loc: {
+ start: { column: 2, line: 40 },
+ end: { column: 9, line: 40 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [724, 725],
+ loc: {
+ start: { column: 9, line: 40 },
+ end: { column: 10, line: 40 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "any",
+
+ range: [728, 731],
+ loc: {
+ start: { column: 2, line: 41 },
+ end: { column: 5, line: 41 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [731, 732],
+ loc: {
+ start: { column: 5, line: 41 },
+ end: { column: 6, line: 41 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "async",
+
+ range: [735, 740],
+ loc: {
+ start: { column: 2, line: 42 },
+ end: { column: 7, line: 42 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [740, 741],
+ loc: {
+ start: { column: 7, line: 42 },
+ end: { column: 8, line: 42 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "await",
+
+ range: [744, 749],
+ loc: {
+ start: { column: 2, line: 43 },
+ end: { column: 7, line: 43 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [749, 750],
+ loc: {
+ start: { column: 7, line: 43 },
+ end: { column: 8, line: 43 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "boolean",
+
+ range: [753, 760],
+ loc: {
+ start: { column: 2, line: 44 },
+ end: { column: 9, line: 44 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [760, 761],
+ loc: {
+ start: { column: 9, line: 44 },
+ end: { column: 10, line: 44 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "constructor",
+
+ range: [764, 775],
+ loc: {
+ start: { column: 2, line: 45 },
+ end: { column: 13, line: 45 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [775, 776],
+ loc: {
+ start: { column: 13, line: 45 },
+ end: { column: 14, line: 45 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "declare",
+
+ range: [779, 786],
+ loc: {
+ start: { column: 2, line: 46 },
+ end: { column: 9, line: 46 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [786, 787],
+ loc: {
+ start: { column: 9, line: 46 },
+ end: { column: 10, line: 46 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "get",
+
+ range: [790, 793],
+ loc: {
+ start: { column: 2, line: 47 },
+ end: { column: 5, line: 47 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [793, 794],
+ loc: {
+ start: { column: 5, line: 47 },
+ end: { column: 6, line: 47 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "infer",
+
+ range: [797, 802],
+ loc: {
+ start: { column: 2, line: 48 },
+ end: { column: 7, line: 48 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [802, 803],
+ loc: {
+ start: { column: 7, line: 48 },
+ end: { column: 8, line: 48 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "is",
+
+ range: [806, 808],
+ loc: {
+ start: { column: 2, line: 49 },
+ end: { column: 4, line: 49 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [808, 809],
+ loc: {
+ start: { column: 4, line: 49 },
+ end: { column: 5, line: 49 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "keyof",
+
+ range: [812, 817],
+ loc: {
+ start: { column: 2, line: 50 },
+ end: { column: 7, line: 50 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [817, 818],
+ loc: {
+ start: { column: 7, line: 50 },
+ end: { column: 8, line: 50 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "module",
+
+ range: [821, 827],
+ loc: {
+ start: { column: 2, line: 51 },
+ end: { column: 8, line: 51 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [827, 828],
+ loc: {
+ start: { column: 8, line: 51 },
+ end: { column: 9, line: 51 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "namespace",
+
+ range: [831, 840],
+ loc: {
+ start: { column: 2, line: 52 },
+ end: { column: 11, line: 52 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [840, 841],
+ loc: {
+ start: { column: 11, line: 52 },
+ end: { column: 12, line: 52 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "never",
+
+ range: [844, 849],
+ loc: {
+ start: { column: 2, line: 53 },
+ end: { column: 7, line: 53 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [849, 850],
+ loc: {
+ start: { column: 7, line: 53 },
+ end: { column: 8, line: 53 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "readonly",
+
+ range: [853, 861],
+ loc: {
+ start: { column: 2, line: 54 },
+ end: { column: 10, line: 54 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [861, 862],
+ loc: {
+ start: { column: 10, line: 54 },
+ end: { column: 11, line: 54 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "require",
+
+ range: [865, 872],
+ loc: {
+ start: { column: 2, line: 55 },
+ end: { column: 9, line: 55 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [872, 873],
+ loc: {
+ start: { column: 9, line: 55 },
+ end: { column: 10, line: 55 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "number",
+
+ range: [876, 882],
+ loc: {
+ start: { column: 2, line: 56 },
+ end: { column: 8, line: 56 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [882, 883],
+ loc: {
+ start: { column: 8, line: 56 },
+ end: { column: 9, line: 56 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "object",
+
+ range: [886, 892],
+ loc: {
+ start: { column: 2, line: 57 },
+ end: { column: 8, line: 57 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [892, 893],
+ loc: {
+ start: { column: 8, line: 57 },
+ end: { column: 9, line: 57 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "set",
+
+ range: [896, 899],
+ loc: {
+ start: { column: 2, line: 58 },
+ end: { column: 5, line: 58 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [899, 900],
+ loc: {
+ start: { column: 5, line: 58 },
+ end: { column: 6, line: 58 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "string",
+
+ range: [903, 909],
+ loc: {
+ start: { column: 2, line: 59 },
+ end: { column: 8, line: 59 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [909, 910],
+ loc: {
+ start: { column: 8, line: 59 },
+ end: { column: 9, line: 59 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "symbol",
+
+ range: [913, 919],
+ loc: {
+ start: { column: 2, line: 60 },
+ end: { column: 8, line: 60 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [919, 920],
+ loc: {
+ start: { column: 8, line: 60 },
+ end: { column: 9, line: 60 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "type",
+
+ range: [923, 927],
+ loc: {
+ start: { column: 2, line: 61 },
+ end: { column: 6, line: 61 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [927, 928],
+ loc: {
+ start: { column: 6, line: 61 },
+ end: { column: 7, line: 61 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "undefined",
+
+ range: [931, 940],
+ loc: {
+ start: { column: 2, line: 62 },
+ end: { column: 11, line: 62 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [940, 941],
+ loc: {
+ start: { column: 11, line: 62 },
+ end: { column: 12, line: 62 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "unique",
+
+ range: [944, 950],
+ loc: {
+ start: { column: 2, line: 63 },
+ end: { column: 8, line: 63 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [950, 951],
+ loc: {
+ start: { column: 8, line: 63 },
+ end: { column: 9, line: 63 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "unknown",
+
+ range: [954, 961],
+ loc: {
+ start: { column: 2, line: 64 },
+ end: { column: 9, line: 64 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [961, 962],
+ loc: {
+ start: { column: 9, line: 64 },
+ end: { column: 10, line: 64 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [965, 969],
+ loc: {
+ start: { column: 2, line: 65 },
+ end: { column: 6, line: 65 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [969, 970],
+ loc: {
+ start: { column: 6, line: 65 },
+ end: { column: 7, line: 65 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "global",
+
+ range: [973, 979],
+ loc: {
+ start: { column: 2, line: 66 },
+ end: { column: 8, line: 66 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [979, 980],
+ loc: {
+ start: { column: 8, line: 66 },
+ end: { column: 9, line: 66 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "bigint",
+
+ range: [983, 989],
+ loc: {
+ start: { column: 2, line: 67 },
+ end: { column: 8, line: 67 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [989, 990],
+ loc: {
+ start: { column: 8, line: 67 },
+ end: { column: 9, line: 67 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "of",
+
+ range: [993, 995],
+ loc: {
+ start: { column: 2, line: 68 },
+ end: { column: 4, line: 68 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ",",
+
+ range: [995, 996],
+ loc: {
+ start: { column: 4, line: 68 },
+ end: { column: 5, line: 68 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [997, 998],
+ loc: {
+ start: { column: 0, line: 69 },
+ end: { column: 1, line: 69 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "from",
+
+ range: [999, 1003],
+ loc: {
+ start: { column: 2, line: 69 },
+ end: { column: 6, line: 69 },
+ },
+ },
+ String {
+ type: "String",
+ value: "'fake-module'",
+
+ range: [1004, 1017],
+ loc: {
+ start: { column: 7, line: 69 },
+ end: { column: 20, line: 69 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [1017, 1018],
+ loc: {
+ start: { column: 20, line: 69 },
+ end: { column: 21, line: 69 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "interface",
+
+ range: [1020, 1029],
+ loc: {
+ start: { column: 0, line: 71 },
+ end: { column: 9, line: 71 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "X",
+
+ range: [1030, 1031],
+ loc: {
+ start: { column: 10, line: 71 },
+ end: { column: 11, line: 71 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [1032, 1033],
+ loc: {
+ start: { column: 12, line: 71 },
+ end: { column: 13, line: 71 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [1033, 1034],
+ loc: {
+ start: { column: 13, line: 71 },
+ end: { column: 14, line: 71 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "class",
+
+ range: [1035, 1040],
+ loc: {
+ start: { column: 0, line: 72 },
+ end: { column: 5, line: 72 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "C",
+
+ range: [1041, 1042],
+ loc: {
+ start: { column: 6, line: 72 },
+ end: { column: 7, line: 72 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "implements",
+
+ range: [1043, 1053],
+ loc: {
+ start: { column: 8, line: 72 },
+ end: { column: 18, line: 72 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "X",
+
+ range: [1054, 1055],
+ loc: {
+ start: { column: 19, line: 72 },
+ end: { column: 20, line: 72 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [1056, 1057],
+ loc: {
+ start: { column: 21, line: 72 },
+ end: { column: 22, line: 72 },
+ },
+ },
+ Keyword {
+ type: "Keyword",
+ value: "static",
+
+ range: [1060, 1066],
+ loc: {
+ start: { column: 2, line: 73 },
+ end: { column: 8, line: 73 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "a",
+
+ range: [1067, 1068],
+ loc: {
+ start: { column: 9, line: 73 },
+ end: { column: 10, line: 73 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "(",
+
+ range: [1068, 1069],
+ loc: {
+ start: { column: 10, line: 73 },
+ end: { column: 11, line: 73 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ")",
+
+ range: [1069, 1070],
+ loc: {
+ start: { column: 11, line: 73 },
+ end: { column: 12, line: 73 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [1071, 1072],
+ loc: {
+ start: { column: 13, line: 73 },
+ end: { column: 14, line: 73 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [1072, 1073],
+ loc: {
+ start: { column: 14, line: 73 },
+ end: { column: 15, line: 73 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "private",
+
+ range: [1076, 1083],
+ loc: {
+ start: { column: 2, line: 74 },
+ end: { column: 9, line: 74 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "b",
+
+ range: [1084, 1085],
+ loc: {
+ start: { column: 10, line: 74 },
+ end: { column: 11, line: 74 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "(",
+
+ range: [1085, 1086],
+ loc: {
+ start: { column: 11, line: 74 },
+ end: { column: 12, line: 74 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ")",
+
+ range: [1086, 1087],
+ loc: {
+ start: { column: 12, line: 74 },
+ end: { column: 13, line: 74 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [1088, 1089],
+ loc: {
+ start: { column: 14, line: 74 },
+ end: { column: 15, line: 74 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [1089, 1090],
+ loc: {
+ start: { column: 15, line: 74 },
+ end: { column: 16, line: 74 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "public",
+
+ range: [1093, 1099],
+ loc: {
+ start: { column: 2, line: 75 },
+ end: { column: 8, line: 75 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "c",
+
+ range: [1100, 1101],
+ loc: {
+ start: { column: 9, line: 75 },
+ end: { column: 10, line: 75 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "(",
+
+ range: [1101, 1102],
+ loc: {
+ start: { column: 10, line: 75 },
+ end: { column: 11, line: 75 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ")",
+
+ range: [1102, 1103],
+ loc: {
+ start: { column: 11, line: 75 },
+ end: { column: 12, line: 75 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [1104, 1105],
+ loc: {
+ start: { column: 13, line: 75 },
+ end: { column: 14, line: 75 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [1105, 1106],
+ loc: {
+ start: { column: 14, line: 75 },
+ end: { column: 15, line: 75 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "protected",
+
+ range: [1109, 1118],
+ loc: {
+ start: { column: 2, line: 76 },
+ end: { column: 11, line: 76 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "*",
+
+ range: [1119, 1120],
+ loc: {
+ start: { column: 12, line: 76 },
+ end: { column: 13, line: 76 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "d",
+
+ range: [1120, 1121],
+ loc: {
+ start: { column: 13, line: 76 },
+ end: { column: 14, line: 76 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "(",
+
+ range: [1121, 1122],
+ loc: {
+ start: { column: 14, line: 76 },
+ end: { column: 15, line: 76 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ")",
+
+ range: [1122, 1123],
+ loc: {
+ start: { column: 15, line: 76 },
+ end: { column: 16, line: 76 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "{",
+
+ range: [1124, 1125],
+ loc: {
+ start: { column: 17, line: 76 },
+ end: { column: 18, line: 76 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "let",
+
+ range: [1130, 1133],
+ loc: {
+ start: { column: 4, line: 77 },
+ end: { column: 7, line: 77 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "x",
+
+ range: [1134, 1135],
+ loc: {
+ start: { column: 8, line: 77 },
+ end: { column: 9, line: 77 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "=",
+
+ range: [1136, 1137],
+ loc: {
+ start: { column: 10, line: 77 },
+ end: { column: 11, line: 77 },
+ },
+ },
+ Identifier {
+ type: "Identifier",
+ value: "yield",
+
+ range: [1138, 1143],
+ loc: {
+ start: { column: 12, line: 77 },
+ end: { column: 17, line: 77 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: ";",
+
+ range: [1143, 1144],
+ loc: {
+ start: { column: 17, line: 77 },
+ end: { column: 18, line: 77 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [1147, 1148],
+ loc: {
+ start: { column: 2, line: 78 },
+ end: { column: 3, line: 78 },
+ },
+ },
+ Punctuator {
+ type: "Punctuator",
+ value: "}",
+
+ range: [1149, 1150],
+ loc: {
+ start: { column: 0, line: 79 },
+ end: { column: 1, line: 79 },
+ },
+ },
+]
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/5-AST-Alignment-AST.shot
new file mode 100644
index 000000000000..8563a77d1a3c
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/5-AST-Alignment-AST.shot
@@ -0,0 +1,2605 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics keyword-variables AST Alignment - AST 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Program {
+ type: 'Program',
+ body: Array [
+ BlockStatement {
+ type: 'BlockStatement',
+ body: Array [
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'abstract',
+
+ range: [83, 91],
+ loc: {
+ start: { column: 8, line: 4 },
+ end: { column: 16, line: 4 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [94, 95],
+ loc: {
+ start: { column: 19, line: 4 },
+ end: { column: 20, line: 4 },
+ },
+ },
+
+ range: [83, 95],
+ loc: {
+ start: { column: 8, line: 4 },
+ end: { column: 20, line: 4 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [77, 96],
+ loc: {
+ start: { column: 2, line: 4 },
+ end: { column: 21, line: 4 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'as',
+
+ range: [105, 107],
+ loc: {
+ start: { column: 8, line: 5 },
+ end: { column: 10, line: 5 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [110, 111],
+ loc: {
+ start: { column: 13, line: 5 },
+ end: { column: 14, line: 5 },
+ },
+ },
+
+ range: [105, 111],
+ loc: {
+ start: { column: 8, line: 5 },
+ end: { column: 14, line: 5 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [99, 112],
+ loc: {
+ start: { column: 2, line: 5 },
+ end: { column: 15, line: 5 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'asserts',
+
+ range: [121, 128],
+ loc: {
+ start: { column: 8, line: 6 },
+ end: { column: 15, line: 6 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [131, 132],
+ loc: {
+ start: { column: 18, line: 6 },
+ end: { column: 19, line: 6 },
+ },
+ },
+
+ range: [121, 132],
+ loc: {
+ start: { column: 8, line: 6 },
+ end: { column: 19, line: 6 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [115, 133],
+ loc: {
+ start: { column: 2, line: 6 },
+ end: { column: 20, line: 6 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'any',
+
+ range: [142, 145],
+ loc: {
+ start: { column: 8, line: 7 },
+ end: { column: 11, line: 7 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [148, 149],
+ loc: {
+ start: { column: 14, line: 7 },
+ end: { column: 15, line: 7 },
+ },
+ },
+
+ range: [142, 149],
+ loc: {
+ start: { column: 8, line: 7 },
+ end: { column: 15, line: 7 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [136, 150],
+ loc: {
+ start: { column: 2, line: 7 },
+ end: { column: 16, line: 7 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'async',
+
+ range: [159, 164],
+ loc: {
+ start: { column: 8, line: 8 },
+ end: { column: 13, line: 8 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [167, 168],
+ loc: {
+ start: { column: 16, line: 8 },
+ end: { column: 17, line: 8 },
+ },
+ },
+
+ range: [159, 168],
+ loc: {
+ start: { column: 8, line: 8 },
+ end: { column: 17, line: 8 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [153, 169],
+ loc: {
+ start: { column: 2, line: 8 },
+ end: { column: 18, line: 8 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'await',
+
+ range: [178, 183],
+ loc: {
+ start: { column: 8, line: 9 },
+ end: { column: 13, line: 9 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [186, 187],
+ loc: {
+ start: { column: 16, line: 9 },
+ end: { column: 17, line: 9 },
+ },
+ },
+
+ range: [178, 187],
+ loc: {
+ start: { column: 8, line: 9 },
+ end: { column: 17, line: 9 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [172, 188],
+ loc: {
+ start: { column: 2, line: 9 },
+ end: { column: 18, line: 9 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'boolean',
+
+ range: [197, 204],
+ loc: {
+ start: { column: 8, line: 10 },
+ end: { column: 15, line: 10 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [207, 208],
+ loc: {
+ start: { column: 18, line: 10 },
+ end: { column: 19, line: 10 },
+ },
+ },
+
+ range: [197, 208],
+ loc: {
+ start: { column: 8, line: 10 },
+ end: { column: 19, line: 10 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [191, 209],
+ loc: {
+ start: { column: 2, line: 10 },
+ end: { column: 20, line: 10 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'constructor',
+
+ range: [218, 229],
+ loc: {
+ start: { column: 8, line: 11 },
+ end: { column: 19, line: 11 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [232, 233],
+ loc: {
+ start: { column: 22, line: 11 },
+ end: { column: 23, line: 11 },
+ },
+ },
+
+ range: [218, 233],
+ loc: {
+ start: { column: 8, line: 11 },
+ end: { column: 23, line: 11 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [212, 234],
+ loc: {
+ start: { column: 2, line: 11 },
+ end: { column: 24, line: 11 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'declare',
+
+ range: [243, 250],
+ loc: {
+ start: { column: 8, line: 12 },
+ end: { column: 15, line: 12 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [253, 254],
+ loc: {
+ start: { column: 18, line: 12 },
+ end: { column: 19, line: 12 },
+ },
+ },
+
+ range: [243, 254],
+ loc: {
+ start: { column: 8, line: 12 },
+ end: { column: 19, line: 12 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [237, 255],
+ loc: {
+ start: { column: 2, line: 12 },
+ end: { column: 20, line: 12 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'get',
+
+ range: [264, 267],
+ loc: {
+ start: { column: 8, line: 13 },
+ end: { column: 11, line: 13 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [270, 271],
+ loc: {
+ start: { column: 14, line: 13 },
+ end: { column: 15, line: 13 },
+ },
+ },
+
+ range: [264, 271],
+ loc: {
+ start: { column: 8, line: 13 },
+ end: { column: 15, line: 13 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [258, 272],
+ loc: {
+ start: { column: 2, line: 13 },
+ end: { column: 16, line: 13 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'infer',
+
+ range: [281, 286],
+ loc: {
+ start: { column: 8, line: 14 },
+ end: { column: 13, line: 14 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [289, 290],
+ loc: {
+ start: { column: 16, line: 14 },
+ end: { column: 17, line: 14 },
+ },
+ },
+
+ range: [281, 290],
+ loc: {
+ start: { column: 8, line: 14 },
+ end: { column: 17, line: 14 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [275, 291],
+ loc: {
+ start: { column: 2, line: 14 },
+ end: { column: 18, line: 14 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'is',
+
+ range: [300, 302],
+ loc: {
+ start: { column: 8, line: 15 },
+ end: { column: 10, line: 15 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [305, 306],
+ loc: {
+ start: { column: 13, line: 15 },
+ end: { column: 14, line: 15 },
+ },
+ },
+
+ range: [300, 306],
+ loc: {
+ start: { column: 8, line: 15 },
+ end: { column: 14, line: 15 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [294, 307],
+ loc: {
+ start: { column: 2, line: 15 },
+ end: { column: 15, line: 15 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'keyof',
+
+ range: [316, 321],
+ loc: {
+ start: { column: 8, line: 16 },
+ end: { column: 13, line: 16 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [324, 325],
+ loc: {
+ start: { column: 16, line: 16 },
+ end: { column: 17, line: 16 },
+ },
+ },
+
+ range: [316, 325],
+ loc: {
+ start: { column: 8, line: 16 },
+ end: { column: 17, line: 16 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [310, 326],
+ loc: {
+ start: { column: 2, line: 16 },
+ end: { column: 18, line: 16 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'module',
+
+ range: [335, 341],
+ loc: {
+ start: { column: 8, line: 17 },
+ end: { column: 14, line: 17 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [344, 345],
+ loc: {
+ start: { column: 17, line: 17 },
+ end: { column: 18, line: 17 },
+ },
+ },
+
+ range: [335, 345],
+ loc: {
+ start: { column: 8, line: 17 },
+ end: { column: 18, line: 17 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [329, 346],
+ loc: {
+ start: { column: 2, line: 17 },
+ end: { column: 19, line: 17 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'namespace',
+
+ range: [355, 364],
+ loc: {
+ start: { column: 8, line: 18 },
+ end: { column: 17, line: 18 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [367, 368],
+ loc: {
+ start: { column: 20, line: 18 },
+ end: { column: 21, line: 18 },
+ },
+ },
+
+ range: [355, 368],
+ loc: {
+ start: { column: 8, line: 18 },
+ end: { column: 21, line: 18 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [349, 369],
+ loc: {
+ start: { column: 2, line: 18 },
+ end: { column: 22, line: 18 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'never',
+
+ range: [378, 383],
+ loc: {
+ start: { column: 8, line: 19 },
+ end: { column: 13, line: 19 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [386, 387],
+ loc: {
+ start: { column: 16, line: 19 },
+ end: { column: 17, line: 19 },
+ },
+ },
+
+ range: [378, 387],
+ loc: {
+ start: { column: 8, line: 19 },
+ end: { column: 17, line: 19 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [372, 388],
+ loc: {
+ start: { column: 2, line: 19 },
+ end: { column: 18, line: 19 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'readonly',
+
+ range: [397, 405],
+ loc: {
+ start: { column: 8, line: 20 },
+ end: { column: 16, line: 20 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [408, 409],
+ loc: {
+ start: { column: 19, line: 20 },
+ end: { column: 20, line: 20 },
+ },
+ },
+
+ range: [397, 409],
+ loc: {
+ start: { column: 8, line: 20 },
+ end: { column: 20, line: 20 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [391, 410],
+ loc: {
+ start: { column: 2, line: 20 },
+ end: { column: 21, line: 20 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'require',
+
+ range: [419, 426],
+ loc: {
+ start: { column: 8, line: 21 },
+ end: { column: 15, line: 21 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [429, 430],
+ loc: {
+ start: { column: 18, line: 21 },
+ end: { column: 19, line: 21 },
+ },
+ },
+
+ range: [419, 430],
+ loc: {
+ start: { column: 8, line: 21 },
+ end: { column: 19, line: 21 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [413, 431],
+ loc: {
+ start: { column: 2, line: 21 },
+ end: { column: 20, line: 21 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'number',
+
+ range: [440, 446],
+ loc: {
+ start: { column: 8, line: 22 },
+ end: { column: 14, line: 22 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [449, 450],
+ loc: {
+ start: { column: 17, line: 22 },
+ end: { column: 18, line: 22 },
+ },
+ },
+
+ range: [440, 450],
+ loc: {
+ start: { column: 8, line: 22 },
+ end: { column: 18, line: 22 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [434, 451],
+ loc: {
+ start: { column: 2, line: 22 },
+ end: { column: 19, line: 22 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'object',
+
+ range: [460, 466],
+ loc: {
+ start: { column: 8, line: 23 },
+ end: { column: 14, line: 23 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [469, 470],
+ loc: {
+ start: { column: 17, line: 23 },
+ end: { column: 18, line: 23 },
+ },
+ },
+
+ range: [460, 470],
+ loc: {
+ start: { column: 8, line: 23 },
+ end: { column: 18, line: 23 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [454, 471],
+ loc: {
+ start: { column: 2, line: 23 },
+ end: { column: 19, line: 23 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'set',
+
+ range: [480, 483],
+ loc: {
+ start: { column: 8, line: 24 },
+ end: { column: 11, line: 24 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [486, 487],
+ loc: {
+ start: { column: 14, line: 24 },
+ end: { column: 15, line: 24 },
+ },
+ },
+
+ range: [480, 487],
+ loc: {
+ start: { column: 8, line: 24 },
+ end: { column: 15, line: 24 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [474, 488],
+ loc: {
+ start: { column: 2, line: 24 },
+ end: { column: 16, line: 24 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'string',
+
+ range: [497, 503],
+ loc: {
+ start: { column: 8, line: 25 },
+ end: { column: 14, line: 25 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [506, 507],
+ loc: {
+ start: { column: 17, line: 25 },
+ end: { column: 18, line: 25 },
+ },
+ },
+
+ range: [497, 507],
+ loc: {
+ start: { column: 8, line: 25 },
+ end: { column: 18, line: 25 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [491, 508],
+ loc: {
+ start: { column: 2, line: 25 },
+ end: { column: 19, line: 25 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'symbol',
+
+ range: [517, 523],
+ loc: {
+ start: { column: 8, line: 26 },
+ end: { column: 14, line: 26 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [526, 527],
+ loc: {
+ start: { column: 17, line: 26 },
+ end: { column: 18, line: 26 },
+ },
+ },
+
+ range: [517, 527],
+ loc: {
+ start: { column: 8, line: 26 },
+ end: { column: 18, line: 26 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [511, 528],
+ loc: {
+ start: { column: 2, line: 26 },
+ end: { column: 19, line: 26 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'type',
+
+ range: [537, 541],
+ loc: {
+ start: { column: 8, line: 27 },
+ end: { column: 12, line: 27 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [544, 545],
+ loc: {
+ start: { column: 15, line: 27 },
+ end: { column: 16, line: 27 },
+ },
+ },
+
+ range: [537, 545],
+ loc: {
+ start: { column: 8, line: 27 },
+ end: { column: 16, line: 27 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [531, 546],
+ loc: {
+ start: { column: 2, line: 27 },
+ end: { column: 17, line: 27 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'undefined',
+
+ range: [555, 564],
+ loc: {
+ start: { column: 8, line: 28 },
+ end: { column: 17, line: 28 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [567, 568],
+ loc: {
+ start: { column: 20, line: 28 },
+ end: { column: 21, line: 28 },
+ },
+ },
+
+ range: [555, 568],
+ loc: {
+ start: { column: 8, line: 28 },
+ end: { column: 21, line: 28 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [549, 569],
+ loc: {
+ start: { column: 2, line: 28 },
+ end: { column: 22, line: 28 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'unique',
+
+ range: [578, 584],
+ loc: {
+ start: { column: 8, line: 29 },
+ end: { column: 14, line: 29 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [587, 588],
+ loc: {
+ start: { column: 17, line: 29 },
+ end: { column: 18, line: 29 },
+ },
+ },
+
+ range: [578, 588],
+ loc: {
+ start: { column: 8, line: 29 },
+ end: { column: 18, line: 29 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [572, 589],
+ loc: {
+ start: { column: 2, line: 29 },
+ end: { column: 19, line: 29 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'unknown',
+
+ range: [598, 605],
+ loc: {
+ start: { column: 8, line: 30 },
+ end: { column: 15, line: 30 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [608, 609],
+ loc: {
+ start: { column: 18, line: 30 },
+ end: { column: 19, line: 30 },
+ },
+ },
+
+ range: [598, 609],
+ loc: {
+ start: { column: 8, line: 30 },
+ end: { column: 19, line: 30 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [592, 610],
+ loc: {
+ start: { column: 2, line: 30 },
+ end: { column: 20, line: 30 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'from',
+
+ range: [619, 623],
+ loc: {
+ start: { column: 8, line: 31 },
+ end: { column: 12, line: 31 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [626, 627],
+ loc: {
+ start: { column: 15, line: 31 },
+ end: { column: 16, line: 31 },
+ },
+ },
+
+ range: [619, 627],
+ loc: {
+ start: { column: 8, line: 31 },
+ end: { column: 16, line: 31 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [613, 628],
+ loc: {
+ start: { column: 2, line: 31 },
+ end: { column: 17, line: 31 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'global',
+
+ range: [637, 643],
+ loc: {
+ start: { column: 8, line: 32 },
+ end: { column: 14, line: 32 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [646, 647],
+ loc: {
+ start: { column: 17, line: 32 },
+ end: { column: 18, line: 32 },
+ },
+ },
+
+ range: [637, 647],
+ loc: {
+ start: { column: 8, line: 32 },
+ end: { column: 18, line: 32 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [631, 648],
+ loc: {
+ start: { column: 2, line: 32 },
+ end: { column: 19, line: 32 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'bigint',
+
+ range: [657, 663],
+ loc: {
+ start: { column: 8, line: 33 },
+ end: { column: 14, line: 33 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [666, 667],
+ loc: {
+ start: { column: 17, line: 33 },
+ end: { column: 18, line: 33 },
+ },
+ },
+
+ range: [657, 667],
+ loc: {
+ start: { column: 8, line: 33 },
+ end: { column: 18, line: 33 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [651, 668],
+ loc: {
+ start: { column: 2, line: 33 },
+ end: { column: 19, line: 33 },
+ },
+ },
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'of',
+
+ range: [677, 679],
+ loc: {
+ start: { column: 8, line: 34 },
+ end: { column: 10, line: 34 },
+ },
+ },
+ init: Literal {
+ type: 'Literal',
+ raw: '1',
+ value: 1,
+
+ range: [682, 683],
+ loc: {
+ start: { column: 13, line: 34 },
+ end: { column: 14, line: 34 },
+ },
+ },
+
+ range: [677, 683],
+ loc: {
+ start: { column: 8, line: 34 },
+ end: { column: 14, line: 34 },
+ },
+ },
+ ],
+ kind: 'const',
+
+ range: [671, 684],
+ loc: {
+ start: { column: 2, line: 34 },
+ end: { column: 15, line: 34 },
+ },
+ },
+ ],
+
+ range: [73, 686],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 1, line: 35 },
+ },
+ },
+ ImportDeclaration {
+ type: 'ImportDeclaration',
+ assertions: Array [],
+ importKind: 'value',
+ source: Literal {
+ type: 'Literal',
+ raw: '\\\\'fake-module\\\\'',
+ value: 'fake-module',
+
+ range: [1004, 1017],
+ loc: {
+ start: { column: 7, line: 69 },
+ end: { column: 20, line: 69 },
+ },
+ },
+ specifiers: Array [
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'abstract',
+
+ range: [699, 707],
+ loc: {
+ start: { column: 2, line: 38 },
+ end: { column: 10, line: 38 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'abstract',
+
+ range: [699, 707],
+ loc: {
+ start: { column: 2, line: 38 },
+ end: { column: 10, line: 38 },
+ },
+ },
+
+ range: [699, 707],
+ loc: {
+ start: { column: 2, line: 38 },
+ end: { column: 10, line: 38 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'as',
+
+ range: [711, 713],
+ loc: {
+ start: { column: 2, line: 39 },
+ end: { column: 4, line: 39 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'as',
+
+ range: [711, 713],
+ loc: {
+ start: { column: 2, line: 39 },
+ end: { column: 4, line: 39 },
+ },
+ },
+
+ range: [711, 713],
+ loc: {
+ start: { column: 2, line: 39 },
+ end: { column: 4, line: 39 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'asserts',
+
+ range: [717, 724],
+ loc: {
+ start: { column: 2, line: 40 },
+ end: { column: 9, line: 40 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'asserts',
+
+ range: [717, 724],
+ loc: {
+ start: { column: 2, line: 40 },
+ end: { column: 9, line: 40 },
+ },
+ },
+
+ range: [717, 724],
+ loc: {
+ start: { column: 2, line: 40 },
+ end: { column: 9, line: 40 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'any',
+
+ range: [728, 731],
+ loc: {
+ start: { column: 2, line: 41 },
+ end: { column: 5, line: 41 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'any',
+
+ range: [728, 731],
+ loc: {
+ start: { column: 2, line: 41 },
+ end: { column: 5, line: 41 },
+ },
+ },
+
+ range: [728, 731],
+ loc: {
+ start: { column: 2, line: 41 },
+ end: { column: 5, line: 41 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'async',
+
+ range: [735, 740],
+ loc: {
+ start: { column: 2, line: 42 },
+ end: { column: 7, line: 42 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'async',
+
+ range: [735, 740],
+ loc: {
+ start: { column: 2, line: 42 },
+ end: { column: 7, line: 42 },
+ },
+ },
+
+ range: [735, 740],
+ loc: {
+ start: { column: 2, line: 42 },
+ end: { column: 7, line: 42 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'await',
+
+ range: [744, 749],
+ loc: {
+ start: { column: 2, line: 43 },
+ end: { column: 7, line: 43 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'await',
+
+ range: [744, 749],
+ loc: {
+ start: { column: 2, line: 43 },
+ end: { column: 7, line: 43 },
+ },
+ },
+
+ range: [744, 749],
+ loc: {
+ start: { column: 2, line: 43 },
+ end: { column: 7, line: 43 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'boolean',
+
+ range: [753, 760],
+ loc: {
+ start: { column: 2, line: 44 },
+ end: { column: 9, line: 44 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'boolean',
+
+ range: [753, 760],
+ loc: {
+ start: { column: 2, line: 44 },
+ end: { column: 9, line: 44 },
+ },
+ },
+
+ range: [753, 760],
+ loc: {
+ start: { column: 2, line: 44 },
+ end: { column: 9, line: 44 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'constructor',
+
+ range: [764, 775],
+ loc: {
+ start: { column: 2, line: 45 },
+ end: { column: 13, line: 45 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'constructor',
+
+ range: [764, 775],
+ loc: {
+ start: { column: 2, line: 45 },
+ end: { column: 13, line: 45 },
+ },
+ },
+
+ range: [764, 775],
+ loc: {
+ start: { column: 2, line: 45 },
+ end: { column: 13, line: 45 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'declare',
+
+ range: [779, 786],
+ loc: {
+ start: { column: 2, line: 46 },
+ end: { column: 9, line: 46 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'declare',
+
+ range: [779, 786],
+ loc: {
+ start: { column: 2, line: 46 },
+ end: { column: 9, line: 46 },
+ },
+ },
+
+ range: [779, 786],
+ loc: {
+ start: { column: 2, line: 46 },
+ end: { column: 9, line: 46 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'get',
+
+ range: [790, 793],
+ loc: {
+ start: { column: 2, line: 47 },
+ end: { column: 5, line: 47 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'get',
+
+ range: [790, 793],
+ loc: {
+ start: { column: 2, line: 47 },
+ end: { column: 5, line: 47 },
+ },
+ },
+
+ range: [790, 793],
+ loc: {
+ start: { column: 2, line: 47 },
+ end: { column: 5, line: 47 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'infer',
+
+ range: [797, 802],
+ loc: {
+ start: { column: 2, line: 48 },
+ end: { column: 7, line: 48 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'infer',
+
+ range: [797, 802],
+ loc: {
+ start: { column: 2, line: 48 },
+ end: { column: 7, line: 48 },
+ },
+ },
+
+ range: [797, 802],
+ loc: {
+ start: { column: 2, line: 48 },
+ end: { column: 7, line: 48 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'is',
+
+ range: [806, 808],
+ loc: {
+ start: { column: 2, line: 49 },
+ end: { column: 4, line: 49 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'is',
+
+ range: [806, 808],
+ loc: {
+ start: { column: 2, line: 49 },
+ end: { column: 4, line: 49 },
+ },
+ },
+
+ range: [806, 808],
+ loc: {
+ start: { column: 2, line: 49 },
+ end: { column: 4, line: 49 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'keyof',
+
+ range: [812, 817],
+ loc: {
+ start: { column: 2, line: 50 },
+ end: { column: 7, line: 50 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'keyof',
+
+ range: [812, 817],
+ loc: {
+ start: { column: 2, line: 50 },
+ end: { column: 7, line: 50 },
+ },
+ },
+
+ range: [812, 817],
+ loc: {
+ start: { column: 2, line: 50 },
+ end: { column: 7, line: 50 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'module',
+
+ range: [821, 827],
+ loc: {
+ start: { column: 2, line: 51 },
+ end: { column: 8, line: 51 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'module',
+
+ range: [821, 827],
+ loc: {
+ start: { column: 2, line: 51 },
+ end: { column: 8, line: 51 },
+ },
+ },
+
+ range: [821, 827],
+ loc: {
+ start: { column: 2, line: 51 },
+ end: { column: 8, line: 51 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'namespace',
+
+ range: [831, 840],
+ loc: {
+ start: { column: 2, line: 52 },
+ end: { column: 11, line: 52 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'namespace',
+
+ range: [831, 840],
+ loc: {
+ start: { column: 2, line: 52 },
+ end: { column: 11, line: 52 },
+ },
+ },
+
+ range: [831, 840],
+ loc: {
+ start: { column: 2, line: 52 },
+ end: { column: 11, line: 52 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'never',
+
+ range: [844, 849],
+ loc: {
+ start: { column: 2, line: 53 },
+ end: { column: 7, line: 53 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'never',
+
+ range: [844, 849],
+ loc: {
+ start: { column: 2, line: 53 },
+ end: { column: 7, line: 53 },
+ },
+ },
+
+ range: [844, 849],
+ loc: {
+ start: { column: 2, line: 53 },
+ end: { column: 7, line: 53 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'readonly',
+
+ range: [853, 861],
+ loc: {
+ start: { column: 2, line: 54 },
+ end: { column: 10, line: 54 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'readonly',
+
+ range: [853, 861],
+ loc: {
+ start: { column: 2, line: 54 },
+ end: { column: 10, line: 54 },
+ },
+ },
+
+ range: [853, 861],
+ loc: {
+ start: { column: 2, line: 54 },
+ end: { column: 10, line: 54 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'require',
+
+ range: [865, 872],
+ loc: {
+ start: { column: 2, line: 55 },
+ end: { column: 9, line: 55 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'require',
+
+ range: [865, 872],
+ loc: {
+ start: { column: 2, line: 55 },
+ end: { column: 9, line: 55 },
+ },
+ },
+
+ range: [865, 872],
+ loc: {
+ start: { column: 2, line: 55 },
+ end: { column: 9, line: 55 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'number',
+
+ range: [876, 882],
+ loc: {
+ start: { column: 2, line: 56 },
+ end: { column: 8, line: 56 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'number',
+
+ range: [876, 882],
+ loc: {
+ start: { column: 2, line: 56 },
+ end: { column: 8, line: 56 },
+ },
+ },
+
+ range: [876, 882],
+ loc: {
+ start: { column: 2, line: 56 },
+ end: { column: 8, line: 56 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'object',
+
+ range: [886, 892],
+ loc: {
+ start: { column: 2, line: 57 },
+ end: { column: 8, line: 57 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'object',
+
+ range: [886, 892],
+ loc: {
+ start: { column: 2, line: 57 },
+ end: { column: 8, line: 57 },
+ },
+ },
+
+ range: [886, 892],
+ loc: {
+ start: { column: 2, line: 57 },
+ end: { column: 8, line: 57 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'set',
+
+ range: [896, 899],
+ loc: {
+ start: { column: 2, line: 58 },
+ end: { column: 5, line: 58 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'set',
+
+ range: [896, 899],
+ loc: {
+ start: { column: 2, line: 58 },
+ end: { column: 5, line: 58 },
+ },
+ },
+
+ range: [896, 899],
+ loc: {
+ start: { column: 2, line: 58 },
+ end: { column: 5, line: 58 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'string',
+
+ range: [903, 909],
+ loc: {
+ start: { column: 2, line: 59 },
+ end: { column: 8, line: 59 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'string',
+
+ range: [903, 909],
+ loc: {
+ start: { column: 2, line: 59 },
+ end: { column: 8, line: 59 },
+ },
+ },
+
+ range: [903, 909],
+ loc: {
+ start: { column: 2, line: 59 },
+ end: { column: 8, line: 59 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'symbol',
+
+ range: [913, 919],
+ loc: {
+ start: { column: 2, line: 60 },
+ end: { column: 8, line: 60 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'symbol',
+
+ range: [913, 919],
+ loc: {
+ start: { column: 2, line: 60 },
+ end: { column: 8, line: 60 },
+ },
+ },
+
+ range: [913, 919],
+ loc: {
+ start: { column: 2, line: 60 },
+ end: { column: 8, line: 60 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'type',
+
+ range: [923, 927],
+ loc: {
+ start: { column: 2, line: 61 },
+ end: { column: 6, line: 61 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'type',
+
+ range: [923, 927],
+ loc: {
+ start: { column: 2, line: 61 },
+ end: { column: 6, line: 61 },
+ },
+ },
+
+ range: [923, 927],
+ loc: {
+ start: { column: 2, line: 61 },
+ end: { column: 6, line: 61 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'undefined',
+
+ range: [931, 940],
+ loc: {
+ start: { column: 2, line: 62 },
+ end: { column: 11, line: 62 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'undefined',
+
+ range: [931, 940],
+ loc: {
+ start: { column: 2, line: 62 },
+ end: { column: 11, line: 62 },
+ },
+ },
+
+ range: [931, 940],
+ loc: {
+ start: { column: 2, line: 62 },
+ end: { column: 11, line: 62 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'unique',
+
+ range: [944, 950],
+ loc: {
+ start: { column: 2, line: 63 },
+ end: { column: 8, line: 63 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'unique',
+
+ range: [944, 950],
+ loc: {
+ start: { column: 2, line: 63 },
+ end: { column: 8, line: 63 },
+ },
+ },
+
+ range: [944, 950],
+ loc: {
+ start: { column: 2, line: 63 },
+ end: { column: 8, line: 63 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'unknown',
+
+ range: [954, 961],
+ loc: {
+ start: { column: 2, line: 64 },
+ end: { column: 9, line: 64 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'unknown',
+
+ range: [954, 961],
+ loc: {
+ start: { column: 2, line: 64 },
+ end: { column: 9, line: 64 },
+ },
+ },
+
+ range: [954, 961],
+ loc: {
+ start: { column: 2, line: 64 },
+ end: { column: 9, line: 64 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'from',
+
+ range: [965, 969],
+ loc: {
+ start: { column: 2, line: 65 },
+ end: { column: 6, line: 65 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'from',
+
+ range: [965, 969],
+ loc: {
+ start: { column: 2, line: 65 },
+ end: { column: 6, line: 65 },
+ },
+ },
+
+ range: [965, 969],
+ loc: {
+ start: { column: 2, line: 65 },
+ end: { column: 6, line: 65 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'global',
+
+ range: [973, 979],
+ loc: {
+ start: { column: 2, line: 66 },
+ end: { column: 8, line: 66 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'global',
+
+ range: [973, 979],
+ loc: {
+ start: { column: 2, line: 66 },
+ end: { column: 8, line: 66 },
+ },
+ },
+
+ range: [973, 979],
+ loc: {
+ start: { column: 2, line: 66 },
+ end: { column: 8, line: 66 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'bigint',
+
+ range: [983, 989],
+ loc: {
+ start: { column: 2, line: 67 },
+ end: { column: 8, line: 67 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'bigint',
+
+ range: [983, 989],
+ loc: {
+ start: { column: 2, line: 67 },
+ end: { column: 8, line: 67 },
+ },
+ },
+
+ range: [983, 989],
+ loc: {
+ start: { column: 2, line: 67 },
+ end: { column: 8, line: 67 },
+ },
+ },
+ ImportSpecifier {
+ type: 'ImportSpecifier',
+ imported: Identifier {
+ type: 'Identifier',
+ name: 'of',
+
+ range: [993, 995],
+ loc: {
+ start: { column: 2, line: 68 },
+ end: { column: 4, line: 68 },
+ },
+ },
+ importKind: 'value',
+ local: Identifier {
+ type: 'Identifier',
+ name: 'of',
+
+ range: [993, 995],
+ loc: {
+ start: { column: 2, line: 68 },
+ end: { column: 4, line: 68 },
+ },
+ },
+
+ range: [993, 995],
+ loc: {
+ start: { column: 2, line: 68 },
+ end: { column: 4, line: 68 },
+ },
+ },
+ ],
+
+ range: [688, 1018],
+ loc: {
+ start: { column: 0, line: 37 },
+ end: { column: 21, line: 69 },
+ },
+ },
+ TSInterfaceDeclaration {
+ type: 'TSInterfaceDeclaration',
+ body: TSInterfaceBody {
+ type: 'TSInterfaceBody',
+ body: Array [],
+
+ range: [1032, 1034],
+ loc: {
+ start: { column: 12, line: 71 },
+ end: { column: 14, line: 71 },
+ },
+ },
+ id: Identifier {
+ type: 'Identifier',
+ name: 'X',
+
+ range: [1030, 1031],
+ loc: {
+ start: { column: 10, line: 71 },
+ end: { column: 11, line: 71 },
+ },
+ },
+
+ range: [1020, 1034],
+ loc: {
+ start: { column: 0, line: 71 },
+ end: { column: 14, line: 71 },
+ },
+ },
+ ClassDeclaration {
+ type: 'ClassDeclaration',
+ body: ClassBody {
+ type: 'ClassBody',
+ body: Array [
+ MethodDefinition {
+ type: 'MethodDefinition',
+ computed: false,
+ key: Identifier {
+ type: 'Identifier',
+ name: 'a',
+
+ range: [1067, 1068],
+ loc: {
+ start: { column: 9, line: 73 },
+ end: { column: 10, line: 73 },
+ },
+ },
+ kind: 'method',
+- override: false,
+ static: true,
+ value: FunctionExpression {
+ type: 'FunctionExpression',
+ async: false,
+ body: BlockStatement {
+ type: 'BlockStatement',
+ body: Array [],
+
+ range: [1071, 1073],
+ loc: {
+ start: { column: 13, line: 73 },
+ end: { column: 15, line: 73 },
+ },
+ },
+ expression: false,
+ generator: false,
+ id: null,
+ params: Array [],
+
+ range: [1068, 1073],
+ loc: {
+ start: { column: 10, line: 73 },
+ end: { column: 15, line: 73 },
+ },
+ },
+
+ range: [1060, 1073],
+ loc: {
+ start: { column: 2, line: 73 },
+ end: { column: 15, line: 73 },
+ },
+ },
+ MethodDefinition {
+ type: 'MethodDefinition',
+ accessibility: 'private',
+ computed: false,
+ key: Identifier {
+ type: 'Identifier',
+ name: 'b',
+
+ range: [1084, 1085],
+ loc: {
+ start: { column: 10, line: 74 },
+ end: { column: 11, line: 74 },
+ },
+ },
+ kind: 'method',
+- override: false,
+ static: false,
+ value: FunctionExpression {
+ type: 'FunctionExpression',
+ async: false,
+ body: BlockStatement {
+ type: 'BlockStatement',
+ body: Array [],
+
+ range: [1088, 1090],
+ loc: {
+ start: { column: 14, line: 74 },
+ end: { column: 16, line: 74 },
+ },
+ },
+ expression: false,
+ generator: false,
+ id: null,
+ params: Array [],
+
+ range: [1085, 1090],
+ loc: {
+ start: { column: 11, line: 74 },
+ end: { column: 16, line: 74 },
+ },
+ },
+
+ range: [1076, 1090],
+ loc: {
+ start: { column: 2, line: 74 },
+ end: { column: 16, line: 74 },
+ },
+ },
+ MethodDefinition {
+ type: 'MethodDefinition',
+ accessibility: 'public',
+ computed: false,
+ key: Identifier {
+ type: 'Identifier',
+ name: 'c',
+
+ range: [1100, 1101],
+ loc: {
+ start: { column: 9, line: 75 },
+ end: { column: 10, line: 75 },
+ },
+ },
+ kind: 'method',
+- override: false,
+ static: false,
+ value: FunctionExpression {
+ type: 'FunctionExpression',
+ async: false,
+ body: BlockStatement {
+ type: 'BlockStatement',
+ body: Array [],
+
+ range: [1104, 1106],
+ loc: {
+ start: { column: 13, line: 75 },
+ end: { column: 15, line: 75 },
+ },
+ },
+ expression: false,
+ generator: false,
+ id: null,
+ params: Array [],
+
+ range: [1101, 1106],
+ loc: {
+ start: { column: 10, line: 75 },
+ end: { column: 15, line: 75 },
+ },
+ },
+
+ range: [1093, 1106],
+ loc: {
+ start: { column: 2, line: 75 },
+ end: { column: 15, line: 75 },
+ },
+ },
+ MethodDefinition {
+ type: 'MethodDefinition',
+ accessibility: 'protected',
+ computed: false,
+ key: Identifier {
+ type: 'Identifier',
+ name: 'd',
+
+ range: [1120, 1121],
+ loc: {
+ start: { column: 13, line: 76 },
+ end: { column: 14, line: 76 },
+ },
+ },
+ kind: 'method',
+- override: false,
+ static: false,
+ value: FunctionExpression {
+ type: 'FunctionExpression',
+ async: false,
+ body: BlockStatement {
+ type: 'BlockStatement',
+ body: Array [
+ VariableDeclaration {
+ type: 'VariableDeclaration',
+ declarations: Array [
+ VariableDeclarator {
+ type: 'VariableDeclarator',
+ id: Identifier {
+ type: 'Identifier',
+ name: 'x',
+
+ range: [1134, 1135],
+ loc: {
+ start: { column: 8, line: 77 },
+ end: { column: 9, line: 77 },
+ },
+ },
+ init: YieldExpression {
+ type: 'YieldExpression',
+ argument: null,
+ delegate: false,
+
+ range: [1138, 1143],
+ loc: {
+ start: { column: 12, line: 77 },
+ end: { column: 17, line: 77 },
+ },
+ },
+
+ range: [1134, 1143],
+ loc: {
+ start: { column: 8, line: 77 },
+ end: { column: 17, line: 77 },
+ },
+ },
+ ],
+ kind: 'let',
+
+ range: [1130, 1144],
+ loc: {
+ start: { column: 4, line: 77 },
+ end: { column: 18, line: 77 },
+ },
+ },
+ ],
+
+ range: [1124, 1148],
+ loc: {
+ start: { column: 17, line: 76 },
+ end: { column: 3, line: 78 },
+ },
+ },
+ expression: false,
+ generator: true,
+ id: null,
+ params: Array [],
+
+ range: [1121, 1148],
+ loc: {
+ start: { column: 14, line: 76 },
+ end: { column: 3, line: 78 },
+ },
+ },
+
+ range: [1109, 1148],
+ loc: {
+ start: { column: 2, line: 76 },
+ end: { column: 3, line: 78 },
+ },
+ },
+ ],
+
+ range: [1056, 1150],
+ loc: {
+ start: { column: 21, line: 72 },
+ end: { column: 1, line: 79 },
+ },
+ },
+ id: Identifier {
+ type: 'Identifier',
+ name: 'C',
+
+ range: [1041, 1042],
+ loc: {
+ start: { column: 6, line: 72 },
+ end: { column: 7, line: 72 },
+ },
+ },
+ implements: Array [
+- TSClassImplements {
+- type: 'TSClassImplements',
++ TSExpressionWithTypeArguments {
++ type: 'TSExpressionWithTypeArguments',
+ expression: Identifier {
+ type: 'Identifier',
+ name: 'X',
+
+ range: [1054, 1055],
+ loc: {
+ start: { column: 19, line: 72 },
+ end: { column: 20, line: 72 },
+ },
+ },
+
+ range: [1054, 1055],
+ loc: {
+ start: { column: 19, line: 72 },
+ end: { column: 20, line: 72 },
+ },
+ },
+ ],
+ superClass: null,
+
+ range: [1035, 1150],
+ loc: {
+ start: { column: 0, line: 72 },
+ end: { column: 1, line: 79 },
+ },
+ },
+ ],
+- sourceType: 'module',
++ sourceType: 'script',
+
+ range: [73, 1151],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 0, line: 80 },
+ },
+ }"
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/6-AST-Alignment-Tokens.shot
new file mode 100644
index 000000000000..230728cbecdd
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/keyword-variables/snapshots/6-AST-Alignment-Tokens.shot
@@ -0,0 +1,2674 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`AST Fixtures legacy-fixtures basics keyword-variables AST Alignment - Token 1`] = `
+"Snapshot Diff:
+- TSESTree
++ Babel
+
+ Array [
+ Punctuator {
+ type: 'Punctuator',
+ value: '{',
+
+ range: [73, 74],
+ loc: {
+ start: { column: 0, line: 3 },
+ end: { column: 1, line: 3 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [77, 82],
+ loc: {
+ start: { column: 2, line: 4 },
+ end: { column: 7, line: 4 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'abstract',
+
+ range: [83, 91],
+ loc: {
+ start: { column: 8, line: 4 },
+ end: { column: 16, line: 4 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [92, 93],
+ loc: {
+ start: { column: 17, line: 4 },
+ end: { column: 18, line: 4 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [94, 95],
+ loc: {
+ start: { column: 19, line: 4 },
+ end: { column: 20, line: 4 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [95, 96],
+ loc: {
+ start: { column: 20, line: 4 },
+ end: { column: 21, line: 4 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [99, 104],
+ loc: {
+ start: { column: 2, line: 5 },
+ end: { column: 7, line: 5 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'as',
+
+ range: [105, 107],
+ loc: {
+ start: { column: 8, line: 5 },
+ end: { column: 10, line: 5 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [108, 109],
+ loc: {
+ start: { column: 11, line: 5 },
+ end: { column: 12, line: 5 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [110, 111],
+ loc: {
+ start: { column: 13, line: 5 },
+ end: { column: 14, line: 5 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [111, 112],
+ loc: {
+ start: { column: 14, line: 5 },
+ end: { column: 15, line: 5 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [115, 120],
+ loc: {
+ start: { column: 2, line: 6 },
+ end: { column: 7, line: 6 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'asserts',
+
+ range: [121, 128],
+ loc: {
+ start: { column: 8, line: 6 },
+ end: { column: 15, line: 6 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [129, 130],
+ loc: {
+ start: { column: 16, line: 6 },
+ end: { column: 17, line: 6 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [131, 132],
+ loc: {
+ start: { column: 18, line: 6 },
+ end: { column: 19, line: 6 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [132, 133],
+ loc: {
+ start: { column: 19, line: 6 },
+ end: { column: 20, line: 6 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [136, 141],
+ loc: {
+ start: { column: 2, line: 7 },
+ end: { column: 7, line: 7 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'any',
+
+ range: [142, 145],
+ loc: {
+ start: { column: 8, line: 7 },
+ end: { column: 11, line: 7 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [146, 147],
+ loc: {
+ start: { column: 12, line: 7 },
+ end: { column: 13, line: 7 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [148, 149],
+ loc: {
+ start: { column: 14, line: 7 },
+ end: { column: 15, line: 7 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [149, 150],
+ loc: {
+ start: { column: 15, line: 7 },
+ end: { column: 16, line: 7 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [153, 158],
+ loc: {
+ start: { column: 2, line: 8 },
+ end: { column: 7, line: 8 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'async',
+
+ range: [159, 164],
+ loc: {
+ start: { column: 8, line: 8 },
+ end: { column: 13, line: 8 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [165, 166],
+ loc: {
+ start: { column: 14, line: 8 },
+ end: { column: 15, line: 8 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [167, 168],
+ loc: {
+ start: { column: 16, line: 8 },
+ end: { column: 17, line: 8 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [168, 169],
+ loc: {
+ start: { column: 17, line: 8 },
+ end: { column: 18, line: 8 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [172, 177],
+ loc: {
+ start: { column: 2, line: 9 },
+ end: { column: 7, line: 9 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'await',
+
+ range: [178, 183],
+ loc: {
+ start: { column: 8, line: 9 },
+ end: { column: 13, line: 9 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [184, 185],
+ loc: {
+ start: { column: 14, line: 9 },
+ end: { column: 15, line: 9 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [186, 187],
+ loc: {
+ start: { column: 16, line: 9 },
+ end: { column: 17, line: 9 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [187, 188],
+ loc: {
+ start: { column: 17, line: 9 },
+ end: { column: 18, line: 9 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [191, 196],
+ loc: {
+ start: { column: 2, line: 10 },
+ end: { column: 7, line: 10 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'boolean',
+
+ range: [197, 204],
+ loc: {
+ start: { column: 8, line: 10 },
+ end: { column: 15, line: 10 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [205, 206],
+ loc: {
+ start: { column: 16, line: 10 },
+ end: { column: 17, line: 10 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [207, 208],
+ loc: {
+ start: { column: 18, line: 10 },
+ end: { column: 19, line: 10 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [208, 209],
+ loc: {
+ start: { column: 19, line: 10 },
+ end: { column: 20, line: 10 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [212, 217],
+ loc: {
+ start: { column: 2, line: 11 },
+ end: { column: 7, line: 11 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'constructor',
+
+ range: [218, 229],
+ loc: {
+ start: { column: 8, line: 11 },
+ end: { column: 19, line: 11 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [230, 231],
+ loc: {
+ start: { column: 20, line: 11 },
+ end: { column: 21, line: 11 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [232, 233],
+ loc: {
+ start: { column: 22, line: 11 },
+ end: { column: 23, line: 11 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [233, 234],
+ loc: {
+ start: { column: 23, line: 11 },
+ end: { column: 24, line: 11 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [237, 242],
+ loc: {
+ start: { column: 2, line: 12 },
+ end: { column: 7, line: 12 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'declare',
+
+ range: [243, 250],
+ loc: {
+ start: { column: 8, line: 12 },
+ end: { column: 15, line: 12 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [251, 252],
+ loc: {
+ start: { column: 16, line: 12 },
+ end: { column: 17, line: 12 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [253, 254],
+ loc: {
+ start: { column: 18, line: 12 },
+ end: { column: 19, line: 12 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [254, 255],
+ loc: {
+ start: { column: 19, line: 12 },
+ end: { column: 20, line: 12 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [258, 263],
+ loc: {
+ start: { column: 2, line: 13 },
+ end: { column: 7, line: 13 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'get',
+
+ range: [264, 267],
+ loc: {
+ start: { column: 8, line: 13 },
+ end: { column: 11, line: 13 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [268, 269],
+ loc: {
+ start: { column: 12, line: 13 },
+ end: { column: 13, line: 13 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [270, 271],
+ loc: {
+ start: { column: 14, line: 13 },
+ end: { column: 15, line: 13 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [271, 272],
+ loc: {
+ start: { column: 15, line: 13 },
+ end: { column: 16, line: 13 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [275, 280],
+ loc: {
+ start: { column: 2, line: 14 },
+ end: { column: 7, line: 14 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'infer',
+
+ range: [281, 286],
+ loc: {
+ start: { column: 8, line: 14 },
+ end: { column: 13, line: 14 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [287, 288],
+ loc: {
+ start: { column: 14, line: 14 },
+ end: { column: 15, line: 14 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [289, 290],
+ loc: {
+ start: { column: 16, line: 14 },
+ end: { column: 17, line: 14 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [290, 291],
+ loc: {
+ start: { column: 17, line: 14 },
+ end: { column: 18, line: 14 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [294, 299],
+ loc: {
+ start: { column: 2, line: 15 },
+ end: { column: 7, line: 15 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'is',
+
+ range: [300, 302],
+ loc: {
+ start: { column: 8, line: 15 },
+ end: { column: 10, line: 15 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [303, 304],
+ loc: {
+ start: { column: 11, line: 15 },
+ end: { column: 12, line: 15 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [305, 306],
+ loc: {
+ start: { column: 13, line: 15 },
+ end: { column: 14, line: 15 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [306, 307],
+ loc: {
+ start: { column: 14, line: 15 },
+ end: { column: 15, line: 15 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [310, 315],
+ loc: {
+ start: { column: 2, line: 16 },
+ end: { column: 7, line: 16 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'keyof',
+
+ range: [316, 321],
+ loc: {
+ start: { column: 8, line: 16 },
+ end: { column: 13, line: 16 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [322, 323],
+ loc: {
+ start: { column: 14, line: 16 },
+ end: { column: 15, line: 16 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [324, 325],
+ loc: {
+ start: { column: 16, line: 16 },
+ end: { column: 17, line: 16 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [325, 326],
+ loc: {
+ start: { column: 17, line: 16 },
+ end: { column: 18, line: 16 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [329, 334],
+ loc: {
+ start: { column: 2, line: 17 },
+ end: { column: 7, line: 17 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'module',
+
+ range: [335, 341],
+ loc: {
+ start: { column: 8, line: 17 },
+ end: { column: 14, line: 17 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [342, 343],
+ loc: {
+ start: { column: 15, line: 17 },
+ end: { column: 16, line: 17 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [344, 345],
+ loc: {
+ start: { column: 17, line: 17 },
+ end: { column: 18, line: 17 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [345, 346],
+ loc: {
+ start: { column: 18, line: 17 },
+ end: { column: 19, line: 17 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [349, 354],
+ loc: {
+ start: { column: 2, line: 18 },
+ end: { column: 7, line: 18 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'namespace',
+
+ range: [355, 364],
+ loc: {
+ start: { column: 8, line: 18 },
+ end: { column: 17, line: 18 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [365, 366],
+ loc: {
+ start: { column: 18, line: 18 },
+ end: { column: 19, line: 18 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [367, 368],
+ loc: {
+ start: { column: 20, line: 18 },
+ end: { column: 21, line: 18 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [368, 369],
+ loc: {
+ start: { column: 21, line: 18 },
+ end: { column: 22, line: 18 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [372, 377],
+ loc: {
+ start: { column: 2, line: 19 },
+ end: { column: 7, line: 19 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'never',
+
+ range: [378, 383],
+ loc: {
+ start: { column: 8, line: 19 },
+ end: { column: 13, line: 19 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [384, 385],
+ loc: {
+ start: { column: 14, line: 19 },
+ end: { column: 15, line: 19 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [386, 387],
+ loc: {
+ start: { column: 16, line: 19 },
+ end: { column: 17, line: 19 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [387, 388],
+ loc: {
+ start: { column: 17, line: 19 },
+ end: { column: 18, line: 19 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [391, 396],
+ loc: {
+ start: { column: 2, line: 20 },
+ end: { column: 7, line: 20 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'readonly',
+
+ range: [397, 405],
+ loc: {
+ start: { column: 8, line: 20 },
+ end: { column: 16, line: 20 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [406, 407],
+ loc: {
+ start: { column: 17, line: 20 },
+ end: { column: 18, line: 20 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [408, 409],
+ loc: {
+ start: { column: 19, line: 20 },
+ end: { column: 20, line: 20 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [409, 410],
+ loc: {
+ start: { column: 20, line: 20 },
+ end: { column: 21, line: 20 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [413, 418],
+ loc: {
+ start: { column: 2, line: 21 },
+ end: { column: 7, line: 21 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'require',
+
+ range: [419, 426],
+ loc: {
+ start: { column: 8, line: 21 },
+ end: { column: 15, line: 21 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [427, 428],
+ loc: {
+ start: { column: 16, line: 21 },
+ end: { column: 17, line: 21 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [429, 430],
+ loc: {
+ start: { column: 18, line: 21 },
+ end: { column: 19, line: 21 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [430, 431],
+ loc: {
+ start: { column: 19, line: 21 },
+ end: { column: 20, line: 21 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [434, 439],
+ loc: {
+ start: { column: 2, line: 22 },
+ end: { column: 7, line: 22 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'number',
+
+ range: [440, 446],
+ loc: {
+ start: { column: 8, line: 22 },
+ end: { column: 14, line: 22 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [447, 448],
+ loc: {
+ start: { column: 15, line: 22 },
+ end: { column: 16, line: 22 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [449, 450],
+ loc: {
+ start: { column: 17, line: 22 },
+ end: { column: 18, line: 22 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [450, 451],
+ loc: {
+ start: { column: 18, line: 22 },
+ end: { column: 19, line: 22 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [454, 459],
+ loc: {
+ start: { column: 2, line: 23 },
+ end: { column: 7, line: 23 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'object',
+
+ range: [460, 466],
+ loc: {
+ start: { column: 8, line: 23 },
+ end: { column: 14, line: 23 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [467, 468],
+ loc: {
+ start: { column: 15, line: 23 },
+ end: { column: 16, line: 23 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [469, 470],
+ loc: {
+ start: { column: 17, line: 23 },
+ end: { column: 18, line: 23 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [470, 471],
+ loc: {
+ start: { column: 18, line: 23 },
+ end: { column: 19, line: 23 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [474, 479],
+ loc: {
+ start: { column: 2, line: 24 },
+ end: { column: 7, line: 24 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'set',
+
+ range: [480, 483],
+ loc: {
+ start: { column: 8, line: 24 },
+ end: { column: 11, line: 24 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [484, 485],
+ loc: {
+ start: { column: 12, line: 24 },
+ end: { column: 13, line: 24 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [486, 487],
+ loc: {
+ start: { column: 14, line: 24 },
+ end: { column: 15, line: 24 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [487, 488],
+ loc: {
+ start: { column: 15, line: 24 },
+ end: { column: 16, line: 24 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [491, 496],
+ loc: {
+ start: { column: 2, line: 25 },
+ end: { column: 7, line: 25 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'string',
+
+ range: [497, 503],
+ loc: {
+ start: { column: 8, line: 25 },
+ end: { column: 14, line: 25 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [504, 505],
+ loc: {
+ start: { column: 15, line: 25 },
+ end: { column: 16, line: 25 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [506, 507],
+ loc: {
+ start: { column: 17, line: 25 },
+ end: { column: 18, line: 25 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [507, 508],
+ loc: {
+ start: { column: 18, line: 25 },
+ end: { column: 19, line: 25 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [511, 516],
+ loc: {
+ start: { column: 2, line: 26 },
+ end: { column: 7, line: 26 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'symbol',
+
+ range: [517, 523],
+ loc: {
+ start: { column: 8, line: 26 },
+ end: { column: 14, line: 26 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [524, 525],
+ loc: {
+ start: { column: 15, line: 26 },
+ end: { column: 16, line: 26 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [526, 527],
+ loc: {
+ start: { column: 17, line: 26 },
+ end: { column: 18, line: 26 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [527, 528],
+ loc: {
+ start: { column: 18, line: 26 },
+ end: { column: 19, line: 26 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [531, 536],
+ loc: {
+ start: { column: 2, line: 27 },
+ end: { column: 7, line: 27 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'type',
+
+ range: [537, 541],
+ loc: {
+ start: { column: 8, line: 27 },
+ end: { column: 12, line: 27 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [542, 543],
+ loc: {
+ start: { column: 13, line: 27 },
+ end: { column: 14, line: 27 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [544, 545],
+ loc: {
+ start: { column: 15, line: 27 },
+ end: { column: 16, line: 27 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [545, 546],
+ loc: {
+ start: { column: 16, line: 27 },
+ end: { column: 17, line: 27 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [549, 554],
+ loc: {
+ start: { column: 2, line: 28 },
+ end: { column: 7, line: 28 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'undefined',
+
+ range: [555, 564],
+ loc: {
+ start: { column: 8, line: 28 },
+ end: { column: 17, line: 28 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [565, 566],
+ loc: {
+ start: { column: 18, line: 28 },
+ end: { column: 19, line: 28 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [567, 568],
+ loc: {
+ start: { column: 20, line: 28 },
+ end: { column: 21, line: 28 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [568, 569],
+ loc: {
+ start: { column: 21, line: 28 },
+ end: { column: 22, line: 28 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [572, 577],
+ loc: {
+ start: { column: 2, line: 29 },
+ end: { column: 7, line: 29 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'unique',
+
+ range: [578, 584],
+ loc: {
+ start: { column: 8, line: 29 },
+ end: { column: 14, line: 29 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [585, 586],
+ loc: {
+ start: { column: 15, line: 29 },
+ end: { column: 16, line: 29 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [587, 588],
+ loc: {
+ start: { column: 17, line: 29 },
+ end: { column: 18, line: 29 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [588, 589],
+ loc: {
+ start: { column: 18, line: 29 },
+ end: { column: 19, line: 29 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [592, 597],
+ loc: {
+ start: { column: 2, line: 30 },
+ end: { column: 7, line: 30 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'unknown',
+
+ range: [598, 605],
+ loc: {
+ start: { column: 8, line: 30 },
+ end: { column: 15, line: 30 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [606, 607],
+ loc: {
+ start: { column: 16, line: 30 },
+ end: { column: 17, line: 30 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [608, 609],
+ loc: {
+ start: { column: 18, line: 30 },
+ end: { column: 19, line: 30 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [609, 610],
+ loc: {
+ start: { column: 19, line: 30 },
+ end: { column: 20, line: 30 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [613, 618],
+ loc: {
+ start: { column: 2, line: 31 },
+ end: { column: 7, line: 31 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'from',
+
+ range: [619, 623],
+ loc: {
+ start: { column: 8, line: 31 },
+ end: { column: 12, line: 31 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [624, 625],
+ loc: {
+ start: { column: 13, line: 31 },
+ end: { column: 14, line: 31 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [626, 627],
+ loc: {
+ start: { column: 15, line: 31 },
+ end: { column: 16, line: 31 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [627, 628],
+ loc: {
+ start: { column: 16, line: 31 },
+ end: { column: 17, line: 31 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [631, 636],
+ loc: {
+ start: { column: 2, line: 32 },
+ end: { column: 7, line: 32 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'global',
+
+ range: [637, 643],
+ loc: {
+ start: { column: 8, line: 32 },
+ end: { column: 14, line: 32 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [644, 645],
+ loc: {
+ start: { column: 15, line: 32 },
+ end: { column: 16, line: 32 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [646, 647],
+ loc: {
+ start: { column: 17, line: 32 },
+ end: { column: 18, line: 32 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [647, 648],
+ loc: {
+ start: { column: 18, line: 32 },
+ end: { column: 19, line: 32 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [651, 656],
+ loc: {
+ start: { column: 2, line: 33 },
+ end: { column: 7, line: 33 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'bigint',
+
+ range: [657, 663],
+ loc: {
+ start: { column: 8, line: 33 },
+ end: { column: 14, line: 33 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [664, 665],
+ loc: {
+ start: { column: 15, line: 33 },
+ end: { column: 16, line: 33 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [666, 667],
+ loc: {
+ start: { column: 17, line: 33 },
+ end: { column: 18, line: 33 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [667, 668],
+ loc: {
+ start: { column: 18, line: 33 },
+ end: { column: 19, line: 33 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'const',
+
+ range: [671, 676],
+ loc: {
+ start: { column: 2, line: 34 },
+ end: { column: 7, line: 34 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'of',
+
+ range: [677, 679],
+ loc: {
+ start: { column: 8, line: 34 },
+ end: { column: 10, line: 34 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [680, 681],
+ loc: {
+ start: { column: 11, line: 34 },
+ end: { column: 12, line: 34 },
+ },
+ },
+ Numeric {
+ type: 'Numeric',
+ value: '1',
+
+ range: [682, 683],
+ loc: {
+ start: { column: 13, line: 34 },
+ end: { column: 14, line: 34 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [683, 684],
+ loc: {
+ start: { column: 14, line: 34 },
+ end: { column: 15, line: 34 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '}',
+
+ range: [685, 686],
+ loc: {
+ start: { column: 0, line: 35 },
+ end: { column: 1, line: 35 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'import',
+
+ range: [688, 694],
+ loc: {
+ start: { column: 0, line: 37 },
+ end: { column: 6, line: 37 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '{',
+
+ range: [695, 696],
+ loc: {
+ start: { column: 7, line: 37 },
+ end: { column: 8, line: 37 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'abstract',
+
+ range: [699, 707],
+ loc: {
+ start: { column: 2, line: 38 },
+ end: { column: 10, line: 38 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [707, 708],
+ loc: {
+ start: { column: 10, line: 38 },
+ end: { column: 11, line: 38 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'as',
+
+ range: [711, 713],
+ loc: {
+ start: { column: 2, line: 39 },
+ end: { column: 4, line: 39 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [713, 714],
+ loc: {
+ start: { column: 4, line: 39 },
+ end: { column: 5, line: 39 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'asserts',
+
+ range: [717, 724],
+ loc: {
+ start: { column: 2, line: 40 },
+ end: { column: 9, line: 40 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [724, 725],
+ loc: {
+ start: { column: 9, line: 40 },
+ end: { column: 10, line: 40 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'any',
+
+ range: [728, 731],
+ loc: {
+ start: { column: 2, line: 41 },
+ end: { column: 5, line: 41 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [731, 732],
+ loc: {
+ start: { column: 5, line: 41 },
+ end: { column: 6, line: 41 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'async',
+
+ range: [735, 740],
+ loc: {
+ start: { column: 2, line: 42 },
+ end: { column: 7, line: 42 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [740, 741],
+ loc: {
+ start: { column: 7, line: 42 },
+ end: { column: 8, line: 42 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'await',
+
+ range: [744, 749],
+ loc: {
+ start: { column: 2, line: 43 },
+ end: { column: 7, line: 43 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [749, 750],
+ loc: {
+ start: { column: 7, line: 43 },
+ end: { column: 8, line: 43 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'boolean',
+
+ range: [753, 760],
+ loc: {
+ start: { column: 2, line: 44 },
+ end: { column: 9, line: 44 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [760, 761],
+ loc: {
+ start: { column: 9, line: 44 },
+ end: { column: 10, line: 44 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'constructor',
+
+ range: [764, 775],
+ loc: {
+ start: { column: 2, line: 45 },
+ end: { column: 13, line: 45 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [775, 776],
+ loc: {
+ start: { column: 13, line: 45 },
+ end: { column: 14, line: 45 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'declare',
+
+ range: [779, 786],
+ loc: {
+ start: { column: 2, line: 46 },
+ end: { column: 9, line: 46 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [786, 787],
+ loc: {
+ start: { column: 9, line: 46 },
+ end: { column: 10, line: 46 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'get',
+
+ range: [790, 793],
+ loc: {
+ start: { column: 2, line: 47 },
+ end: { column: 5, line: 47 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [793, 794],
+ loc: {
+ start: { column: 5, line: 47 },
+ end: { column: 6, line: 47 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'infer',
+
+ range: [797, 802],
+ loc: {
+ start: { column: 2, line: 48 },
+ end: { column: 7, line: 48 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [802, 803],
+ loc: {
+ start: { column: 7, line: 48 },
+ end: { column: 8, line: 48 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'is',
+
+ range: [806, 808],
+ loc: {
+ start: { column: 2, line: 49 },
+ end: { column: 4, line: 49 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [808, 809],
+ loc: {
+ start: { column: 4, line: 49 },
+ end: { column: 5, line: 49 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'keyof',
+
+ range: [812, 817],
+ loc: {
+ start: { column: 2, line: 50 },
+ end: { column: 7, line: 50 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [817, 818],
+ loc: {
+ start: { column: 7, line: 50 },
+ end: { column: 8, line: 50 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'module',
+
+ range: [821, 827],
+ loc: {
+ start: { column: 2, line: 51 },
+ end: { column: 8, line: 51 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [827, 828],
+ loc: {
+ start: { column: 8, line: 51 },
+ end: { column: 9, line: 51 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'namespace',
+
+ range: [831, 840],
+ loc: {
+ start: { column: 2, line: 52 },
+ end: { column: 11, line: 52 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [840, 841],
+ loc: {
+ start: { column: 11, line: 52 },
+ end: { column: 12, line: 52 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'never',
+
+ range: [844, 849],
+ loc: {
+ start: { column: 2, line: 53 },
+ end: { column: 7, line: 53 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [849, 850],
+ loc: {
+ start: { column: 7, line: 53 },
+ end: { column: 8, line: 53 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'readonly',
+
+ range: [853, 861],
+ loc: {
+ start: { column: 2, line: 54 },
+ end: { column: 10, line: 54 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [861, 862],
+ loc: {
+ start: { column: 10, line: 54 },
+ end: { column: 11, line: 54 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'require',
+
+ range: [865, 872],
+ loc: {
+ start: { column: 2, line: 55 },
+ end: { column: 9, line: 55 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [872, 873],
+ loc: {
+ start: { column: 9, line: 55 },
+ end: { column: 10, line: 55 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'number',
+
+ range: [876, 882],
+ loc: {
+ start: { column: 2, line: 56 },
+ end: { column: 8, line: 56 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [882, 883],
+ loc: {
+ start: { column: 8, line: 56 },
+ end: { column: 9, line: 56 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'object',
+
+ range: [886, 892],
+ loc: {
+ start: { column: 2, line: 57 },
+ end: { column: 8, line: 57 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [892, 893],
+ loc: {
+ start: { column: 8, line: 57 },
+ end: { column: 9, line: 57 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'set',
+
+ range: [896, 899],
+ loc: {
+ start: { column: 2, line: 58 },
+ end: { column: 5, line: 58 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [899, 900],
+ loc: {
+ start: { column: 5, line: 58 },
+ end: { column: 6, line: 58 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'string',
+
+ range: [903, 909],
+ loc: {
+ start: { column: 2, line: 59 },
+ end: { column: 8, line: 59 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [909, 910],
+ loc: {
+ start: { column: 8, line: 59 },
+ end: { column: 9, line: 59 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'symbol',
+
+ range: [913, 919],
+ loc: {
+ start: { column: 2, line: 60 },
+ end: { column: 8, line: 60 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [919, 920],
+ loc: {
+ start: { column: 8, line: 60 },
+ end: { column: 9, line: 60 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'type',
+
+ range: [923, 927],
+ loc: {
+ start: { column: 2, line: 61 },
+ end: { column: 6, line: 61 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [927, 928],
+ loc: {
+ start: { column: 6, line: 61 },
+ end: { column: 7, line: 61 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'undefined',
+
+ range: [931, 940],
+ loc: {
+ start: { column: 2, line: 62 },
+ end: { column: 11, line: 62 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [940, 941],
+ loc: {
+ start: { column: 11, line: 62 },
+ end: { column: 12, line: 62 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'unique',
+
+ range: [944, 950],
+ loc: {
+ start: { column: 2, line: 63 },
+ end: { column: 8, line: 63 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [950, 951],
+ loc: {
+ start: { column: 8, line: 63 },
+ end: { column: 9, line: 63 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'unknown',
+
+ range: [954, 961],
+ loc: {
+ start: { column: 2, line: 64 },
+ end: { column: 9, line: 64 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [961, 962],
+ loc: {
+ start: { column: 9, line: 64 },
+ end: { column: 10, line: 64 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'from',
+
+ range: [965, 969],
+ loc: {
+ start: { column: 2, line: 65 },
+ end: { column: 6, line: 65 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [969, 970],
+ loc: {
+ start: { column: 6, line: 65 },
+ end: { column: 7, line: 65 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'global',
+
+ range: [973, 979],
+ loc: {
+ start: { column: 2, line: 66 },
+ end: { column: 8, line: 66 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [979, 980],
+ loc: {
+ start: { column: 8, line: 66 },
+ end: { column: 9, line: 66 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'bigint',
+
+ range: [983, 989],
+ loc: {
+ start: { column: 2, line: 67 },
+ end: { column: 8, line: 67 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [989, 990],
+ loc: {
+ start: { column: 8, line: 67 },
+ end: { column: 9, line: 67 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'of',
+
+ range: [993, 995],
+ loc: {
+ start: { column: 2, line: 68 },
+ end: { column: 4, line: 68 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ',',
+
+ range: [995, 996],
+ loc: {
+ start: { column: 4, line: 68 },
+ end: { column: 5, line: 68 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '}',
+
+ range: [997, 998],
+ loc: {
+ start: { column: 0, line: 69 },
+ end: { column: 1, line: 69 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'from',
+
+ range: [999, 1003],
+ loc: {
+ start: { column: 2, line: 69 },
+ end: { column: 6, line: 69 },
+ },
+ },
+ String {
+ type: 'String',
+ value: '\\\\'fake-module\\\\'',
+
+ range: [1004, 1017],
+ loc: {
+ start: { column: 7, line: 69 },
+ end: { column: 20, line: 69 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [1017, 1018],
+ loc: {
+ start: { column: 20, line: 69 },
+ end: { column: 21, line: 69 },
+ },
+ },
+- Keyword {
+- type: 'Keyword',
++ Identifier {
++ type: 'Identifier',
+ value: 'interface',
+
+ range: [1020, 1029],
+ loc: {
+ start: { column: 0, line: 71 },
+ end: { column: 9, line: 71 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'X',
+
+ range: [1030, 1031],
+ loc: {
+ start: { column: 10, line: 71 },
+ end: { column: 11, line: 71 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '{',
+
+ range: [1032, 1033],
+ loc: {
+ start: { column: 12, line: 71 },
+ end: { column: 13, line: 71 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '}',
+
+ range: [1033, 1034],
+ loc: {
+ start: { column: 13, line: 71 },
+ end: { column: 14, line: 71 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'class',
+
+ range: [1035, 1040],
+ loc: {
+ start: { column: 0, line: 72 },
+ end: { column: 5, line: 72 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'C',
+
+ range: [1041, 1042],
+ loc: {
+ start: { column: 6, line: 72 },
+ end: { column: 7, line: 72 },
+ },
+ },
+- Keyword {
+- type: 'Keyword',
++ Identifier {
++ type: 'Identifier',
+ value: 'implements',
+
+ range: [1043, 1053],
+ loc: {
+ start: { column: 8, line: 72 },
+ end: { column: 18, line: 72 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'X',
+
+ range: [1054, 1055],
+ loc: {
+ start: { column: 19, line: 72 },
+ end: { column: 20, line: 72 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '{',
+
+ range: [1056, 1057],
+ loc: {
+ start: { column: 21, line: 72 },
+ end: { column: 22, line: 72 },
+ },
+ },
+ Keyword {
+ type: 'Keyword',
+ value: 'static',
+
+ range: [1060, 1066],
+ loc: {
+ start: { column: 2, line: 73 },
+ end: { column: 8, line: 73 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'a',
+
+ range: [1067, 1068],
+ loc: {
+ start: { column: 9, line: 73 },
+ end: { column: 10, line: 73 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '(',
+
+ range: [1068, 1069],
+ loc: {
+ start: { column: 10, line: 73 },
+ end: { column: 11, line: 73 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ')',
+
+ range: [1069, 1070],
+ loc: {
+ start: { column: 11, line: 73 },
+ end: { column: 12, line: 73 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '{',
+
+ range: [1071, 1072],
+ loc: {
+ start: { column: 13, line: 73 },
+ end: { column: 14, line: 73 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '}',
+
+ range: [1072, 1073],
+ loc: {
+ start: { column: 14, line: 73 },
+ end: { column: 15, line: 73 },
+ },
+ },
+- Keyword {
+- type: 'Keyword',
++ Identifier {
++ type: 'Identifier',
+ value: 'private',
+
+ range: [1076, 1083],
+ loc: {
+ start: { column: 2, line: 74 },
+ end: { column: 9, line: 74 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'b',
+
+ range: [1084, 1085],
+ loc: {
+ start: { column: 10, line: 74 },
+ end: { column: 11, line: 74 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '(',
+
+ range: [1085, 1086],
+ loc: {
+ start: { column: 11, line: 74 },
+ end: { column: 12, line: 74 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ')',
+
+ range: [1086, 1087],
+ loc: {
+ start: { column: 12, line: 74 },
+ end: { column: 13, line: 74 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '{',
+
+ range: [1088, 1089],
+ loc: {
+ start: { column: 14, line: 74 },
+ end: { column: 15, line: 74 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '}',
+
+ range: [1089, 1090],
+ loc: {
+ start: { column: 15, line: 74 },
+ end: { column: 16, line: 74 },
+ },
+ },
+- Keyword {
+- type: 'Keyword',
++ Identifier {
++ type: 'Identifier',
+ value: 'public',
+
+ range: [1093, 1099],
+ loc: {
+ start: { column: 2, line: 75 },
+ end: { column: 8, line: 75 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'c',
+
+ range: [1100, 1101],
+ loc: {
+ start: { column: 9, line: 75 },
+ end: { column: 10, line: 75 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '(',
+
+ range: [1101, 1102],
+ loc: {
+ start: { column: 10, line: 75 },
+ end: { column: 11, line: 75 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ')',
+
+ range: [1102, 1103],
+ loc: {
+ start: { column: 11, line: 75 },
+ end: { column: 12, line: 75 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '{',
+
+ range: [1104, 1105],
+ loc: {
+ start: { column: 13, line: 75 },
+ end: { column: 14, line: 75 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '}',
+
+ range: [1105, 1106],
+ loc: {
+ start: { column: 14, line: 75 },
+ end: { column: 15, line: 75 },
+ },
+ },
+- Keyword {
+- type: 'Keyword',
++ Identifier {
++ type: 'Identifier',
+ value: 'protected',
+
+ range: [1109, 1118],
+ loc: {
+ start: { column: 2, line: 76 },
+ end: { column: 11, line: 76 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '*',
+
+ range: [1119, 1120],
+ loc: {
+ start: { column: 12, line: 76 },
+ end: { column: 13, line: 76 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'd',
+
+ range: [1120, 1121],
+ loc: {
+ start: { column: 13, line: 76 },
+ end: { column: 14, line: 76 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '(',
+
+ range: [1121, 1122],
+ loc: {
+ start: { column: 14, line: 76 },
+ end: { column: 15, line: 76 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ')',
+
+ range: [1122, 1123],
+ loc: {
+ start: { column: 15, line: 76 },
+ end: { column: 16, line: 76 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '{',
+
+ range: [1124, 1125],
+ loc: {
+ start: { column: 17, line: 76 },
+ end: { column: 18, line: 76 },
+ },
+ },
+- Keyword {
+- type: 'Keyword',
++ Identifier {
++ type: 'Identifier',
+ value: 'let',
+
+ range: [1130, 1133],
+ loc: {
+ start: { column: 4, line: 77 },
+ end: { column: 7, line: 77 },
+ },
+ },
+ Identifier {
+ type: 'Identifier',
+ value: 'x',
+
+ range: [1134, 1135],
+ loc: {
+ start: { column: 8, line: 77 },
+ end: { column: 9, line: 77 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '=',
+
+ range: [1136, 1137],
+ loc: {
+ start: { column: 10, line: 77 },
+ end: { column: 11, line: 77 },
+ },
+ },
+- Keyword {
+- type: 'Keyword',
++ Identifier {
++ type: 'Identifier',
+ value: 'yield',
+
+ range: [1138, 1143],
+ loc: {
+ start: { column: 12, line: 77 },
+ end: { column: 17, line: 77 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: ';',
+
+ range: [1143, 1144],
+ loc: {
+ start: { column: 17, line: 77 },
+ end: { column: 18, line: 77 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '}',
+
+ range: [1147, 1148],
+ loc: {
+ start: { column: 2, line: 78 },
+ end: { column: 3, line: 78 },
+ },
+ },
+ Punctuator {
+ type: 'Punctuator',
+ value: '}',
+
+ range: [1149, 1150],
+ loc: {
+ start: { column: 0, line: 79 },
+ end: { column: 1, line: 79 },
+ },
+ },
+ ]"
+`;
diff --git a/packages/ast-spec/src/legacy-fixtures/basics/fixtures/nested-type-arguments/fixture.ts b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/nested-type-arguments/fixture.ts
new file mode 100644
index 000000000000..90c0d3127709
--- /dev/null
+++ b/packages/ast-spec/src/legacy-fixtures/basics/fixtures/nested-type-arguments/fixture.ts
@@ -0,0 +1,3 @@
+// TODO: This fixture might be too large, and if so should be split up.
+
+var nestedArray: Array
http://example.com
7x invalid-js-identifier
- {props.title}
-
- )
-}
\ No newline at end of file
diff --git a/packages/shared-fixtures/fixtures/typescript/babylon-convergence/type-parameter-whitespace-loc.src.ts b/packages/shared-fixtures/fixtures/typescript/babylon-convergence/type-parameter-whitespace-loc.src.ts
deleted file mode 100644
index 56d367c193d4..000000000000
--- a/packages/shared-fixtures/fixtures/typescript/babylon-convergence/type-parameter-whitespace-loc.src.ts
+++ /dev/null
@@ -1 +0,0 @@
-function f< T >() {}
\ No newline at end of file
diff --git a/packages/shared-fixtures/fixtures/typescript/babylon-convergence/type-parameters.src.ts b/packages/shared-fixtures/fixtures/typescript/babylon-convergence/type-parameters.src.ts
deleted file mode 100644
index 526137f30906..000000000000
--- a/packages/shared-fixtures/fixtures/typescript/babylon-convergence/type-parameters.src.ts
+++ /dev/null
@@ -1 +0,0 @@
-function f {
-
-}
diff --git a/packages/shared-fixtures/fixtures/typescript/basics/class-with-implements-generic.src.ts b/packages/shared-fixtures/fixtures/typescript/basics/class-with-implements-generic.src.ts
deleted file mode 100644
index b18efb98d086..000000000000
--- a/packages/shared-fixtures/fixtures/typescript/basics/class-with-implements-generic.src.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-class Foo implements Bar {
-
-}
diff --git a/packages/shared-fixtures/fixtures/typescript/basics/class-with-implements.src.ts b/packages/shared-fixtures/fixtures/typescript/basics/class-with-implements.src.ts
deleted file mode 100644
index 321a2ea746ae..000000000000
--- a/packages/shared-fixtures/fixtures/typescript/basics/class-with-implements.src.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-class Foo implements Bar {
-
-}
diff --git a/packages/shared-fixtures/fixtures/typescript/basics/class-with-method.src.ts b/packages/shared-fixtures/fixtures/typescript/basics/class-with-method.src.ts
deleted file mode 100644
index a84bffcd4946..000000000000
--- a/packages/shared-fixtures/fixtures/typescript/basics/class-with-method.src.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-class C {
- foo(): number { }
- bar = intrinsic;
-type Lowercase = intrinsic;
-type Capitalize = intrinsic;
-type Uncapitalize = intrinsic;
diff --git a/packages/shared-fixtures/fixtures/typescript/basics/keyof-operator.src.ts b/packages/shared-fixtures/fixtures/typescript/basics/keyof-operator.src.ts
deleted file mode 100644
index d4cf1df7a5f0..000000000000
--- a/packages/shared-fixtures/fixtures/typescript/basics/keyof-operator.src.ts
+++ /dev/null
@@ -1 +0,0 @@
-type x = keyof foo;
diff --git a/packages/shared-fixtures/fixtures/typescript/basics/keyword-variables.src.ts b/packages/shared-fixtures/fixtures/typescript/basics/keyword-variables.src.ts
deleted file mode 100644
index ed934d7df080..000000000000
--- a/packages/shared-fixtures/fixtures/typescript/basics/keyword-variables.src.ts
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- const abstract = 1;
- const as = 1;
- const asserts = 1;
- const any = 1;
- const async = 1;
- const await = 1;
- const boolean = 1;
- const constructor = 1;
- const declare = 1;
- const get = 1;
- const infer = 1;
- const is = 1;
- const keyof = 1;
- const module = 1;
- const namespace = 1;
- const never = 1;
- const readonly = 1;
- const require = 1;
- const number = 1;
- const object = 1;
- const set = 1;
- const string = 1;
- const symbol = 1;
- const type = 1;
- const undefined = 1;
- const unique = 1;
- const unknown = 1;
- const from = 1;
- const global = 1;
- const bigint = 1;
- const of = 1;
-}
-
-import {
- abstract,
- as,
- asserts,
- any,
- async,
- await,
- boolean,
- constructor,
- declare,
- get,
- infer,
- is,
- keyof,
- module,
- namespace,
- never,
- readonly,
- require,
- number,
- object,
- set,
- string,
- symbol,
- type,
- undefined,
- unique,
- unknown,
- from,
- global,
- bigint,
- of,
-} from 'fake-module';
-
-interface X {}
-class C implements X {
- static a() {}
- private b() {}
- public c() {}
- protected *d() {
- let x = yield;
- }
-}
diff --git a/packages/shared-fixtures/fixtures/typescript/basics/nested-type-arguments.src.ts b/packages/shared-fixtures/fixtures/typescript/basics/nested-type-arguments.src.ts
deleted file mode 100644
index 1e9f54230af3..000000000000
--- a/packages/shared-fixtures/fixtures/typescript/basics/nested-type-arguments.src.ts
+++ /dev/null
@@ -1 +0,0 @@
-var nestedArray: Array