From 70d8def398d9dfefa4d049152a3d801611aa2ff5 Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders Date: Tue, 17 May 2016 09:33:55 -0700 Subject: [PATCH] Add test that infers 'number' from pattern --- .../fallbackToBindingPatternForTypeInference.js | 5 +++++ .../fallbackToBindingPatternForTypeInference.symbols | 6 ++++++ .../fallbackToBindingPatternForTypeInference.types | 9 +++++++++ .../compiler/fallbackToBindingPatternForTypeInference.ts | 1 + 4 files changed, 21 insertions(+) diff --git a/tests/baselines/reference/fallbackToBindingPatternForTypeInference.js b/tests/baselines/reference/fallbackToBindingPatternForTypeInference.js index fd0632b2bea..1c02ae83982 100644 --- a/tests/baselines/reference/fallbackToBindingPatternForTypeInference.js +++ b/tests/baselines/reference/fallbackToBindingPatternForTypeInference.js @@ -4,6 +4,7 @@ trans(({a}) => a); trans(([b,c]) => 'foo'); trans(({d: [e,f]}) => 'foo'); trans(([{g},{h}]) => 'foo'); +trans(({a, b = 10}) => a); //// [fallbackToBindingPatternForTypeInference.js] @@ -23,3 +24,7 @@ trans(function (_a) { var g = _a[0].g, h = _a[1].h; return 'foo'; }); +trans(function (_a) { + var a = _a.a, _b = _a.b, b = _b === void 0 ? 10 : _b; + return a; +}); diff --git a/tests/baselines/reference/fallbackToBindingPatternForTypeInference.symbols b/tests/baselines/reference/fallbackToBindingPatternForTypeInference.symbols index e7049d50e1b..f57b234f39f 100644 --- a/tests/baselines/reference/fallbackToBindingPatternForTypeInference.symbols +++ b/tests/baselines/reference/fallbackToBindingPatternForTypeInference.symbols @@ -26,3 +26,9 @@ trans(([{g},{h}]) => 'foo'); >g : Symbol(g, Decl(fallbackToBindingPatternForTypeInference.ts, 4, 9)) >h : Symbol(h, Decl(fallbackToBindingPatternForTypeInference.ts, 4, 13)) +trans(({a, b = 10}) => a); +>trans : Symbol(trans, Decl(fallbackToBindingPatternForTypeInference.ts, 0, 0)) +>a : Symbol(a, Decl(fallbackToBindingPatternForTypeInference.ts, 5, 8)) +>b : Symbol(b, Decl(fallbackToBindingPatternForTypeInference.ts, 5, 10)) +>a : Symbol(a, Decl(fallbackToBindingPatternForTypeInference.ts, 5, 8)) + diff --git a/tests/baselines/reference/fallbackToBindingPatternForTypeInference.types b/tests/baselines/reference/fallbackToBindingPatternForTypeInference.types index c8f01abaf82..fc41085098a 100644 --- a/tests/baselines/reference/fallbackToBindingPatternForTypeInference.types +++ b/tests/baselines/reference/fallbackToBindingPatternForTypeInference.types @@ -38,3 +38,12 @@ trans(([{g},{h}]) => 'foo'); >h : any >'foo' : string +trans(({a, b = 10}) => a); +>trans(({a, b = 10}) => a) : number +>trans : (f: (x: T) => string) => number +>({a, b = 10}) => a : ({a, b}: { a: any; b?: number; }) => any +>a : any +>b : number +>10 : number +>a : any + diff --git a/tests/cases/compiler/fallbackToBindingPatternForTypeInference.ts b/tests/cases/compiler/fallbackToBindingPatternForTypeInference.ts index de6940110da..9aa979c1020 100644 --- a/tests/cases/compiler/fallbackToBindingPatternForTypeInference.ts +++ b/tests/cases/compiler/fallbackToBindingPatternForTypeInference.ts @@ -3,3 +3,4 @@ trans(({a}) => a); trans(([b,c]) => 'foo'); trans(({d: [e,f]}) => 'foo'); trans(([{g},{h}]) => 'foo'); +trans(({a, b = 10}) => a);