From a2bacbb03029567d70f38914cae4ea6c75f976d1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= <biwanczuk@gmail.com>
Date: Mon, 23 Dec 2024 09:10:39 +0100
Subject: [PATCH] remove integration tests for now, we have unit tests for that

---
 tests/specs/lint/plugins_ast/__test__.jsonc   | 39 ---------
 .../lint/plugins_ast/declarations/log.out     |  2 -
 .../lint/plugins_ast/declarations/plugin.ts   | 20 -----
 .../lint/plugins_ast/declarations/source.ts   | 35 --------
 .../lint/plugins_ast/expressions/log.out      | 27 -------
 .../lint/plugins_ast/expressions/plugin.ts    | 17 ----
 .../lint/plugins_ast/expressions/source.ts    | 55 -------------
 tests/specs/lint/plugins_ast/jsx/log.out      |  2 -
 tests/specs/lint/plugins_ast/jsx/plugin.ts    | 56 -------------
 tests/specs/lint/plugins_ast/jsx/source.tsx   | 11 ---
 tests/specs/lint/plugins_ast/literals/log.out | 44 -----------
 .../specs/lint/plugins_ast/literals/plugin.ts | 35 --------
 .../specs/lint/plugins_ast/literals/source.ts | 39 ---------
 tests/specs/lint/plugins_ast/program/log.out  |  1 -
 .../specs/lint/plugins_ast/program/plugin.ts  | 14 ----
 .../specs/lint/plugins_ast/program/source.ts  |  0
 .../lint/plugins_ast/statements/deno.json     |  8 --
 .../specs/lint/plugins_ast/statements/log.out |  2 -
 .../lint/plugins_ast/statements/plugin.ts     | 20 -----
 .../lint/plugins_ast/statements/source.ts     | 79 -------------------
 tests/specs/lint/plugins_ast/ts/log.out       | 27 -------
 tests/specs/lint/plugins_ast/ts/plugin.ts     | 17 ----
 tests/specs/lint/plugins_ast/ts/source.ts     | 62 ---------------
 23 files changed, 612 deletions(-)
 delete mode 100644 tests/specs/lint/plugins_ast/__test__.jsonc
 delete mode 100644 tests/specs/lint/plugins_ast/declarations/log.out
 delete mode 100644 tests/specs/lint/plugins_ast/declarations/plugin.ts
 delete mode 100644 tests/specs/lint/plugins_ast/declarations/source.ts
 delete mode 100644 tests/specs/lint/plugins_ast/expressions/log.out
 delete mode 100644 tests/specs/lint/plugins_ast/expressions/plugin.ts
 delete mode 100644 tests/specs/lint/plugins_ast/expressions/source.ts
 delete mode 100644 tests/specs/lint/plugins_ast/jsx/log.out
 delete mode 100644 tests/specs/lint/plugins_ast/jsx/plugin.ts
 delete mode 100644 tests/specs/lint/plugins_ast/jsx/source.tsx
 delete mode 100644 tests/specs/lint/plugins_ast/literals/log.out
 delete mode 100644 tests/specs/lint/plugins_ast/literals/plugin.ts
 delete mode 100644 tests/specs/lint/plugins_ast/literals/source.ts
 delete mode 100644 tests/specs/lint/plugins_ast/program/log.out
 delete mode 100644 tests/specs/lint/plugins_ast/program/plugin.ts
 delete mode 100644 tests/specs/lint/plugins_ast/program/source.ts
 delete mode 100644 tests/specs/lint/plugins_ast/statements/deno.json
 delete mode 100644 tests/specs/lint/plugins_ast/statements/log.out
 delete mode 100644 tests/specs/lint/plugins_ast/statements/plugin.ts
 delete mode 100644 tests/specs/lint/plugins_ast/statements/source.ts
 delete mode 100644 tests/specs/lint/plugins_ast/ts/log.out
 delete mode 100644 tests/specs/lint/plugins_ast/ts/plugin.ts
 delete mode 100644 tests/specs/lint/plugins_ast/ts/source.ts

