From bb40819f7537988ac32a8b4889cd9f1c33976e22 Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders Date: Fri, 27 Jan 2017 14:30:11 -0800 Subject: [PATCH] Update tests and baselines --- ...ameterAddsUndefinedWithStrictNullChecks.js | 21 +++------ ...rAddsUndefinedWithStrictNullChecks.symbols | 45 +++++++------------ ...terAddsUndefinedWithStrictNullChecks.types | 34 ++++---------- ...ameterAddsUndefinedWithStrictNullChecks.ts | 11 ++--- 4 files changed, 31 insertions(+), 80 deletions(-) diff --git a/tests/baselines/reference/defaultParameterAddsUndefinedWithStrictNullChecks.js b/tests/baselines/reference/defaultParameterAddsUndefinedWithStrictNullChecks.js index 561fa65a154..d2933f15668 100644 --- a/tests/baselines/reference/defaultParameterAddsUndefinedWithStrictNullChecks.js +++ b/tests/baselines/reference/defaultParameterAddsUndefinedWithStrictNullChecks.js @@ -12,18 +12,13 @@ function foo1(x: string = "string", b: number) { x.length; } -function foo2(x: string | undefined = "string", b: number) { - x.length; // ok, should be narrowed to string +function foo2(x = "string", b: number) { + x.length; } -function foo3(x = "string", b: number) { - x.length; // ok, should be narrowed to string -} - -// .d.ts should have `T | undefined` for foo1, foo2, foo3 +// .d.ts should have `T | undefined` for foo1 and foo2 foo1(undefined, 1); foo2(undefined, 1); -foo3(undefined, 1); function removeUndefinedButNotFalse(x = true) { @@ -60,16 +55,11 @@ function foo1(x, b) { } function foo2(x, b) { if (x === void 0) { x = "string"; } - x.length; // ok, should be narrowed to string + x.length; } -function foo3(x, b) { - if (x === void 0) { x = "string"; } - x.length; // ok, should be narrowed to string -} -// .d.ts should have `T | undefined` for foo1, foo2, foo3 +// .d.ts should have `T | undefined` for foo1 and foo2 foo1(undefined, 1); foo2(undefined, 1); -foo3(undefined, 1); function removeUndefinedButNotFalse(x) { if (x === void 0) { x = true; } if (x === false) { @@ -93,7 +83,6 @@ declare function g(addUndefined: string | undefined, addDefined: number): number declare let total: number; declare function foo1(x: string | undefined, b: number): void; declare function foo2(x: string | undefined, b: number): void; -declare function foo3(x: string | undefined, b: number): void; declare function removeUndefinedButNotFalse(x?: boolean | undefined): false | undefined; declare const cond: boolean; declare function removeNothing(y?: boolean | undefined): boolean; diff --git a/tests/baselines/reference/defaultParameterAddsUndefinedWithStrictNullChecks.symbols b/tests/baselines/reference/defaultParameterAddsUndefinedWithStrictNullChecks.symbols index f722ed3af26..6d4e02c6ab3 100644 --- a/tests/baselines/reference/defaultParameterAddsUndefinedWithStrictNullChecks.symbols +++ b/tests/baselines/reference/defaultParameterAddsUndefinedWithStrictNullChecks.symbols @@ -46,29 +46,18 @@ function foo1(x: string = "string", b: number) { >length : Symbol(String.length, Decl(lib.d.ts, --, --)) } -function foo2(x: string | undefined = "string", b: number) { +function foo2(x = "string", b: number) { >foo2 : Symbol(foo2, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 11, 1)) >x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 13, 14)) ->b : Symbol(b, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 13, 47)) +>b : Symbol(b, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 13, 27)) - x.length; // ok, should be narrowed to string + x.length; >x.length : Symbol(String.length, Decl(lib.d.ts, --, --)) >x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 13, 14)) >length : Symbol(String.length, Decl(lib.d.ts, --, --)) } -function foo3(x = "string", b: number) { ->foo3 : Symbol(foo3, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 15, 1)) ->x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 17, 14)) ->b : Symbol(b, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 17, 27)) - - x.length; // ok, should be narrowed to string ->x.length : Symbol(String.length, Decl(lib.d.ts, --, --)) ->x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 17, 14)) ->length : Symbol(String.length, Decl(lib.d.ts, --, --)) -} - -// .d.ts should have `T | undefined` for foo1, foo2, foo3 +// .d.ts should have `T | undefined` for foo1 and foo2 foo1(undefined, 1); >foo1 : Symbol(foo1, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 7, 36)) >undefined : Symbol(undefined) @@ -77,41 +66,37 @@ foo2(undefined, 1); >foo2 : Symbol(foo2, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 11, 1)) >undefined : Symbol(undefined) -foo3(undefined, 1); ->foo3 : Symbol(foo3, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 15, 1)) ->undefined : Symbol(undefined) - function removeUndefinedButNotFalse(x = true) { ->removeUndefinedButNotFalse : Symbol(removeUndefinedButNotFalse, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 24, 19)) ->x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 27, 36)) +>removeUndefinedButNotFalse : Symbol(removeUndefinedButNotFalse, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 19, 19)) +>x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 22, 36)) if (x === false) { ->x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 27, 36)) +>x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 22, 36)) return x; ->x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 27, 36)) +>x : Symbol(x, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 22, 36)) } } declare const cond: boolean; ->cond : Symbol(cond, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 33, 13)) +>cond : Symbol(cond, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 28, 13)) function removeNothing(y = cond ? true : undefined) { ->removeNothing : Symbol(removeNothing, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 33, 28)) ->y : Symbol(y, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 34, 23)) ->cond : Symbol(cond, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 33, 13)) +>removeNothing : Symbol(removeNothing, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 28, 28)) +>y : Symbol(y, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 29, 23)) +>cond : Symbol(cond, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 28, 13)) >undefined : Symbol(undefined) if (y !== undefined) { ->y : Symbol(y, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 34, 23)) +>y : Symbol(y, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 29, 23)) >undefined : Symbol(undefined) if (y === false) { ->y : Symbol(y, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 34, 23)) +>y : Symbol(y, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 29, 23)) return y; ->y : Symbol(y, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 34, 23)) +>y : Symbol(y, Decl(defaultParameterAddsUndefinedWithStrictNullChecks.ts, 29, 23)) } } return true; diff --git a/tests/baselines/reference/defaultParameterAddsUndefinedWithStrictNullChecks.types b/tests/baselines/reference/defaultParameterAddsUndefinedWithStrictNullChecks.types index 15535eb435e..1311a6e9222 100644 --- a/tests/baselines/reference/defaultParameterAddsUndefinedWithStrictNullChecks.types +++ b/tests/baselines/reference/defaultParameterAddsUndefinedWithStrictNullChecks.types @@ -1,7 +1,7 @@ === tests/cases/compiler/defaultParameterAddsUndefinedWithStrictNullChecks.ts === function f(addUndefined1 = "J", addUndefined2?: number) { >f : (addUndefined1?: string | undefined, addUndefined2?: number | undefined) => number ->addUndefined1 : string | undefined +>addUndefined1 : string >"J" : "J" >addUndefined2 : number | undefined @@ -17,7 +17,7 @@ function f(addUndefined1 = "J", addUndefined2?: number) { } function g(addUndefined = "J", addDefined: number) { >g : (addUndefined: string | undefined, addDefined: number) => number ->addUndefined : string | undefined +>addUndefined : string >"J" : "J" >addDefined : number @@ -62,7 +62,7 @@ total = g('c', 3) + g(undefined, 4); function foo1(x: string = "string", b: number) { >foo1 : (x: string | undefined, b: number) => void ->x : string | undefined +>x : string >"string" : "string" >b : number @@ -72,31 +72,19 @@ function foo1(x: string = "string", b: number) { >length : number } -function foo2(x: string | undefined = "string", b: number) { +function foo2(x = "string", b: number) { >foo2 : (x: string | undefined, b: number) => void ->x : string | undefined +>x : string >"string" : "string" >b : number - x.length; // ok, should be narrowed to string + x.length; >x.length : number >x : string >length : number } -function foo3(x = "string", b: number) { ->foo3 : (x: string | undefined, b: number) => void ->x : string | undefined ->"string" : "string" ->b : number - - x.length; // ok, should be narrowed to string ->x.length : number ->x : string ->length : number -} - -// .d.ts should have `T | undefined` for foo1, foo2, foo3 +// .d.ts should have `T | undefined` for foo1 and foo2 foo1(undefined, 1); >foo1(undefined, 1) : void >foo1 : (x: string | undefined, b: number) => void @@ -109,16 +97,10 @@ foo2(undefined, 1); >undefined : undefined >1 : 1 -foo3(undefined, 1); ->foo3(undefined, 1) : void ->foo3 : (x: string | undefined, b: number) => void ->undefined : undefined ->1 : 1 - function removeUndefinedButNotFalse(x = true) { >removeUndefinedButNotFalse : (x?: boolean | undefined) => false | undefined ->x : boolean | undefined +>x : boolean >true : true if (x === false) { diff --git a/tests/cases/compiler/defaultParameterAddsUndefinedWithStrictNullChecks.ts b/tests/cases/compiler/defaultParameterAddsUndefinedWithStrictNullChecks.ts index 44f17c949e0..47344e6974b 100644 --- a/tests/cases/compiler/defaultParameterAddsUndefinedWithStrictNullChecks.ts +++ b/tests/cases/compiler/defaultParameterAddsUndefinedWithStrictNullChecks.ts @@ -13,18 +13,13 @@ function foo1(x: string = "string", b: number) { x.length; } -function foo2(x: string | undefined = "string", b: number) { - x.length; // ok, should be narrowed to string +function foo2(x = "string", b: number) { + x.length; } -function foo3(x = "string", b: number) { - x.length; // ok, should be narrowed to string -} - -// .d.ts should have `T | undefined` for foo1, foo2, foo3 +// .d.ts should have `T | undefined` for foo1 and foo2 foo1(undefined, 1); foo2(undefined, 1); -foo3(undefined, 1); function removeUndefinedButNotFalse(x = true) {