Accepting new baselines

This commit is contained in:
Anders Hejlsberg 2014-11-28 18:33:37 -08:00
parent ec7ce72c94
commit 501a3704f9
18 changed files with 483 additions and 265 deletions

View file

@ -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
}

View file

@ -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
};

View file

@ -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
}

View file

@ -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
}

View file

@ -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
}

View file

@ -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
}

View file

@ -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
}
}

View file

@ -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
};

View file

@ -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
}
}

View file

@ -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

View file

@ -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) {

View file

@ -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

View file

@ -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
}
}

View file

@ -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) {

View file

@ -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
}
}

View file

@ -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();

View file

@ -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
}

View file

@ -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