diff --git a/__tests__/fixtures/ts-syntax/reserved-word-alias.ts b/__tests__/fixtures/ts-syntax/reserved-word-alias.ts new file mode 100644 index 000000000..834cebecd --- /dev/null +++ b/__tests__/fixtures/ts-syntax/reserved-word-alias.ts @@ -0,0 +1,7 @@ +// Reserved words as module export/import names (ES2015 IdentifierName). The current +// grammar parses these; SegaraRai/tree-sitter-typescript@82b3609 does not (Effect, Zod). +import { null as n, void as v } from "./mod"; +const a = 1; +export { a as null, a as delete, n as function, v as void }; +export { null as x, a as default } from "./mod"; +export * as delete from "./mod"; diff --git a/__tests__/fixtures/ts-syntax/reserved-word-alias.tsx b/__tests__/fixtures/ts-syntax/reserved-word-alias.tsx new file mode 100644 index 000000000..834cebecd --- /dev/null +++ b/__tests__/fixtures/ts-syntax/reserved-word-alias.tsx @@ -0,0 +1,7 @@ +// Reserved words as module export/import names (ES2015 IdentifierName). The current +// grammar parses these; SegaraRai/tree-sitter-typescript@82b3609 does not (Effect, Zod). +import { null as n, void as v } from "./mod"; +const a = 1; +export { a as null, a as delete, n as function, v as void }; +export { null as x, a as default } from "./mod"; +export * as delete from "./mod"; diff --git a/__tests__/fixtures/ts-syntax/typeof-reserved-member.ts b/__tests__/fixtures/ts-syntax/typeof-reserved-member.ts new file mode 100644 index 000000000..ab4517d8d --- /dev/null +++ b/__tests__/fixtures/ts-syntax/typeof-reserved-member.ts @@ -0,0 +1,8 @@ +// A reserved word as the member after `typeof` in a type position (`typeof X.default`). +// The current grammar parses these; SegaraRai/tree-sitter-typescript@82b3609 does not +// (VS Code's `typeof import("x").default` is the common real-world form). +declare const ns: { default: 1; delete: 2; null: 3; b: { delete: 4 } }; +export type A = typeof import("./mod").default; +export type B = typeof ns.default; +export type C = typeof ns.b.delete; +export let v: typeof ns.null; diff --git a/__tests__/fixtures/ts-syntax/typeof-reserved-member.tsx b/__tests__/fixtures/ts-syntax/typeof-reserved-member.tsx new file mode 100644 index 000000000..ab4517d8d --- /dev/null +++ b/__tests__/fixtures/ts-syntax/typeof-reserved-member.tsx @@ -0,0 +1,8 @@ +// A reserved word as the member after `typeof` in a type position (`typeof X.default`). +// The current grammar parses these; SegaraRai/tree-sitter-typescript@82b3609 does not +// (VS Code's `typeof import("x").default` is the common real-world form). +declare const ns: { default: 1; delete: 2; null: 3; b: { delete: 4 } }; +export type A = typeof import("./mod").default; +export type B = typeof ns.default; +export type C = typeof ns.b.delete; +export let v: typeof ns.null;