From 501a3704f916eb84699087ae3314108084c9de51 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Fri, 28 Nov 2014 18:33:37 -0800 Subject: [PATCH] Accepting new baselines --- ...sionRestParameterArrowFunctions.errors.txt | 19 --- .../collisionRestParameterArrowFunctions.js | 8 +- ...collisionRestParameterArrowFunctions.types | 34 +++++ ...onRestParameterClassConstructor.errors.txt | 78 ---------- .../collisionRestParameterClassConstructor.js | 16 +- ...llisionRestParameterClassConstructor.types | 137 ++++++++++++++++++ ...llisionRestParameterClassMethod.errors.txt | 47 ------ .../collisionRestParameterClassMethod.js | 12 +- .../collisionRestParameterClassMethod.types | 103 +++++++++++++ .../collisionRestParameterFunction.errors.txt | 42 ------ .../collisionRestParameterFunction.js | 12 +- .../collisionRestParameterFunction.types | 88 +++++++++++ ...estParameterFunctionExpressions.errors.txt | 33 ----- ...llisionRestParameterFunctionExpressions.js | 12 +- ...sionRestParameterFunctionExpressions.types | 62 ++++++++ ...onRestParameterUnderscoreIUsage.errors.txt | 14 -- .../collisionRestParameterUnderscoreIUsage.js | 4 +- ...llisionRestParameterUnderscoreIUsage.types | 27 ++++ 18 files changed, 483 insertions(+), 265 deletions(-) delete mode 100644 tests/baselines/reference/collisionRestParameterArrowFunctions.errors.txt create mode 100644 tests/baselines/reference/collisionRestParameterArrowFunctions.types delete mode 100644 tests/baselines/reference/collisionRestParameterClassConstructor.errors.txt create mode 100644 tests/baselines/reference/collisionRestParameterClassConstructor.types delete mode 100644 tests/baselines/reference/collisionRestParameterClassMethod.errors.txt create mode 100644 tests/baselines/reference/collisionRestParameterClassMethod.types delete mode 100644 tests/baselines/reference/collisionRestParameterFunction.errors.txt create mode 100644 tests/baselines/reference/collisionRestParameterFunction.types delete mode 100644 tests/baselines/reference/collisionRestParameterFunctionExpressions.errors.txt create mode 100644 tests/baselines/reference/collisionRestParameterFunctionExpressions.types delete mode 100644 tests/baselines/reference/collisionRestParameterUnderscoreIUsage.errors.txt create mode 100644 tests/baselines/reference/collisionRestParameterUnderscoreIUsage.types diff --git a/tests/baselines/reference/collisionRestParameterArrowFunctions.errors.txt b/tests/baselines/reference/collisionRestParameterArrowFunctions.errors.txt deleted file mode 100644 index 5c585e5a6c..0000000000 --- a/tests/baselines/reference/collisionRestParameterArrowFunctions.errors.txt +++ /dev/null @@ -1,19 +0,0 @@ -tests/cases/compiler/collisionRestParameterArrowFunctions.ts(1,11): error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. - - -==== tests/cases/compiler/collisionRestParameterArrowFunctions.ts (1 errors) ==== - var f1 = (_i: number, ...restParameters) => { //_i is error - ~~~~~~~~~~ -!!! error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. - var _i = 10; // no error - } - var f1NoError = (_i: number) => { // no error - var _i = 10; // no error - } - - var f2 = (...restParameters) => { - var _i = 10; // No Error - } - var f2NoError = () => { - var _i = 10; // no error - } \ No newline at end of file diff --git a/tests/baselines/reference/collisionRestParameterArrowFunctions.js b/tests/baselines/reference/collisionRestParameterArrowFunctions.js index cc8dc337b8..31f835b6a8 100644 --- a/tests/baselines/reference/collisionRestParameterArrowFunctions.js +++ b/tests/baselines/reference/collisionRestParameterArrowFunctions.js @@ -16,8 +16,8 @@ var f2NoError = () => { //// [collisionRestParameterArrowFunctions.js] var f1 = function (_i) { var restParameters = []; - for (var _i = 1; _i < arguments.length; _i++) { - restParameters[_i - 1] = arguments[_i]; + for (var _0 = 1; _0 < arguments.length; _0++) { + restParameters[_0 - 1] = arguments[_0]; } var _i = 10; // no error }; @@ -26,8 +26,8 @@ var f1NoError = function (_i) { }; var f2 = function () { var restParameters = []; - for (var _i = 0; _i < arguments.length; _i++) { - restParameters[_i - 0] = arguments[_i]; + for (var _0 = 0; _0 < arguments.length; _0++) { + restParameters[_0 - 0] = arguments[_0]; } var _i = 10; // No Error }; diff --git a/tests/baselines/reference/collisionRestParameterArrowFunctions.types b/tests/baselines/reference/collisionRestParameterArrowFunctions.types new file mode 100644 index 0000000000..f2316c9958 --- /dev/null +++ b/tests/baselines/reference/collisionRestParameterArrowFunctions.types @@ -0,0 +1,34 @@ +=== tests/cases/compiler/collisionRestParameterArrowFunctions.ts === +var f1 = (_i: number, ...restParameters) => { //_i is error +>f1 : (_i: number, ...restParameters: any[]) => void +>(_i: number, ...restParameters) => { //_i is error var _i = 10; // no error} : (_i: number, ...restParameters: any[]) => void +>_i : number +>restParameters : any[] + + var _i = 10; // no error +>_i : number +} +var f1NoError = (_i: number) => { // no error +>f1NoError : (_i: number) => void +>(_i: number) => { // no error var _i = 10; // no error} : (_i: number) => void +>_i : number + + var _i = 10; // no error +>_i : number +} + +var f2 = (...restParameters) => { +>f2 : (...restParameters: any[]) => void +>(...restParameters) => { var _i = 10; // No Error} : (...restParameters: any[]) => void +>restParameters : any[] + + var _i = 10; // No Error +>_i : number +} +var f2NoError = () => { +>f2NoError : () => void +>() => { var _i = 10; // no error} : () => void + + var _i = 10; // no error +>_i : number +} diff --git a/tests/baselines/reference/collisionRestParameterClassConstructor.errors.txt b/tests/baselines/reference/collisionRestParameterClassConstructor.errors.txt deleted file mode 100644 index a30b6d11d4..0000000000 --- a/tests/baselines/reference/collisionRestParameterClassConstructor.errors.txt +++ /dev/null @@ -1,78 +0,0 @@ -tests/cases/compiler/collisionRestParameterClassConstructor.ts(3,17): error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. -tests/cases/compiler/collisionRestParameterClassConstructor.ts(25,17): error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. -tests/cases/compiler/collisionRestParameterClassConstructor.ts(45,17): error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. - - -==== tests/cases/compiler/collisionRestParameterClassConstructor.ts (3 errors) ==== - // Constructors - class c1 { - constructor(_i: number, ...restParameters) { //_i is error - ~~~~~~~~~~ -!!! error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. - var _i = 10; // no error - } - } - class c1NoError { - constructor(_i: number) { // no error - var _i = 10; // no error - } - } - - class c2 { - constructor(...restParameters) { - var _i = 10; // no error - } - } - class c2NoError { - constructor() { - var _i = 10; // no error - } - } - - class c3 { - constructor(public _i: number, ...restParameters) { //_i is error - ~~~~~~~~~~~~~~~~~ -!!! error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. - var _i = 10; // no error - } - } - class c3NoError { - constructor(public _i: number) { // no error - var _i = 10; // no error - } - } - - declare class c4 { - constructor(_i: number, ...restParameters); // No error - no code gen - } - declare class c4NoError { - constructor(_i: number); // no error - } - - class c5 { - constructor(_i: number, ...rest); // no codegen no error - constructor(_i: string, ...rest); // no codegen no error - constructor(_i: any, ...rest) { // error - ~~~~~~~ -!!! error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. - var _i: any; // no error - } - } - - class c5NoError { - constructor(_i: number); // no error - constructor(_i: string); // no error - constructor(_i: any) { // no error - var _i: any; // no error - } - } - - declare class c6 { - constructor(_i: number, ...rest); // no codegen no error - constructor(_i: string, ...rest); // no codegen no error - } - - declare class c6NoError { - constructor(_i: number); // no error - constructor(_i: string); // no error - } \ No newline at end of file diff --git a/tests/baselines/reference/collisionRestParameterClassConstructor.js b/tests/baselines/reference/collisionRestParameterClassConstructor.js index 02c7ada9df..f109d6ba34 100644 --- a/tests/baselines/reference/collisionRestParameterClassConstructor.js +++ b/tests/baselines/reference/collisionRestParameterClassConstructor.js @@ -71,8 +71,8 @@ declare class c6NoError { var c1 = (function () { function c1(_i) { var restParameters = []; - for (var _i = 1; _i < arguments.length; _i++) { - restParameters[_i - 1] = arguments[_i]; + for (var _0 = 1; _0 < arguments.length; _0++) { + restParameters[_0 - 1] = arguments[_0]; } var _i = 10; // no error } @@ -87,8 +87,8 @@ var c1NoError = (function () { var c2 = (function () { function c2() { var restParameters = []; - for (var _i = 0; _i < arguments.length; _i++) { - restParameters[_i - 0] = arguments[_i]; + for (var _0 = 0; _0 < arguments.length; _0++) { + restParameters[_0 - 0] = arguments[_0]; } var _i = 10; // no error } @@ -103,8 +103,8 @@ var c2NoError = (function () { var c3 = (function () { function c3(_i) { var restParameters = []; - for (var _i = 1; _i < arguments.length; _i++) { - restParameters[_i - 1] = arguments[_i]; + for (var _0 = 1; _0 < arguments.length; _0++) { + restParameters[_0 - 1] = arguments[_0]; } this._i = _i; var _i = 10; // no error @@ -121,8 +121,8 @@ var c3NoError = (function () { var c5 = (function () { function c5(_i) { var rest = []; - for (var _i = 1; _i < arguments.length; _i++) { - rest[_i - 1] = arguments[_i]; + for (var _0 = 1; _0 < arguments.length; _0++) { + rest[_0 - 1] = arguments[_0]; } var _i; // no error } diff --git a/tests/baselines/reference/collisionRestParameterClassConstructor.types b/tests/baselines/reference/collisionRestParameterClassConstructor.types new file mode 100644 index 0000000000..d0ceb9e074 --- /dev/null +++ b/tests/baselines/reference/collisionRestParameterClassConstructor.types @@ -0,0 +1,137 @@ +=== tests/cases/compiler/collisionRestParameterClassConstructor.ts === +// Constructors +class c1 { +>c1 : c1 + + constructor(_i: number, ...restParameters) { //_i is error +>_i : number +>restParameters : any[] + + var _i = 10; // no error +>_i : number + } +} +class c1NoError { +>c1NoError : c1NoError + + constructor(_i: number) { // no error +>_i : number + + var _i = 10; // no error +>_i : number + } +} + +class c2 { +>c2 : c2 + + constructor(...restParameters) { +>restParameters : any[] + + var _i = 10; // no error +>_i : number + } +} +class c2NoError { +>c2NoError : c2NoError + + constructor() { + var _i = 10; // no error +>_i : number + } +} + +class c3 { +>c3 : c3 + + constructor(public _i: number, ...restParameters) { //_i is error +>_i : number +>restParameters : any[] + + var _i = 10; // no error +>_i : number + } +} +class c3NoError { +>c3NoError : c3NoError + + constructor(public _i: number) { // no error +>_i : number + + var _i = 10; // no error +>_i : number + } +} + +declare class c4 { +>c4 : c4 + + constructor(_i: number, ...restParameters); // No error - no code gen +>_i : number +>restParameters : any[] +} +declare class c4NoError { +>c4NoError : c4NoError + + constructor(_i: number); // no error +>_i : number +} + +class c5 { +>c5 : c5 + + constructor(_i: number, ...rest); // no codegen no error +>_i : number +>rest : any[] + + constructor(_i: string, ...rest); // no codegen no error +>_i : string +>rest : any[] + + constructor(_i: any, ...rest) { // error +>_i : any +>rest : any[] + + var _i: any; // no error +>_i : any + } +} + +class c5NoError { +>c5NoError : c5NoError + + constructor(_i: number); // no error +>_i : number + + constructor(_i: string); // no error +>_i : string + + constructor(_i: any) { // no error +>_i : any + + var _i: any; // no error +>_i : any + } +} + +declare class c6 { +>c6 : c6 + + constructor(_i: number, ...rest); // no codegen no error +>_i : number +>rest : any[] + + constructor(_i: string, ...rest); // no codegen no error +>_i : string +>rest : any[] +} + +declare class c6NoError { +>c6NoError : c6NoError + + constructor(_i: number); // no error +>_i : number + + constructor(_i: string); // no error +>_i : string +} diff --git a/tests/baselines/reference/collisionRestParameterClassMethod.errors.txt b/tests/baselines/reference/collisionRestParameterClassMethod.errors.txt deleted file mode 100644 index ac3fb1a556..0000000000 --- a/tests/baselines/reference/collisionRestParameterClassMethod.errors.txt +++ /dev/null @@ -1,47 +0,0 @@ -tests/cases/compiler/collisionRestParameterClassMethod.ts(2,16): error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. -tests/cases/compiler/collisionRestParameterClassMethod.ts(10,15): error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. - - -==== tests/cases/compiler/collisionRestParameterClassMethod.ts (2 errors) ==== - class c1 { - public foo(_i: number, ...restParameters) { //_i is error - ~~~~~~~~~~ -!!! error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. - var _i = 10; // no error - } - public fooNoError(_i: number) { // no error - var _i = 10; // no error - } - public f4(_i: number, ...rest); // no codegen no error - public f4(_i: string, ...rest); // no codegen no error - public f4(_i: any, ...rest) { // error - ~~~~~~~ -!!! error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. - var _i: any; // no error - } - - public f4NoError(_i: number); // no error - public f4NoError(_i: string); // no error - public f4NoError(_i: any) { // no error - var _i: any; // no error - } - } - - declare class c2 { - public foo(_i: number, ...restParameters); // No error - no code gen - public fooNoError(_i: number); // no error - - public f4(_i: number, ...rest); // no codegen no error - public f4(_i: string, ...rest); // no codegen no error - public f4NoError(_i: number); // no error - public f4NoError(_i: string); // no error - } - - class c3 { - public foo(...restParameters) { - var _i = 10; // no error - } - public fooNoError() { - var _i = 10; // no error - } - } \ No newline at end of file diff --git a/tests/baselines/reference/collisionRestParameterClassMethod.js b/tests/baselines/reference/collisionRestParameterClassMethod.js index 326ad0c424..592cb694cb 100644 --- a/tests/baselines/reference/collisionRestParameterClassMethod.js +++ b/tests/baselines/reference/collisionRestParameterClassMethod.js @@ -44,8 +44,8 @@ var c1 = (function () { } c1.prototype.foo = function (_i) { var restParameters = []; - for (var _i = 1; _i < arguments.length; _i++) { - restParameters[_i - 1] = arguments[_i]; + for (var _0 = 1; _0 < arguments.length; _0++) { + restParameters[_0 - 1] = arguments[_0]; } var _i = 10; // no error }; @@ -54,8 +54,8 @@ var c1 = (function () { }; c1.prototype.f4 = function (_i) { var rest = []; - for (var _i = 1; _i < arguments.length; _i++) { - rest[_i - 1] = arguments[_i]; + for (var _0 = 1; _0 < arguments.length; _0++) { + rest[_0 - 1] = arguments[_0]; } var _i; // no error }; @@ -69,8 +69,8 @@ var c3 = (function () { } c3.prototype.foo = function () { var restParameters = []; - for (var _i = 0; _i < arguments.length; _i++) { - restParameters[_i - 0] = arguments[_i]; + for (var _0 = 0; _0 < arguments.length; _0++) { + restParameters[_0 - 0] = arguments[_0]; } var _i = 10; // no error }; diff --git a/tests/baselines/reference/collisionRestParameterClassMethod.types b/tests/baselines/reference/collisionRestParameterClassMethod.types new file mode 100644 index 0000000000..2a4c23ae5a --- /dev/null +++ b/tests/baselines/reference/collisionRestParameterClassMethod.types @@ -0,0 +1,103 @@ +=== tests/cases/compiler/collisionRestParameterClassMethod.ts === +class c1 { +>c1 : c1 + + public foo(_i: number, ...restParameters) { //_i is error +>foo : (_i: number, ...restParameters: any[]) => void +>_i : number +>restParameters : any[] + + var _i = 10; // no error +>_i : number + } + public fooNoError(_i: number) { // no error +>fooNoError : (_i: number) => void +>_i : number + + var _i = 10; // no error +>_i : number + } + public f4(_i: number, ...rest); // no codegen no error +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : number +>rest : any[] + + public f4(_i: string, ...rest); // no codegen no error +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : string +>rest : any[] + + public f4(_i: any, ...rest) { // error +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : any +>rest : any[] + + var _i: any; // no error +>_i : any + } + + public f4NoError(_i: number); // no error +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : number + + public f4NoError(_i: string); // no error +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : string + + public f4NoError(_i: any) { // no error +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : any + + var _i: any; // no error +>_i : any + } +} + +declare class c2 { +>c2 : c2 + + public foo(_i: number, ...restParameters); // No error - no code gen +>foo : (_i: number, ...restParameters: any[]) => any +>_i : number +>restParameters : any[] + + public fooNoError(_i: number); // no error +>fooNoError : (_i: number) => any +>_i : number + + public f4(_i: number, ...rest); // no codegen no error +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : number +>rest : any[] + + public f4(_i: string, ...rest); // no codegen no error +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : string +>rest : any[] + + public f4NoError(_i: number); // no error +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : number + + public f4NoError(_i: string); // no error +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : string +} + +class c3 { +>c3 : c3 + + public foo(...restParameters) { +>foo : (...restParameters: any[]) => void +>restParameters : any[] + + var _i = 10; // no error +>_i : number + } + public fooNoError() { +>fooNoError : () => void + + var _i = 10; // no error +>_i : number + } +} diff --git a/tests/baselines/reference/collisionRestParameterFunction.errors.txt b/tests/baselines/reference/collisionRestParameterFunction.errors.txt deleted file mode 100644 index 88a98b9c77..0000000000 --- a/tests/baselines/reference/collisionRestParameterFunction.errors.txt +++ /dev/null @@ -1,42 +0,0 @@ -tests/cases/compiler/collisionRestParameterFunction.ts(2,13): error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. -tests/cases/compiler/collisionRestParameterFunction.ts(21,13): error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. - - -==== tests/cases/compiler/collisionRestParameterFunction.ts (2 errors) ==== - // Functions - function f1(_i: number, ...restParameters) { //_i is error - ~~~~~~~~~~ -!!! error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. - var _i = 10; // no error - } - function f1NoError(_i: number) { // no error - var _i = 10; // no error - } - - declare function f2(_i: number, ...restParameters); // no error - no code gen - declare function f2NoError(_i: number); // no error - - function f3(...restParameters) { - var _i = 10; // no error - } - function f3NoError() { - var _i = 10; // no error - } - - function f4(_i: number, ...rest); // no codegen no error - function f4(_i: string, ...rest); // no codegen no error - function f4(_i: any, ...rest) { // error - ~~~~~~~ -!!! error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. - } - - function f4NoError(_i: number); // no error - function f4NoError(_i: string); // no error - function f4NoError(_i: any) { // no error - } - - declare function f5(_i: number, ...rest); // no codegen no error - declare function f5(_i: string, ...rest); // no codegen no error - - declare function f6(_i: number); // no codegen no error - declare function f6(_i: string); // no codegen no error \ No newline at end of file diff --git a/tests/baselines/reference/collisionRestParameterFunction.js b/tests/baselines/reference/collisionRestParameterFunction.js index c81dbb0f8d..5e4bfd2e7b 100644 --- a/tests/baselines/reference/collisionRestParameterFunction.js +++ b/tests/baselines/reference/collisionRestParameterFunction.js @@ -37,8 +37,8 @@ declare function f6(_i: string); // no codegen no error // Functions function f1(_i) { var restParameters = []; - for (var _i = 1; _i < arguments.length; _i++) { - restParameters[_i - 1] = arguments[_i]; + for (var _0 = 1; _0 < arguments.length; _0++) { + restParameters[_0 - 1] = arguments[_0]; } var _i = 10; // no error } @@ -47,8 +47,8 @@ function f1NoError(_i) { } function f3() { var restParameters = []; - for (var _i = 0; _i < arguments.length; _i++) { - restParameters[_i - 0] = arguments[_i]; + for (var _0 = 0; _0 < arguments.length; _0++) { + restParameters[_0 - 0] = arguments[_0]; } var _i = 10; // no error } @@ -57,8 +57,8 @@ function f3NoError() { } function f4(_i) { var rest = []; - for (var _i = 1; _i < arguments.length; _i++) { - rest[_i - 1] = arguments[_i]; + for (var _0 = 1; _0 < arguments.length; _0++) { + rest[_0 - 1] = arguments[_0]; } } function f4NoError(_i) { diff --git a/tests/baselines/reference/collisionRestParameterFunction.types b/tests/baselines/reference/collisionRestParameterFunction.types new file mode 100644 index 0000000000..f0d8abeac9 --- /dev/null +++ b/tests/baselines/reference/collisionRestParameterFunction.types @@ -0,0 +1,88 @@ +=== tests/cases/compiler/collisionRestParameterFunction.ts === +// Functions +function f1(_i: number, ...restParameters) { //_i is error +>f1 : (_i: number, ...restParameters: any[]) => void +>_i : number +>restParameters : any[] + + var _i = 10; // no error +>_i : number +} +function f1NoError(_i: number) { // no error +>f1NoError : (_i: number) => void +>_i : number + + var _i = 10; // no error +>_i : number +} + +declare function f2(_i: number, ...restParameters); // no error - no code gen +>f2 : (_i: number, ...restParameters: any[]) => any +>_i : number +>restParameters : any[] + +declare function f2NoError(_i: number); // no error +>f2NoError : (_i: number) => any +>_i : number + +function f3(...restParameters) { +>f3 : (...restParameters: any[]) => void +>restParameters : any[] + + var _i = 10; // no error +>_i : number +} +function f3NoError() { +>f3NoError : () => void + + var _i = 10; // no error +>_i : number +} + +function f4(_i: number, ...rest); // no codegen no error +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : number +>rest : any[] + +function f4(_i: string, ...rest); // no codegen no error +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : string +>rest : any[] + +function f4(_i: any, ...rest) { // error +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : any +>rest : any[] +} + +function f4NoError(_i: number); // no error +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : number + +function f4NoError(_i: string); // no error +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : string + +function f4NoError(_i: any) { // no error +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : any +} + +declare function f5(_i: number, ...rest); // no codegen no error +>f5 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : number +>rest : any[] + +declare function f5(_i: string, ...rest); // no codegen no error +>f5 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : string +>rest : any[] + +declare function f6(_i: number); // no codegen no error +>f6 : { (_i: number): any; (_i: string): any; } +>_i : number + +declare function f6(_i: string); // no codegen no error +>f6 : { (_i: number): any; (_i: string): any; } +>_i : string + diff --git a/tests/baselines/reference/collisionRestParameterFunctionExpressions.errors.txt b/tests/baselines/reference/collisionRestParameterFunctionExpressions.errors.txt deleted file mode 100644 index c2c237f98b..0000000000 --- a/tests/baselines/reference/collisionRestParameterFunctionExpressions.errors.txt +++ /dev/null @@ -1,33 +0,0 @@ -tests/cases/compiler/collisionRestParameterFunctionExpressions.ts(2,17): error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. -tests/cases/compiler/collisionRestParameterFunctionExpressions.ts(17,17): error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. - - -==== tests/cases/compiler/collisionRestParameterFunctionExpressions.ts (2 errors) ==== - function foo() { - function f1(_i: number, ...restParameters) { //_i is error - ~~~~~~~~~~ -!!! error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. - var _i = 10; // no error - } - function f1NoError(_i: number) { // no error - var _i = 10; // no error - } - function f3(...restParameters) { - var _i = 10; // no error - } - function f3NoError() { - var _i = 10; // no error - } - - function f4(_i: number, ...rest); // no codegen no error - function f4(_i: string, ...rest); // no codegen no error - function f4(_i: any, ...rest) { // error - ~~~~~~~ -!!! error TS2397: Duplicate identifier '_i'. Compiler uses '_i' to initialize rest parameter. - } - - function f4NoError(_i: number); // no error - function f4NoError(_i: string); // no error - function f4NoError(_i: any) { // no error - } - } \ No newline at end of file diff --git a/tests/baselines/reference/collisionRestParameterFunctionExpressions.js b/tests/baselines/reference/collisionRestParameterFunctionExpressions.js index 4f1dea2b11..894854f2fb 100644 --- a/tests/baselines/reference/collisionRestParameterFunctionExpressions.js +++ b/tests/baselines/reference/collisionRestParameterFunctionExpressions.js @@ -28,8 +28,8 @@ function foo() { function foo() { function f1(_i) { var restParameters = []; - for (var _i = 1; _i < arguments.length; _i++) { - restParameters[_i - 1] = arguments[_i]; + for (var _0 = 1; _0 < arguments.length; _0++) { + restParameters[_0 - 1] = arguments[_0]; } var _i = 10; // no error } @@ -38,8 +38,8 @@ function foo() { } function f3() { var restParameters = []; - for (var _i = 0; _i < arguments.length; _i++) { - restParameters[_i - 0] = arguments[_i]; + for (var _0 = 0; _0 < arguments.length; _0++) { + restParameters[_0 - 0] = arguments[_0]; } var _i = 10; // no error } @@ -48,8 +48,8 @@ function foo() { } function f4(_i) { var rest = []; - for (var _i = 1; _i < arguments.length; _i++) { - rest[_i - 1] = arguments[_i]; + for (var _0 = 1; _0 < arguments.length; _0++) { + rest[_0 - 1] = arguments[_0]; } } function f4NoError(_i) { diff --git a/tests/baselines/reference/collisionRestParameterFunctionExpressions.types b/tests/baselines/reference/collisionRestParameterFunctionExpressions.types new file mode 100644 index 0000000000..c6c5239089 --- /dev/null +++ b/tests/baselines/reference/collisionRestParameterFunctionExpressions.types @@ -0,0 +1,62 @@ +=== tests/cases/compiler/collisionRestParameterFunctionExpressions.ts === +function foo() { +>foo : () => void + + function f1(_i: number, ...restParameters) { //_i is error +>f1 : (_i: number, ...restParameters: any[]) => void +>_i : number +>restParameters : any[] + + var _i = 10; // no error +>_i : number + } + function f1NoError(_i: number) { // no error +>f1NoError : (_i: number) => void +>_i : number + + var _i = 10; // no error +>_i : number + } + function f3(...restParameters) { +>f3 : (...restParameters: any[]) => void +>restParameters : any[] + + var _i = 10; // no error +>_i : number + } + function f3NoError() { +>f3NoError : () => void + + var _i = 10; // no error +>_i : number + } + + function f4(_i: number, ...rest); // no codegen no error +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : number +>rest : any[] + + function f4(_i: string, ...rest); // no codegen no error +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : string +>rest : any[] + + function f4(_i: any, ...rest) { // error +>f4 : { (_i: number, ...rest: any[]): any; (_i: string, ...rest: any[]): any; } +>_i : any +>rest : any[] + } + + function f4NoError(_i: number); // no error +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : number + + function f4NoError(_i: string); // no error +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : string + + function f4NoError(_i: any) { // no error +>f4NoError : { (_i: number): any; (_i: string): any; } +>_i : any + } +} diff --git a/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.errors.txt b/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.errors.txt deleted file mode 100644 index 08df732096..0000000000 --- a/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.errors.txt +++ /dev/null @@ -1,14 +0,0 @@ -tests/cases/compiler/collisionRestParameterUnderscoreIUsage.ts(5,21): error TS2398: Expression resolves to variable declaration '_i' that compiler uses to initialize rest parameter. - - -==== tests/cases/compiler/collisionRestParameterUnderscoreIUsage.ts (1 errors) ==== - declare var console: { log(msg?: string): void; }; - var _i = "This is what I'd expect to see"; - class Foo { - constructor(...args: any[]) { - console.log(_i); // This should result in error - ~~ -!!! error TS2398: Expression resolves to variable declaration '_i' that compiler uses to initialize rest parameter. - } - } - new Foo(); \ No newline at end of file diff --git a/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.js b/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.js index b8d3aaec91..4055bcd81a 100644 --- a/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.js +++ b/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.js @@ -13,8 +13,8 @@ var _i = "This is what I'd expect to see"; var Foo = (function () { function Foo() { var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i - 0] = arguments[_i]; + for (var _0 = 0; _0 < arguments.length; _0++) { + args[_0 - 0] = arguments[_0]; } console.log(_i); // This should result in error } diff --git a/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.types b/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.types new file mode 100644 index 0000000000..c700f50aca --- /dev/null +++ b/tests/baselines/reference/collisionRestParameterUnderscoreIUsage.types @@ -0,0 +1,27 @@ +=== tests/cases/compiler/collisionRestParameterUnderscoreIUsage.ts === +declare var console: { log(msg?: string): void; }; +>console : { log(msg?: string): void; } +>log : (msg?: string) => void +>msg : string + +var _i = "This is what I'd expect to see"; +>_i : string + +class Foo { +>Foo : Foo + + constructor(...args: any[]) { +>args : any[] + + console.log(_i); // This should result in error +>console.log(_i) : void +>console.log : (msg?: string) => void +>console : { log(msg?: string): void; } +>log : (msg?: string) => void +>_i : string + } +} +new Foo(); +>new Foo() : Foo +>Foo : typeof Foo +