From 0b491e86baf556e27cdaac26c470cbf01de8549f Mon Sep 17 00:00:00 2001 From: Brad Zacher Date: Sat, 21 Aug 2021 11:35:35 -0700 Subject: [PATCH] WIP --- .../ExportAllDeclaration/fixtures/named/fixture.ts | 1 + .../ExportAllDeclaration/fixtures/unnamed/fixture.ts | 1 + .../ast-spec/src/declaration/ExportAllDeclaration/spec.ts | 2 ++ .../fixtures/exportAnonymousClass/fixture.ts | 1 + .../fixtures/exportAnonymousFunction/fixture.ts | 1 + .../fixtures/exportArrowFunctionExpression/fixture.ts | 1 + .../fixtures/exportClass/fixture.ts | 1 + .../fixtures/exportClassExpression/fixture.ts | 1 + .../fixtures/exportFunction/fixture.ts | 1 + .../fixtures/exportInterface/fixture.ts | 1 + .../fixtures/exportVariable/fixture.ts | 2 ++ .../src/declaration/ExportDefaultDeclaration/spec.ts | 6 +++++- 12 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/named/fixture.ts create mode 100644 packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/unnamed/fixture.ts create mode 100644 packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportAnonymousClass/fixture.ts create mode 100644 packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportAnonymousFunction/fixture.ts create mode 100644 packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportArrowFunctionExpression/fixture.ts create mode 100644 packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportClass/fixture.ts create mode 100644 packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportClassExpression/fixture.ts create mode 100644 packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportFunction/fixture.ts create mode 100644 packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportInterface/fixture.ts create mode 100644 packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportVariable/fixture.ts diff --git a/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/named/fixture.ts b/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/named/fixture.ts new file mode 100644 index 000000000000..fca392829b84 --- /dev/null +++ b/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/named/fixture.ts @@ -0,0 +1 @@ +export * as mod from 'module'; diff --git a/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/unnamed/fixture.ts b/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/unnamed/fixture.ts new file mode 100644 index 000000000000..86a4838f7b9b --- /dev/null +++ b/packages/ast-spec/src/declaration/ExportAllDeclaration/fixtures/unnamed/fixture.ts @@ -0,0 +1 @@ +export * from 'my-module'; diff --git a/packages/ast-spec/src/declaration/ExportAllDeclaration/spec.ts b/packages/ast-spec/src/declaration/ExportAllDeclaration/spec.ts index e9657a7536fa..dd90452ed981 100644 --- a/packages/ast-spec/src/declaration/ExportAllDeclaration/spec.ts +++ b/packages/ast-spec/src/declaration/ExportAllDeclaration/spec.ts @@ -5,6 +5,8 @@ import type { Expression } from '../../unions/Expression'; export interface ExportAllDeclaration extends BaseNode { type: AST_NODE_TYPES.ExportAllDeclaration; + // this should only be a non-null StringLiteral, but TS's error permissiveness allows Expression + // we should address this when we add parser errors. source: Expression | null; exportKind: 'type' | 'value'; exported: Identifier | null; diff --git a/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportAnonymousClass/fixture.ts b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportAnonymousClass/fixture.ts new file mode 100644 index 000000000000..a6e68e983892 --- /dev/null +++ b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportAnonymousClass/fixture.ts @@ -0,0 +1 @@ +export default class {} diff --git a/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportAnonymousFunction/fixture.ts b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportAnonymousFunction/fixture.ts new file mode 100644 index 000000000000..ea9b101e1c22 --- /dev/null +++ b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportAnonymousFunction/fixture.ts @@ -0,0 +1 @@ +export default function () {} diff --git a/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportArrowFunctionExpression/fixture.ts b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportArrowFunctionExpression/fixture.ts new file mode 100644 index 000000000000..2d1ec238274a --- /dev/null +++ b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportArrowFunctionExpression/fixture.ts @@ -0,0 +1 @@ +export default () => {}; diff --git a/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportClass/fixture.ts b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportClass/fixture.ts new file mode 100644 index 000000000000..7804111002d7 --- /dev/null +++ b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportClass/fixture.ts @@ -0,0 +1 @@ +export default class Foo {} diff --git a/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportClassExpression/fixture.ts b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportClassExpression/fixture.ts new file mode 100644 index 000000000000..caaf4f896e88 --- /dev/null +++ b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportClassExpression/fixture.ts @@ -0,0 +1 @@ +export default (class Foo {}); diff --git a/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportFunction/fixture.ts b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportFunction/fixture.ts new file mode 100644 index 000000000000..386baca17315 --- /dev/null +++ b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportFunction/fixture.ts @@ -0,0 +1 @@ +export default function foo() {} diff --git a/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportInterface/fixture.ts b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportInterface/fixture.ts new file mode 100644 index 000000000000..4c36019eea28 --- /dev/null +++ b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportInterface/fixture.ts @@ -0,0 +1 @@ +export default interface Foo {} diff --git a/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportVariable/fixture.ts b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportVariable/fixture.ts new file mode 100644 index 000000000000..f3d181a85949 --- /dev/null +++ b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/fixtures/exportVariable/fixture.ts @@ -0,0 +1,2 @@ +const x = 1; +export default x; diff --git a/packages/ast-spec/src/declaration/ExportDefaultDeclaration/spec.ts b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/spec.ts index f34b6e44668f..7c110ac62073 100644 --- a/packages/ast-spec/src/declaration/ExportDefaultDeclaration/spec.ts +++ b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/spec.ts @@ -5,6 +5,10 @@ import type { Expression } from '../../unions/Expression'; export interface ExportDefaultDeclaration extends BaseNode { type: AST_NODE_TYPES.ExportDefaultDeclaration; - declaration: ExportDeclaration | Expression; + declaration: + | // TODO - the following are disallowed syntactically, but allowed by TS error recovery: + // TSEnumDeclaration, TSModuleDeclaration, TSTypeAliasDeclaration, VariableDeclaration + ExportDeclaration + | Expression; exportKind: 'type' | 'value'; }