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 00000000000..fca392829b8 --- /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 00000000000..86a4838f7b9 --- /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 e6700070b59..ab4be518ebd 100644 --- a/packages/ast-spec/src/declaration/ExportAllDeclaration/spec.ts +++ b/packages/ast-spec/src/declaration/ExportAllDeclaration/spec.ts @@ -6,6 +6,8 @@ import type { ExportKind } from '../ExportAndImportKind'; 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: ExportKind; 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 00000000000..a6e68e98389 --- /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 00000000000..ea9b101e1c2 --- /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 00000000000..2d1ec238274 --- /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 00000000000..7804111002d --- /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 00000000000..caaf4f896e8 --- /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 00000000000..386baca1731 --- /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 00000000000..4c36019eea2 --- /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 00000000000..f3d181a8594 --- /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 492d0981b8c..c8249e1b7f3 100644 --- a/packages/ast-spec/src/declaration/ExportDefaultDeclaration/spec.ts +++ b/packages/ast-spec/src/declaration/ExportDefaultDeclaration/spec.ts @@ -6,6 +6,10 @@ import type { ExportKind } from '../ExportAndImportKind'; 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: ExportKind; }