From d75b631434956cb82d0db4854a5a28f56b4b0ddc Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Wed, 14 Sep 2022 12:43:45 -0700 Subject: [PATCH] Add test --- ...tionEmitDuplicateParameterDestructuring.js | 46 +++++++++++++++++++ ...mitDuplicateParameterDestructuring.symbols | 22 +++++++++ ...nEmitDuplicateParameterDestructuring.types | 26 +++++++++++ ...tionEmitDuplicateParameterDestructuring.ts | 6 +++ 4 files changed, 100 insertions(+) create mode 100644 tests/baselines/reference/declarationEmitDuplicateParameterDestructuring.js create mode 100644 tests/baselines/reference/declarationEmitDuplicateParameterDestructuring.symbols create mode 100644 tests/baselines/reference/declarationEmitDuplicateParameterDestructuring.types create mode 100644 tests/cases/compiler/declarationEmitDuplicateParameterDestructuring.ts diff --git a/tests/baselines/reference/declarationEmitDuplicateParameterDestructuring.js b/tests/baselines/reference/declarationEmitDuplicateParameterDestructuring.js new file mode 100644 index 0000000000000..85c275a730bf0 --- /dev/null +++ b/tests/baselines/reference/declarationEmitDuplicateParameterDestructuring.js @@ -0,0 +1,46 @@ +//// [declarationEmitDuplicateParameterDestructuring.ts] +export const fn1 = ({ prop: a, prop: b }: { prop: number }) => a + b; + +export const fn2 = ({ prop: a }: { prop: number }, { prop: b }: { prop: number }) => a + b; + + + + +//// [declarationEmitDuplicateParameterDestructuring.d.ts] +export declare const fn1: ({ prop, prop }: { + prop: number; +}) => number; +export declare const fn2: ({ prop }: { + prop: number; +}, { prop }: { + prop: number; +}) => number; + + +//// [DtsFileErrors] + + +tests/cases/compiler/declarationEmitDuplicateParameterDestructuring.d.ts(1,30): error TS2300: Duplicate identifier 'prop'. +tests/cases/compiler/declarationEmitDuplicateParameterDestructuring.d.ts(1,36): error TS2300: Duplicate identifier 'prop'. +tests/cases/compiler/declarationEmitDuplicateParameterDestructuring.d.ts(4,30): error TS2300: Duplicate identifier 'prop'. +tests/cases/compiler/declarationEmitDuplicateParameterDestructuring.d.ts(6,6): error TS2300: Duplicate identifier 'prop'. + + +==== tests/cases/compiler/declarationEmitDuplicateParameterDestructuring.d.ts (4 errors) ==== + export declare const fn1: ({ prop, prop }: { + ~~~~ +!!! error TS2300: Duplicate identifier 'prop'. + ~~~~ +!!! error TS2300: Duplicate identifier 'prop'. + prop: number; + }) => number; + export declare const fn2: ({ prop }: { + ~~~~ +!!! error TS2300: Duplicate identifier 'prop'. + prop: number; + }, { prop }: { + ~~~~ +!!! error TS2300: Duplicate identifier 'prop'. + prop: number; + }) => number; + \ No newline at end of file diff --git a/tests/baselines/reference/declarationEmitDuplicateParameterDestructuring.symbols b/tests/baselines/reference/declarationEmitDuplicateParameterDestructuring.symbols new file mode 100644 index 0000000000000..ed7d395d452ca --- /dev/null +++ b/tests/baselines/reference/declarationEmitDuplicateParameterDestructuring.symbols @@ -0,0 +1,22 @@ +=== tests/cases/compiler/declarationEmitDuplicateParameterDestructuring.ts === +export const fn1 = ({ prop: a, prop: b }: { prop: number }) => a + b; +>fn1 : Symbol(fn1, Decl(declarationEmitDuplicateParameterDestructuring.ts, 0, 12)) +>prop : Symbol(prop, Decl(declarationEmitDuplicateParameterDestructuring.ts, 0, 43)) +>a : Symbol(a, Decl(declarationEmitDuplicateParameterDestructuring.ts, 0, 21)) +>prop : Symbol(prop, Decl(declarationEmitDuplicateParameterDestructuring.ts, 0, 43)) +>b : Symbol(b, Decl(declarationEmitDuplicateParameterDestructuring.ts, 0, 30)) +>prop : Symbol(prop, Decl(declarationEmitDuplicateParameterDestructuring.ts, 0, 43)) +>a : Symbol(a, Decl(declarationEmitDuplicateParameterDestructuring.ts, 0, 21)) +>b : Symbol(b, Decl(declarationEmitDuplicateParameterDestructuring.ts, 0, 30)) + +export const fn2 = ({ prop: a }: { prop: number }, { prop: b }: { prop: number }) => a + b; +>fn2 : Symbol(fn2, Decl(declarationEmitDuplicateParameterDestructuring.ts, 2, 12)) +>prop : Symbol(prop, Decl(declarationEmitDuplicateParameterDestructuring.ts, 2, 34)) +>a : Symbol(a, Decl(declarationEmitDuplicateParameterDestructuring.ts, 2, 21)) +>prop : Symbol(prop, Decl(declarationEmitDuplicateParameterDestructuring.ts, 2, 34)) +>prop : Symbol(prop, Decl(declarationEmitDuplicateParameterDestructuring.ts, 2, 65)) +>b : Symbol(b, Decl(declarationEmitDuplicateParameterDestructuring.ts, 2, 52)) +>prop : Symbol(prop, Decl(declarationEmitDuplicateParameterDestructuring.ts, 2, 65)) +>a : Symbol(a, Decl(declarationEmitDuplicateParameterDestructuring.ts, 2, 21)) +>b : Symbol(b, Decl(declarationEmitDuplicateParameterDestructuring.ts, 2, 52)) + diff --git a/tests/baselines/reference/declarationEmitDuplicateParameterDestructuring.types b/tests/baselines/reference/declarationEmitDuplicateParameterDestructuring.types new file mode 100644 index 0000000000000..271da5f139fd9 --- /dev/null +++ b/tests/baselines/reference/declarationEmitDuplicateParameterDestructuring.types @@ -0,0 +1,26 @@ +=== tests/cases/compiler/declarationEmitDuplicateParameterDestructuring.ts === +export const fn1 = ({ prop: a, prop: b }: { prop: number }) => a + b; +>fn1 : ({ prop, prop }: { prop: number;}) => number +>({ prop: a, prop: b }: { prop: number }) => a + b : ({ prop, prop }: { prop: number;}) => number +>prop : any +>a : number +>prop : any +>b : number +>prop : number +>a + b : number +>a : number +>b : number + +export const fn2 = ({ prop: a }: { prop: number }, { prop: b }: { prop: number }) => a + b; +>fn2 : ({ prop }: { prop: number;}, { prop }: { prop: number;}) => number +>({ prop: a }: { prop: number }, { prop: b }: { prop: number }) => a + b : ({ prop }: { prop: number;}, { prop }: { prop: number;}) => number +>prop : any +>a : number +>prop : number +>prop : any +>b : number +>prop : number +>a + b : number +>a : number +>b : number + diff --git a/tests/cases/compiler/declarationEmitDuplicateParameterDestructuring.ts b/tests/cases/compiler/declarationEmitDuplicateParameterDestructuring.ts new file mode 100644 index 0000000000000..12f3ce9aa2bc8 --- /dev/null +++ b/tests/cases/compiler/declarationEmitDuplicateParameterDestructuring.ts @@ -0,0 +1,6 @@ +// @declaration: true +// @emitDeclarationOnly: true + +export const fn1 = ({ prop: a, prop: b }: { prop: number }) => a + b; + +export const fn2 = ({ prop: a }: { prop: number }, { prop: b }: { prop: number }) => a + b;