Merge pull request #13796 from Microsoft/fix-duplicate-identifier-reporting

Fix duplicate identifier reporting in classes
This commit is contained in:
Nathan Shively-Sanders
2017-02-14 11:42:48 -08:00
committed by GitHub
4 changed files with 95 additions and 9 deletions

View File

@@ -0,0 +1,31 @@
tests/cases/compiler/classWithDuplicateIdentifier.ts(3,5): error TS2300: Duplicate identifier 'a'.
tests/cases/compiler/classWithDuplicateIdentifier.ts(6,5): error TS2300: Duplicate identifier 'b'.
tests/cases/compiler/classWithDuplicateIdentifier.ts(7,5): error TS2300: Duplicate identifier 'b'.
tests/cases/compiler/classWithDuplicateIdentifier.ts(11,5): error TS2300: Duplicate identifier 'c'.
tests/cases/compiler/classWithDuplicateIdentifier.ts(11,5): error TS2403: Subsequent variable declarations must have the same type. Variable 'c' must be of type 'number', but here has type 'string'.
==== tests/cases/compiler/classWithDuplicateIdentifier.ts (5 errors) ====
class C {
a(): number { return 0; } // error: duplicate identifier
a: number;
~
!!! error TS2300: Duplicate identifier 'a'.
}
class K {
b: number; // error: duplicate identifier
~
!!! error TS2300: Duplicate identifier 'b'.
b(): number { return 0; }
~
!!! error TS2300: Duplicate identifier 'b'.
}
class D {
c: number;
c: string;
~
!!! error TS2300: Duplicate identifier 'c'.
~
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'c' must be of type 'number', but here has type 'string'.
}

View File

@@ -0,0 +1,33 @@
//// [classWithDuplicateIdentifier.ts]
class C {
a(): number { return 0; } // error: duplicate identifier
a: number;
}
class K {
b: number; // error: duplicate identifier
b(): number { return 0; }
}
class D {
c: number;
c: string;
}
//// [classWithDuplicateIdentifier.js]
var C = (function () {
function C() {
}
C.prototype.a = function () { return 0; }; // error: duplicate identifier
return C;
}());
var K = (function () {
function K() {
}
K.prototype.b = function () { return 0; };
return K;
}());
var D = (function () {
function D() {
}
return D;
}());

View File

@@ -0,0 +1,12 @@
class C {
a(): number { return 0; } // error: duplicate identifier
a: number;
}
class K {
b: number; // error: duplicate identifier
b(): number { return 0; }
}
class D {
c: number;
c: string;
}