From ccffc9f25f0a92fc0e59c456f8a893fa8ae73021 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Thu, 22 Jan 2015 15:12:55 -0800 Subject: [PATCH] Adding more tests --- .../objectLiteralContextualTyping.js | 20 ++++++++--- .../objectLiteralContextualTyping.types | 36 ++++++++++++++++--- .../objectLiteralContextualTyping.ts | 12 +++++-- 3 files changed, 58 insertions(+), 10 deletions(-) diff --git a/tests/baselines/reference/objectLiteralContextualTyping.js b/tests/baselines/reference/objectLiteralContextualTyping.js index ebe10686516..48686042754 100644 --- a/tests/baselines/reference/objectLiteralContextualTyping.js +++ b/tests/baselines/reference/objectLiteralContextualTyping.js @@ -1,5 +1,5 @@ //// [objectLiteralContextualTyping.ts] -// Test related to #1774 +// Tests related to #1774 interface Item { name: string; @@ -15,15 +15,27 @@ var x: string; var y = foo({ name: "Sprocket", description: "Bumpy wheel" }); var y: string; -var z = foo({ a: 10 }); +var z = foo({ name: "Sprocket", description: false }); var z: number; + +var w = foo({ a: 10 }); +var w: number; + +declare function bar(param: { x?: T }): T; + +var b = bar({}); +var b: {}; //// [objectLiteralContextualTyping.js] -// Test related to #1774 +// Tests related to #1774 var x = foo({ name: "Sprocket" }); var x; var y = foo({ name: "Sprocket", description: "Bumpy wheel" }); var y; -var z = foo({ a: 10 }); +var z = foo({ name: "Sprocket", description: false }); var z; +var w = foo({ a: 10 }); +var w; +var b = bar({}); +var b; diff --git a/tests/baselines/reference/objectLiteralContextualTyping.types b/tests/baselines/reference/objectLiteralContextualTyping.types index ff571ee541f..495e8df1438 100644 --- a/tests/baselines/reference/objectLiteralContextualTyping.types +++ b/tests/baselines/reference/objectLiteralContextualTyping.types @@ -1,5 +1,5 @@ === tests/cases/conformance/expressions/contextualTyping/objectLiteralContextualTyping.ts === -// Test related to #1774 +// Tests related to #1774 interface Item { >Item : Item @@ -41,13 +41,41 @@ var y = foo({ name: "Sprocket", description: "Bumpy wheel" }); var y: string; >y : string -var z = foo({ a: 10 }); +var z = foo({ name: "Sprocket", description: false }); >z : number +>foo({ name: "Sprocket", description: false }) : number +>foo : { (item: Item): string; (item: any): number; } +>{ name: "Sprocket", description: false } : { name: string; description: boolean; } +>name : string +>description : boolean + +var z: number; +>z : number + +var w = foo({ a: 10 }); +>w : number >foo({ a: 10 }) : number >foo : { (item: Item): string; (item: any): number; } >{ a: 10 } : { a: number; } >a : number -var z: number; ->z : number +var w: number; +>w : number + +declare function bar(param: { x?: T }): T; +>bar : (param: { x?: T; }) => T +>T : T +>param : { x?: T; } +>x : T +>T : T +>T : T + +var b = bar({}); +>b : {} +>bar({}) : {} +>bar : (param: { x?: T; }) => T +>{} : { x?: {}; } + +var b: {}; +>b : {} diff --git a/tests/cases/conformance/expressions/contextualTyping/objectLiteralContextualTyping.ts b/tests/cases/conformance/expressions/contextualTyping/objectLiteralContextualTyping.ts index 5920066aaa6..cb2fe8ee8d4 100644 --- a/tests/cases/conformance/expressions/contextualTyping/objectLiteralContextualTyping.ts +++ b/tests/cases/conformance/expressions/contextualTyping/objectLiteralContextualTyping.ts @@ -1,4 +1,4 @@ -// Test related to #1774 +// Tests related to #1774 interface Item { name: string; @@ -14,5 +14,13 @@ var x: string; var y = foo({ name: "Sprocket", description: "Bumpy wheel" }); var y: string; -var z = foo({ a: 10 }); +var z = foo({ name: "Sprocket", description: false }); var z: number; + +var w = foo({ a: 10 }); +var w: number; + +declare function bar(param: { x?: T }): T; + +var b = bar({}); +var b: {};