From 966e697f2a3c2622fa6ea2f5ae7717d11199913b Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Wed, 8 Oct 2014 12:31:03 -0700 Subject: [PATCH] Compiler test case for usage of contextual rest parameter --- ...ontextuallyTypingRestParameters.errors.txt | 16 ++++++++++++++ .../contextuallyTypingRestParameters.js | 21 +++++++++++++++++++ .../contextuallyTypingRestParameters.ts | 7 +++++++ 3 files changed, 44 insertions(+) create mode 100644 tests/baselines/reference/contextuallyTypingRestParameters.errors.txt create mode 100644 tests/baselines/reference/contextuallyTypingRestParameters.js create mode 100644 tests/cases/compiler/contextuallyTypingRestParameters.ts diff --git a/tests/baselines/reference/contextuallyTypingRestParameters.errors.txt b/tests/baselines/reference/contextuallyTypingRestParameters.errors.txt new file mode 100644 index 00000000000..369d10e88c2 --- /dev/null +++ b/tests/baselines/reference/contextuallyTypingRestParameters.errors.txt @@ -0,0 +1,16 @@ +tests/cases/compiler/contextuallyTypingRestParameters.ts(3,9): error TS2323: Type 'string[]' is not assignable to type 'string'. +tests/cases/compiler/contextuallyTypingRestParameters.ts(5,9): error TS2323: Type 'string[]' is not assignable to type 'string'. + + +==== tests/cases/compiler/contextuallyTypingRestParameters.ts (2 errors) ==== + var x: (...y: string[]) => void = function (.../*3*/y) { + var t = y; + var x2: string = t; // This should be error + ~~ +!!! error TS2323: Type 'string[]' is not assignable to type 'string'. + var x3: string[] = t; // No error + var y2: string = y; // This should be error + ~~ +!!! error TS2323: Type 'string[]' is not assignable to type 'string'. + var y3: string[] = y; // No error + }; \ No newline at end of file diff --git a/tests/baselines/reference/contextuallyTypingRestParameters.js b/tests/baselines/reference/contextuallyTypingRestParameters.js new file mode 100644 index 00000000000..17561f5d7fc --- /dev/null +++ b/tests/baselines/reference/contextuallyTypingRestParameters.js @@ -0,0 +1,21 @@ +//// [contextuallyTypingRestParameters.ts] +var x: (...y: string[]) => void = function (.../*3*/y) { + var t = y; + var x2: string = t; // This should be error + var x3: string[] = t; // No error + var y2: string = y; // This should be error + var y3: string[] = y; // No error +}; + +//// [contextuallyTypingRestParameters.js] +var x = function () { + var y = []; + for (var _i = 0; _i < arguments.length; _i++) { + y[_i - 0] = arguments[_i]; + } + var t = y; + var x2 = t; // This should be error + var x3 = t; // No error + var y2 = y; // This should be error + var y3 = y; // No error +}; diff --git a/tests/cases/compiler/contextuallyTypingRestParameters.ts b/tests/cases/compiler/contextuallyTypingRestParameters.ts new file mode 100644 index 00000000000..bad36b47db2 --- /dev/null +++ b/tests/cases/compiler/contextuallyTypingRestParameters.ts @@ -0,0 +1,7 @@ +var x: (...y: string[]) => void = function (.../*3*/y) { + var t = y; + var x2: string = t; // This should be error + var x3: string[] = t; // No error + var y2: string = y; // This should be error + var y3: string[] = y; // No error +}; \ No newline at end of file