diff --git a/tests/specs/lint/plugins_ast/__test__.jsonc b/tests/specs/lint/plugins_ast/__test__.jsonc
deleted file mode 100644
index c48405d8a0..0000000000
--- a/tests/specs/lint/plugins_ast/__test__.jsonc
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-  "tests": {
-    "program": {
-      "cwd": "./program",
-      "args": "lint --plugins=./plugin.ts source.ts",
-      "output": "program/log.out"
-    },
-    "declarations": {
-      "cwd": "./declarations",
-      "args": "lint --plugins=./plugin.ts source.ts",
-      "output": "declarations/log.out"
-    },
-    "statements": {
-      "cwd": "./statements",
-      "args": "lint --config=./statements/deno.json source.ts",
-      "output": "statements/log.out"
-    },
-    "expressions": {
-      "cwd": "./expressions",
-      "args": "lint --plugins=./plugin.ts source.ts",
-      "output": "expressions/log.out"
-    },
-    "literals": {
-      "cwd": "./literals",
-      "args": "lint --plugins=./plugin.ts source.ts",
-      "output": "literals/log.out"
-    },
-    "jsx": {
-      "cwd": "./jsx",
-      "args": "lint --plugins=./plugin.ts source.tsx",
-      "output": "jsx/log.out"
-    },
-    "ts": {
-      "cwd": "./ts",
-      "args": "lint --plugins=./plugin.ts source.tsx",
-      "output": "ts/log.out"
-    }
-  }
-}
diff --git a/tests/specs/lint/plugins_ast/declarations/log.out b/tests/specs/lint/plugins_ast/declarations/log.out
deleted file mode 100644
index 854b280891..0000000000
--- a/tests/specs/lint/plugins_ast/declarations/log.out
+++ /dev/null
@@ -1,2 +0,0 @@
-BreakStatement { type: "BreakStatement", range: [ 19, 25 ] }
-BreakStatement { type: "BreakStatement", range: [ 54, 66 ] }
diff --git a/tests/specs/lint/plugins_ast/declarations/plugin.ts b/tests/specs/lint/plugins_ast/declarations/plugin.ts
deleted file mode 100644
index 425dc0c380..0000000000
--- a/tests/specs/lint/plugins_ast/declarations/plugin.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-export default {
-  name: "ast_plugin",
-  rules: {
-    ast: {
-      create() {
-        return {
-          BreakStatement(node) {
-            console.log(node);
-          },
-          ContinueStatement(node) {
-            console.log(node);
-          },
-          ReturnStatement(node) {
-            console.log(node);
-          },
-        };
-      },
-    },
-  },
-} satisfies Deno.LintPlugin;
diff --git a/tests/specs/lint/plugins_ast/declarations/source.ts b/tests/specs/lint/plugins_ast/declarations/source.ts
deleted file mode 100644
index 695934482e..0000000000
--- a/tests/specs/lint/plugins_ast/declarations/source.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-const a1;
-const a2 = 1;
-const a3, b3;
-let a4 = 1;
-var a4 = 1;
-
-function foo1() {}
-function foo2(a, b = 2) {}
-function foo3(a, b?: number = 2): void {}
-function foo4(a, ...rest: any[]) {}
-function foo5({ a = 2 }) {}
-function foo6([a, b]) {}
-function foo7<T, U>(a: T, b: U) {}
-
-async function foo8() {}
-async function* foo9() {
-  yield 2;
-}
-
-export const e = 2;
-export let e2 = 2;
-export function e3() {}
-export default () => {};
-
-export * from "./foo.ts";
-
-import * as imp1 from "./foo.ts";
-import imp2 from "./foo.ts";
-import { imp3, imp4 as imp5 } from "./foo.ts";
-import json from "./json.json" with { type: "json" };
-
-// Patterns
-function foo10([a, b]) {}
-function foo11({ a }) {}
-function foo11(a = 3) {}
diff --git a/tests/specs/lint/plugins_ast/expressions/log.out b/tests/specs/lint/plugins_ast/expressions/log.out
deleted file mode 100644
index b88c1a48e9..0000000000
--- a/tests/specs/lint/plugins_ast/expressions/log.out
+++ /dev/null
@@ -1,27 +0,0 @@
-CallExpression {
-  type: "CallExpression",
-  range: [ 9, 14 ],
-  optional: false
-}
-CallExpression {
-  type: "CallExpression",
-  range: [ 16, 25 ],
-  optional: false
-}
-CallExpression {
-  type: "CallExpression",
-  range: [ 27, 41 ],
-  optional: false
-}
-MemberExpression {
-  type: "MemberExpression",
-  range: [ 83, 86 ],
-  optional: false,
-  computed: false
-}
-MemberExpression {
-  type: "MemberExpression",
-  range: [ 88, 94 ],
-  optional: false,
-  computed: true
-}
\ No newline at end of file
diff --git a/tests/specs/lint/plugins_ast/expressions/plugin.ts b/tests/specs/lint/plugins_ast/expressions/plugin.ts
deleted file mode 100644
index 12305e9d98..0000000000
--- a/tests/specs/lint/plugins_ast/expressions/plugin.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-export default {
-  name: "ast_plugin",
-  rules: {
-    ast: {
-      create() {
-        return {
-          CallExpression(node) {
-            console.log(node);
-          },
-          MemberExpression(node) {
-            console.log(node);
-          },
-        };
-      },
-    },
-  },
-} satisfies Deno.LintPlugin;
diff --git a/tests/specs/lint/plugins_ast/expressions/source.ts b/tests/specs/lint/plugins_ast/expressions/source.ts
deleted file mode 100644
index 2416317cbe..0000000000
--- a/tests/specs/lint/plugins_ast/expressions/source.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-// Call
-foo();
-foo(1, 2);
-foo(1, ...bar);
-foo(1, a = 2);
-// FIXME foo?.(1);
-
-// MemberExpression
-a.b;
-a["b"];
-
-// BinaryExpression
-1 == 1;
-1 != 1;
-1 === 1;
-1 !== 1;
-1 < 2;
-1 <= 2;
-1 > 0;
-1 >= 0;
-1 << 1;
-1 >> 1;
-1 >>> 1;
-1 + 1;
-1 - 1;
-1 * 1;
-1 / 1;
-1 % 1;
-1 | 1;
-1 ^ 1;
-1 & 1;
-"foo" in {};
-a instanceof Object;
-1 ** 2;
-
-// LogicalExpression
-a && b;
-a || b;
-a ??= b;
-
-// UnaryExpression
--1;
-+1;
-!1;
-~1;
-typeof 1;
-void 0;
-delete a.b;
-
-// ConditionalExpression
-a ? b : c;
-
-// UpdateExpression
-++a;
-a++;
diff --git a/tests/specs/lint/plugins_ast/jsx/log.out b/tests/specs/lint/plugins_ast/jsx/log.out
deleted file mode 100644
index 854b280891..0000000000
--- a/tests/specs/lint/plugins_ast/jsx/log.out
+++ /dev/null
@@ -1,2 +0,0 @@
-BreakStatement { type: "BreakStatement", range: [ 19, 25 ] }
-BreakStatement { type: "BreakStatement", range: [ 54, 66 ] }
diff --git a/tests/specs/lint/plugins_ast/jsx/plugin.ts b/tests/specs/lint/plugins_ast/jsx/plugin.ts
deleted file mode 100644
index 87deab0a1e..0000000000
--- a/tests/specs/lint/plugins_ast/jsx/plugin.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-export default {
-  name: "ast_plugin",
-  rules: {
-    ast: {
-      create() {
-        return {
-          JSXAttribute(node) {
-            console.log(node);
-          },
-          JSXClosingElement(node) {
-            console.log(node);
-          },
-          JSXClosingFragment(node) {
-            console.log(node);
-          },
-          JSXExpressionContainer(node) {
-            console.log(node);
-          },
-          JSXElement(node) {
-            console.log(node);
-          },
-          JSXFragment(node) {
-            console.log(node);
-          },
-          JSXIdentifier(node) {
-            console.log(node);
-          },
-          JSXMemberExpression(node) {
-            console.log(node);
-          },
-          JSXNamespacedName(node) {
-            console.log(node);
-          },
-          JSXOpeningElement(node) {
-            console.log(node);
-          },
-          JSXOpeningFragment(node) {
-            console.log(node);
-          },
-          JSXSpreadAttribute(node) {
-            console.log(node);
-          },
-
-          // Ignored: This is part of the JSX spec but unused. No parser
-          // properly supports spread children.
-          // JSXSpreadChild(node) {
-          //   console.log(node);
-          // },
-          JSXText(node) {
-            console.log(node);
-          },
-        };
-      },
-    },
-  },
-} satisfies Deno.LintPlugin;
diff --git a/tests/specs/lint/plugins_ast/jsx/source.tsx b/tests/specs/lint/plugins_ast/jsx/source.tsx
deleted file mode 100644
index c7ff734298..0000000000
--- a/tests/specs/lint/plugins_ast/jsx/source.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-// @jsx preserve
-
-let a = <></>;
-a = <>foo</>;
-a = <div />;
-a = <div foo bar="baz" baz={1} foo-bar={fooBar} {...fooBar} />;
-a = <div>foo</div>;
-a = <Foo foo bar="baz" baz={1} foo-bar={fooBar} {...fooBar} />;
-a = <Foo>foo</Foo>;
-a = <Foo.Bar />;
-a = <Foo.Bar>foo</Foo.Bar>;
diff --git a/tests/specs/lint/plugins_ast/literals/log.out b/tests/specs/lint/plugins_ast/literals/log.out
deleted file mode 100644
index ad1fc644a6..0000000000
--- a/tests/specs/lint/plugins_ast/literals/log.out
+++ /dev/null
@@ -1,44 +0,0 @@
-StringLiteral {
-  type: "StringLiteral",
-  range: [ 1, 8 ],
-  value: "foo\n"
-}
-StringLiteral {
-  type: "StringLiteral",
-  range: [ 10, 16 ],
-  value: 'bar"'
-}
-NumericLiteral { type: "NumericLiteral", range: [ 18, 19 ], value: 2 }
-NumericLiteral {
-  type: "NumericLiteral",
-  range: [ 21, 24 ],
-  value: 2.3
-}
-NumericLiteral { type: "NumericLiteral", range: [ 26, 31 ], value: 0 }
-BooleanLiteral {
-  type: "BooleanLiteral",
-  range: [ 33, 37 ],
-  value: true
-}
-BooleanLiteral {
-  type: "BooleanLiteral",
-  range: [ 39, 44 ],
-  value: false
-}
-NullLiteral { type: "NullLiteral", range: [ 46, 50 ], value: null }
-RegExpLiteral {
-  type: "RegExpLiteral",
-  range: [ 52, 56 ],
-  pattern: "a",
-  flags: "g"
-}
-RegExpLiteral {
-  type: "RegExpLiteral",
-  range: [ 58, 65 ],
-  pattern: "[/g]",
-  flags: "m"
-}
-BigIntLiteral { type: "BigIntLiteral", range: [ 67, 69 ], value: 1n }
-ArrayExpression { type: "ArrayExpression", range: [ 82, 91 ] }
-ArrayExpression { type: "ArrayExpression", range: [ 93, 104 ] }
-ArrayExpression { type: "ArrayExpression", range: [ 106, 114 ] }
\ No newline at end of file
diff --git a/tests/specs/lint/plugins_ast/literals/plugin.ts b/tests/specs/lint/plugins_ast/literals/plugin.ts
deleted file mode 100644
index 32d4c44271..0000000000
--- a/tests/specs/lint/plugins_ast/literals/plugin.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-export default {
-  name: "ast_plugin",
-  rules: {
-    ast: {
-      create() {
-        return {
-          ArrayExpression(node) {
-            console.log(node);
-          },
-          BooleanLiteral(node) {
-            console.log(node);
-          },
-          BigIntLiteral(node) {
-            console.log(node);
-          },
-          NullLiteral(node) {
-            console.log(node);
-          },
-          NumericLiteral(node) {
-            console.log(node);
-          },
-          ObjectExpression(node) {
-            console.log(node);
-          },
-          RegExpLiteral(node) {
-            console.log(node);
-          },
-          StringLiteral(node) {
-            console.log(node);
-          },
-        };
-      },
-    },
-  },
-} satisfies Deno.LintPlugin;
diff --git a/tests/specs/lint/plugins_ast/literals/source.ts b/tests/specs/lint/plugins_ast/literals/source.ts
deleted file mode 100644
index 7983265bbb..0000000000
--- a/tests/specs/lint/plugins_ast/literals/source.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-"foo\n";
-'bar"';
-2;
-2.3;
-0b000;
-true;
-false;
-null;
-/a/g;
-/[/g]/m;
-1n;
-
-// arrays
-[1, 2, 3];
-[1, ...foo];
-[1, , 3];
-
-// objects
-a = {};
-a = { foo };
-a = { foo: 1 };
-a = { ...foo };
-a = { ["foo\n"]: 1, 1: 2, "baz": 3 };
-a = {
-  get foo() {
-    return 1;
-  },
-  // FIXME
-  // set foo(a) {
-  //   2;
-  // },
-  // bar() {},
-  // async barAsync() {},
-  // *barGen() {},
-  // async *barAsyncGen() {},
-};
-
-a = `foo`;
-a = `foo${" "}bar`;
diff --git a/tests/specs/lint/plugins_ast/program/log.out b/tests/specs/lint/plugins_ast/program/log.out
deleted file mode 100644
index fb49a31d08..0000000000
--- a/tests/specs/lint/plugins_ast/program/log.out
+++ /dev/null
@@ -1 +0,0 @@
-Program { type: "Program", range: [ 1, 1 ], sourceType: "script" }
\ No newline at end of file
diff --git a/tests/specs/lint/plugins_ast/program/plugin.ts b/tests/specs/lint/plugins_ast/program/plugin.ts
deleted file mode 100644
index f3d6b85e88..0000000000
--- a/tests/specs/lint/plugins_ast/program/plugin.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-export default {
-  name: "ast_plugin",
-  rules: {
-    ast: {
-      create() {
-        return {
-          Program(node) {
-            console.log(node);
-          },
-        };
-      },
-    },
-  },
-} satisfies Deno.LintPlugin;
diff --git a/tests/specs/lint/plugins_ast/program/source.ts b/tests/specs/lint/plugins_ast/program/source.ts
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/tests/specs/lint/plugins_ast/statements/deno.json b/tests/specs/lint/plugins_ast/statements/deno.json
deleted file mode 100644
index 45c17b10b7..0000000000
--- a/tests/specs/lint/plugins_ast/statements/deno.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "lint": {
-    "plugins": ["./plugin.ts"],
-    "rules": {
-      "exclude": ["no-debugger"]
-    }
-  }
-}
diff --git a/tests/specs/lint/plugins_ast/statements/log.out b/tests/specs/lint/plugins_ast/statements/log.out
deleted file mode 100644
index 854b280891..0000000000
--- a/tests/specs/lint/plugins_ast/statements/log.out
+++ /dev/null
@@ -1,2 +0,0 @@
-BreakStatement { type: "BreakStatement", range: [ 19, 25 ] }
-BreakStatement { type: "BreakStatement", range: [ 54, 66 ] }
diff --git a/tests/specs/lint/plugins_ast/statements/plugin.ts b/tests/specs/lint/plugins_ast/statements/plugin.ts
deleted file mode 100644
index 425dc0c380..0000000000
--- a/tests/specs/lint/plugins_ast/statements/plugin.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-export default {
-  name: "ast_plugin",
-  rules: {
-    ast: {
-      create() {
-        return {
-          BreakStatement(node) {
-            console.log(node);
-          },
-          ContinueStatement(node) {
-            console.log(node);
-          },
-          ReturnStatement(node) {
-            console.log(node);
-          },
-        };
-      },
-    },
-  },
-} satisfies Deno.LintPlugin;
diff --git a/tests/specs/lint/plugins_ast/statements/source.ts b/tests/specs/lint/plugins_ast/statements/source.ts
deleted file mode 100644
index 0575645c5c..0000000000
--- a/tests/specs/lint/plugins_ast/statements/source.ts
+++ /dev/null
@@ -1,79 +0,0 @@
-// Break
-while (false) {
-  break;
-}
-
-outer: while (false) {
-  break outer;
-}
-
-// Continue
-while (false) {
-  continue;
-}
-
-outer: while (false) {
-  continue outer;
-}
-
-do {
-} while (false);
-
-// Debugger
-debugger;
-
-// Return
-(() => {
-  return;
-});
-(() => {
-  return 1;
-});
-
-// For loops
-for (const a in b) {
-  foo;
-}
-for (a in b) foo;
-for (const a of b) foo;
-for (const [a, b] of c) foo;
-for (const { a, b } of c) foo;
-for await (const a of b) foo;
-for (let i = 0; i < 10; i++) {
-  foo;
-}
-
-switch (foo) {
-  case 1:
-  case 2:
-    break;
-  default:
-    foo;
-}
-
-try {
-} catch (e) {
-} finally {
-}
-
-try {
-} finally {
-}
-
-try {
-} catch {
-}
-
-try {
-} catch (e) {
-}
-
-if (false) {
-  1;
-}
-
-if (false) {
-  1;
-} else {
-  2;
-}
diff --git a/tests/specs/lint/plugins_ast/ts/log.out b/tests/specs/lint/plugins_ast/ts/log.out
deleted file mode 100644
index b88c1a48e9..0000000000
--- a/tests/specs/lint/plugins_ast/ts/log.out
+++ /dev/null
@@ -1,27 +0,0 @@
-CallExpression {
-  type: "CallExpression",
-  range: [ 9, 14 ],
-  optional: false
-}
-CallExpression {
-  type: "CallExpression",
-  range: [ 16, 25 ],
-  optional: false
-}
-CallExpression {
-  type: "CallExpression",
-  range: [ 27, 41 ],
-  optional: false
-}
-MemberExpression {
-  type: "MemberExpression",
-  range: [ 83, 86 ],
-  optional: false,
-  computed: false
-}
-MemberExpression {
-  type: "MemberExpression",
-  range: [ 88, 94 ],
-  optional: false,
-  computed: true
-}
\ No newline at end of file
diff --git a/tests/specs/lint/plugins_ast/ts/plugin.ts b/tests/specs/lint/plugins_ast/ts/plugin.ts
deleted file mode 100644
index 12305e9d98..0000000000
--- a/tests/specs/lint/plugins_ast/ts/plugin.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-export default {
-  name: "ast_plugin",
-  rules: {
-    ast: {
-      create() {
-        return {
-          CallExpression(node) {
-            console.log(node);
-          },
-          MemberExpression(node) {
-            console.log(node);
-          },
-        };
-      },
-    },
-  },
-} satisfies Deno.LintPlugin;
diff --git a/tests/specs/lint/plugins_ast/ts/source.ts b/tests/specs/lint/plugins_ast/ts/source.ts
deleted file mode 100644
index 200c0df31e..0000000000
--- a/tests/specs/lint/plugins_ast/ts/source.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-let a: [number, foo: number] = [1, 2];
-
-type A1 = boolean;
-type A2 = any;
-type A3 = unknown;
-type A4 = object;
-type A5 = bigint;
-type A6 = symbol;
-type A7 = void;
-type A8 = undefined;
-type A9 = null;
-type A10 = never;
-type A11 = intrinsic;
-
-class Foo {
-  foo(): this {
-    return this;
-  }
-}
-
-interface Foo1<T> {
-  foo: T;
-  bar?(a: number): void;
-  foo2: (...arg: any[]) => void;
-}
-interface Foo2 {}
-interface Foo3 extends Foo1<number>, Foo2 {}
-type B<T> = Foo1<T>;
-
-interface Animal {
-  live(): void;
-}
-interface Dog extends Animal {
-  woof(): void;
-}
-
-type Example1 = Dog extends Animal ? number : string;
-type Both = Animal | Dog;
-type NameOrId<T extends number | string> = T extends number ? IdLabel
-  : NameLabel;
-type MessageOf<T> = T extends { message: unknown } ? T["message"] : never;
-type Flatten<T> = T extends any[] ? T[number] : T;
-type Flatten<Type> = Type extends Array<infer Item> ? Item : Type;
-type GetReturnType<Type> = Type extends (...args: never[]) => infer Return
-  ? Return
-  : never;
-
-type Num = GetReturnType<() => number>;
-
-interface Lit<T extends string> {
-  foo: "foo";
-  b: true;
-  b2: false;
-  n: 1;
-  r: `foo${T}`;
-}
-
-type U = A | B & C;
-
-type CreateMutable<Type> = {
-  -readonly [Property in keyof Type]: Type[Property];
-};