updated baselines

This commit is contained in:
Arthur Ozga 2015-06-02 15:26:43 -07:00
parent e4bc29e9a0
commit b293da4f9b
24 changed files with 492 additions and 170 deletions

View file

@ -1,5 +1,5 @@
tests/cases/compiler/augmentedTypesClass2.ts(4,7): error TS2300: Duplicate identifier 'c11'.
tests/cases/compiler/augmentedTypesClass2.ts(10,11): error TS2300: Duplicate identifier 'c11'.
tests/cases/compiler/augmentedTypesClass2.ts(4,7): error TS2506: A non-ambient class cannot be merged with an interface.
tests/cases/compiler/augmentedTypesClass2.ts(10,11): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/compiler/augmentedTypesClass2.ts(16,7): error TS2300: Duplicate identifier 'c33'.
tests/cases/compiler/augmentedTypesClass2.ts(21,6): error TS2300: Duplicate identifier 'c33'.
@ -10,7 +10,7 @@ tests/cases/compiler/augmentedTypesClass2.ts(21,6): error TS2300: Duplicate iden
// class then interface
class c11 { // error
~~~
!!! error TS2300: Duplicate identifier 'c11'.
!!! error TS2506: A non-ambient class cannot be merged with an interface.
foo() {
return 1;
}
@ -18,7 +18,7 @@ tests/cases/compiler/augmentedTypesClass2.ts(21,6): error TS2300: Duplicate iden
interface c11 { // error
~~~
!!! error TS2300: Duplicate identifier 'c11'.
!!! error TS2507: An interface cannot merge with a non-ambient class.
bar(): void;
}

View file

@ -1,5 +1,5 @@
tests/cases/compiler/augmentedTypesInterface.ts(12,11): error TS2300: Duplicate identifier 'i2'.
tests/cases/compiler/augmentedTypesInterface.ts(16,7): error TS2300: Duplicate identifier 'i2'.
tests/cases/compiler/augmentedTypesInterface.ts(12,11): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/compiler/augmentedTypesInterface.ts(16,7): error TS2506: A non-ambient class cannot be merged with an interface.
tests/cases/compiler/augmentedTypesInterface.ts(23,11): error TS2300: Duplicate identifier 'i3'.
tests/cases/compiler/augmentedTypesInterface.ts(26,6): error TS2300: Duplicate identifier 'i3'.
@ -18,13 +18,13 @@ tests/cases/compiler/augmentedTypesInterface.ts(26,6): error TS2300: Duplicate i
// interface then class
interface i2 { // error
~~
!!! error TS2300: Duplicate identifier 'i2'.
!!! error TS2507: An interface cannot merge with a non-ambient class.
foo(): void;
}
class i2 { // error
~~
!!! error TS2300: Duplicate identifier 'i2'.
!!! error TS2506: A non-ambient class cannot be merged with an interface.
bar() {
return 1;
}

View file

@ -1,11 +0,0 @@
tests/cases/compiler/class1.ts(1,11): error TS2300: Duplicate identifier 'foo'.
tests/cases/compiler/class1.ts(2,7): error TS2300: Duplicate identifier 'foo'.
==== tests/cases/compiler/class1.ts (2 errors) ====
interface foo{ } // error
~~~
!!! error TS2300: Duplicate identifier 'foo'.
class foo{ } // error
~~~
!!! error TS2300: Duplicate identifier 'foo'.

View file

@ -1,10 +0,0 @@
//// [class1.ts]
interface foo{ } // error
class foo{ } // error
//// [class1.js]
var foo = (function () {
function foo() {
}
return foo;
})(); // error

View file

@ -1,11 +0,0 @@
tests/cases/compiler/classAndInterface1.ts(1,8): error TS2300: Duplicate identifier 'cli'.
tests/cases/compiler/classAndInterface1.ts(2,11): error TS2300: Duplicate identifier 'cli'.
==== tests/cases/compiler/classAndInterface1.ts (2 errors) ====
class cli { } // error
~~~
!!! error TS2300: Duplicate identifier 'cli'.
interface cli { } // error
~~~
!!! error TS2300: Duplicate identifier 'cli'.

View file

@ -1,10 +0,0 @@
//// [classAndInterface1.ts]
class cli { } // error
interface cli { } // error
//// [classAndInterface1.js]
var cli = (function () {
function cli() {
}
return cli;
})(); // error

View file

@ -0,0 +1,46 @@
tests/cases/conformance/classes/classDeclarations/classAndInterfaceMerge.d.ts(12,15): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/conformance/classes/classDeclarations/classAndInterfaceMerge.d.ts(14,11): error TS2506: A non-ambient class cannot be merged with an interface.
tests/cases/conformance/classes/classDeclarations/classAndInterfaceMerge.d.ts(16,15): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/conformance/classes/classDeclarations/classAndInterfaceMerge.d.ts(18,15): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/conformance/classes/classDeclarations/classAndInterfaceMerge.d.ts(20,18): error TS2506: A non-ambient class cannot be merged with an interface.
tests/cases/conformance/classes/classDeclarations/classAndInterfaceMerge.d.ts(24,22): error TS2507: An interface cannot merge with a non-ambient class.
==== tests/cases/conformance/classes/classDeclarations/classAndInterfaceMerge.d.ts (6 errors) ====
interface C { }
declare class C { }
interface C { }
interface C { }
declare module M {
interface C1 { }
~~
!!! error TS2507: An interface cannot merge with a non-ambient class.
class C1 { }
~~
!!! error TS2506: A non-ambient class cannot be merged with an interface.
interface C1 { }
~~
!!! error TS2507: An interface cannot merge with a non-ambient class.
interface C1 { }
~~
!!! error TS2507: An interface cannot merge with a non-ambient class.
export class C2 { }
~~
!!! error TS2506: A non-ambient class cannot be merged with an interface.
}
declare module M {
export interface C2 { }
~~
!!! error TS2507: An interface cannot merge with a non-ambient class.
}

View file

@ -1,27 +1,39 @@
tests/cases/conformance/classes/classDeclarations/classAndInterfaceWithSameName.ts(1,7): error TS2300: Duplicate identifier 'C'.
tests/cases/conformance/classes/classDeclarations/classAndInterfaceWithSameName.ts(2,11): error TS2300: Duplicate identifier 'C'.
tests/cases/conformance/classes/classDeclarations/classAndInterfaceWithSameName.ts(5,11): error TS2300: Duplicate identifier 'D'.
tests/cases/conformance/classes/classDeclarations/classAndInterfaceWithSameName.ts(9,15): error TS2300: Duplicate identifier 'D'.
tests/cases/conformance/classes/classDeclarations/classAndInterfaceWithSameName.ts(1,7): error TS2506: A non-ambient class cannot be merged with an interface.
tests/cases/conformance/classes/classDeclarations/classAndInterfaceWithSameName.ts(1,11): error TS2300: Duplicate identifier 'foo'.
tests/cases/conformance/classes/classDeclarations/classAndInterfaceWithSameName.ts(2,11): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/conformance/classes/classDeclarations/classAndInterfaceWithSameName.ts(2,15): error TS2300: Duplicate identifier 'foo'.
tests/cases/conformance/classes/classDeclarations/classAndInterfaceWithSameName.ts(5,11): error TS2506: A non-ambient class cannot be merged with an interface.
tests/cases/conformance/classes/classDeclarations/classAndInterfaceWithSameName.ts(6,9): error TS2300: Duplicate identifier 'bar'.
tests/cases/conformance/classes/classDeclarations/classAndInterfaceWithSameName.ts(9,15): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/conformance/classes/classDeclarations/classAndInterfaceWithSameName.ts(10,9): error TS2300: Duplicate identifier 'bar'.
==== tests/cases/conformance/classes/classDeclarations/classAndInterfaceWithSameName.ts (4 errors) ====
==== tests/cases/conformance/classes/classDeclarations/classAndInterfaceWithSameName.ts (8 errors) ====
class C { foo: string; }
~
!!! error TS2300: Duplicate identifier 'C'.
!!! error TS2506: A non-ambient class cannot be merged with an interface.
~~~
!!! error TS2300: Duplicate identifier 'foo'.
interface C { foo: string; } // error
~
!!! error TS2300: Duplicate identifier 'C'.
!!! error TS2507: An interface cannot merge with a non-ambient class.
~~~
!!! error TS2300: Duplicate identifier 'foo'.
module M {
class D {
~
!!! error TS2300: Duplicate identifier 'D'.
!!! error TS2506: A non-ambient class cannot be merged with an interface.
bar: string;
~~~
!!! error TS2300: Duplicate identifier 'bar'.
}
interface D { // error
~
!!! error TS2300: Duplicate identifier 'D'.
!!! error TS2507: An interface cannot merge with a non-ambient class.
bar: string;
~~~
!!! error TS2300: Duplicate identifier 'bar'.
}
}

View file

@ -1,50 +1,50 @@
tests/cases/compiler/clinterfaces.ts(2,11): error TS2300: Duplicate identifier 'C'.
tests/cases/compiler/clinterfaces.ts(3,15): error TS2300: Duplicate identifier 'C'.
tests/cases/compiler/clinterfaces.ts(4,15): error TS2300: Duplicate identifier 'D'.
tests/cases/compiler/clinterfaces.ts(5,11): error TS2300: Duplicate identifier 'D'.
tests/cases/compiler/clinterfaces.ts(8,11): error TS2300: Duplicate identifier 'Foo'.
tests/cases/compiler/clinterfaces.ts(12,7): error TS2300: Duplicate identifier 'Foo'.
tests/cases/compiler/clinterfaces.ts(16,7): error TS2300: Duplicate identifier 'Bar'.
tests/cases/compiler/clinterfaces.ts(20,11): error TS2300: Duplicate identifier 'Bar'.
tests/cases/compiler/clinterfaces.ts(2,11): error TS2506: A non-ambient class cannot be merged with an interface.
tests/cases/compiler/clinterfaces.ts(3,15): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/compiler/clinterfaces.ts(4,15): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/compiler/clinterfaces.ts(5,11): error TS2506: A non-ambient class cannot be merged with an interface.
tests/cases/compiler/clinterfaces.ts(8,11): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/compiler/clinterfaces.ts(12,7): error TS2506: A non-ambient class cannot be merged with an interface.
tests/cases/compiler/clinterfaces.ts(16,7): error TS2506: A non-ambient class cannot be merged with an interface.
tests/cases/compiler/clinterfaces.ts(20,11): error TS2507: An interface cannot merge with a non-ambient class.
==== tests/cases/compiler/clinterfaces.ts (8 errors) ====
module M {
class C { }
~
!!! error TS2300: Duplicate identifier 'C'.
!!! error TS2506: A non-ambient class cannot be merged with an interface.
interface C { }
~
!!! error TS2300: Duplicate identifier 'C'.
!!! error TS2507: An interface cannot merge with a non-ambient class.
interface D { }
~
!!! error TS2300: Duplicate identifier 'D'.
!!! error TS2507: An interface cannot merge with a non-ambient class.
class D { }
~
!!! error TS2300: Duplicate identifier 'D'.
!!! error TS2506: A non-ambient class cannot be merged with an interface.
}
interface Foo<T> {
~~~
!!! error TS2300: Duplicate identifier 'Foo'.
!!! error TS2507: An interface cannot merge with a non-ambient class.
a: string;
}
class Foo<T>{
~~~
!!! error TS2300: Duplicate identifier 'Foo'.
!!! error TS2506: A non-ambient class cannot be merged with an interface.
b: number;
}
class Bar<T>{
~~~
!!! error TS2300: Duplicate identifier 'Bar'.
!!! error TS2506: A non-ambient class cannot be merged with an interface.
b: number;
}
interface Bar<T> {
~~~
!!! error TS2300: Duplicate identifier 'Bar'.
!!! error TS2507: An interface cannot merge with a non-ambient class.
a: string;
}

View file

@ -49,3 +49,4 @@ var Bar = (function () {
}
return Bar;
})();
module.exports = Foo;

View file

@ -1,17 +1,17 @@
tests/cases/compiler/declInput.ts(1,11): error TS2300: Duplicate identifier 'bar'.
tests/cases/compiler/declInput.ts(5,7): error TS2300: Duplicate identifier 'bar'.
tests/cases/compiler/declInput.ts(1,11): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/compiler/declInput.ts(5,7): error TS2506: A non-ambient class cannot be merged with an interface.
==== tests/cases/compiler/declInput.ts (2 errors) ====
interface bar {
~~~
!!! error TS2300: Duplicate identifier 'bar'.
!!! error TS2507: An interface cannot merge with a non-ambient class.
}
class bar {
~~~
!!! error TS2300: Duplicate identifier 'bar'.
!!! error TS2506: A non-ambient class cannot be merged with an interface.
public f() { return ''; }
public g() { return {a: <bar>null, b: undefined, c: void 4 }; }
public h(x = 4, y = null, z = '') { x++; }

View file

@ -1,11 +1,15 @@
tests/cases/conformance/classes/classDeclarations/declaredClassMergedwithSelf.ts(1,15): error TS2300: Duplicate identifier 'C1'.
tests/cases/conformance/classes/classDeclarations/declaredClassMergedwithSelf.ts(3,15): error TS2300: Duplicate identifier 'C1'.
tests/cases/conformance/classes/classDeclarations/declaredClassMergedwithSelf.ts(5,15): error TS2300: Duplicate identifier 'C2'.
tests/cases/conformance/classes/classDeclarations/declaredClassMergedwithSelf.ts(7,11): error TS2300: Duplicate identifier 'C2'.
tests/cases/conformance/classes/classDeclarations/declaredClassMergedwithSelf.ts(9,15): error TS2300: Duplicate identifier 'C2'.
tests/cases/conformance/classes/classDeclarations/file1.ts(3,15): error TS2300: Duplicate identifier 'C1'.
tests/cases/conformance/classes/classDeclarations/file1.ts(5,15): error TS2300: Duplicate identifier 'C1'.
tests/cases/conformance/classes/classDeclarations/file1.ts(7,15): error TS2300: Duplicate identifier 'C2'.
tests/cases/conformance/classes/classDeclarations/file1.ts(9,11): error TS2300: Duplicate identifier 'C2'.
tests/cases/conformance/classes/classDeclarations/file1.ts(11,15): error TS2300: Duplicate identifier 'C2'.
tests/cases/conformance/classes/classDeclarations/file2.ts(2,15): error TS2300: Duplicate identifier 'C3'.
tests/cases/conformance/classes/classDeclarations/file3.ts(2,15): error TS2300: Duplicate identifier 'C3'.
==== tests/cases/conformance/classes/classDeclarations/declaredClassMergedwithSelf.ts (5 errors) ====
==== tests/cases/conformance/classes/classDeclarations/file1.ts (5 errors) ====
declare class C1 {}
~~
!!! error TS2300: Duplicate identifier 'C1'.
@ -24,4 +28,16 @@ tests/cases/conformance/classes/classDeclarations/declaredClassMergedwithSelf.ts
declare class C2 {}
~~
!!! error TS2300: Duplicate identifier 'C2'.
!!! error TS2300: Duplicate identifier 'C2'.
==== tests/cases/conformance/classes/classDeclarations/file2.ts (1 errors) ====
declare class C3 { }
~~
!!! error TS2300: Duplicate identifier 'C3'.
==== tests/cases/conformance/classes/classDeclarations/file3.ts (1 errors) ====
declare class C3 { }
~~
!!! error TS2300: Duplicate identifier 'C3'.

View file

@ -1,4 +1,8 @@
//// [declaredClassMergedwithSelf.ts]
//// [tests/cases/conformance/classes/classDeclarations/declaredClassMergedwithSelf.ts] ////
//// [file1.ts]
declare class C1 {}
declare class C1 {}
@ -7,6 +11,16 @@ declare class C2 {}
interface C2 {}
declare class C2 {}
declare class C2 {}
//// [declaredClassMergedwithSelf.js]
//// [file2.ts]
declare class C3 { }
//// [file3.ts]
declare class C3 { }
//// [file1.js]
//// [file2.js]
//// [file3.js]

View file

@ -1,5 +1,5 @@
tests/cases/compiler/duplicateIdentifiersAcrossContainerBoundaries.ts(2,22): error TS2300: Duplicate identifier 'I'.
tests/cases/compiler/duplicateIdentifiersAcrossContainerBoundaries.ts(5,18): error TS2300: Duplicate identifier 'I'.
tests/cases/compiler/duplicateIdentifiersAcrossContainerBoundaries.ts(2,22): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/compiler/duplicateIdentifiersAcrossContainerBoundaries.ts(5,18): error TS2506: A non-ambient class cannot be merged with an interface.
tests/cases/compiler/duplicateIdentifiersAcrossContainerBoundaries.ts(9,21): error TS2300: Duplicate identifier 'f'.
tests/cases/compiler/duplicateIdentifiersAcrossContainerBoundaries.ts(12,18): error TS2300: Duplicate identifier 'f'.
tests/cases/compiler/duplicateIdentifiersAcrossContainerBoundaries.ts(37,12): error TS2300: Duplicate identifier 'x'.
@ -10,12 +10,12 @@ tests/cases/compiler/duplicateIdentifiersAcrossContainerBoundaries.ts(41,16): er
module M {
export interface I { }
~
!!! error TS2300: Duplicate identifier 'I'.
!!! error TS2507: An interface cannot merge with a non-ambient class.
}
module M {
export class I { } // error
~
!!! error TS2300: Duplicate identifier 'I'.
!!! error TS2506: A non-ambient class cannot be merged with an interface.
}
module M {

View file

@ -0,0 +1,67 @@
tests/cases/compiler/file1.ts(1,11): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/compiler/file1.ts(2,7): error TS2506: A non-ambient class cannot be merged with an interface.
tests/cases/compiler/file1.ts(3,7): error TS2300: Duplicate identifier 'C2'.
tests/cases/compiler/file1.ts(4,10): error TS2300: Duplicate identifier 'f'.
tests/cases/compiler/file1.ts(8,12): error TS2300: Duplicate identifier 'x'.
tests/cases/compiler/file2.ts(1,7): error TS2506: A non-ambient class cannot be merged with an interface.
tests/cases/compiler/file2.ts(2,11): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/compiler/file2.ts(3,10): error TS2300: Duplicate identifier 'C2'.
tests/cases/compiler/file2.ts(4,7): error TS2300: Duplicate identifier 'f'.
tests/cases/compiler/file2.ts(7,8): error TS2433: A namespace declaration cannot be in a different file from a class or function with which it is merged
tests/cases/compiler/file2.ts(8,16): error TS2300: Duplicate identifier 'x'.
==== tests/cases/compiler/file1.ts (5 errors) ====
interface I { }
~
!!! error TS2507: An interface cannot merge with a non-ambient class.
class C1 { }
~~
!!! error TS2506: A non-ambient class cannot be merged with an interface.
class C2 { }
~~
!!! error TS2300: Duplicate identifier 'C2'.
function f() { }
~
!!! error TS2300: Duplicate identifier 'f'.
var v = 3;
class Foo {
static x: number;
~
!!! error TS2300: Duplicate identifier 'x'.
}
module N {
export module F {
var t;
}
}
==== tests/cases/compiler/file2.ts (6 errors) ====
class I { } // error -- cannot merge interface with non-ambient class
~
!!! error TS2506: A non-ambient class cannot be merged with an interface.
interface C1 { } // error -- cannot merge interface with non-ambient class
~~
!!! error TS2507: An interface cannot merge with a non-ambient class.
function C2() { } // error -- cannot merge function with non-ambient class
~~
!!! error TS2300: Duplicate identifier 'C2'.
class f { } // error -- cannot merge function with non-ambient class
~
!!! error TS2300: Duplicate identifier 'f'.
var v = 3;
module Foo {
~~~
!!! error TS2433: A namespace declaration cannot be in a different file from a class or function with which it is merged
export var x: number; // error for redeclaring var in a different parent
~
!!! error TS2300: Duplicate identifier 'x'.
}
declare module N {
export function F(); // no error because function is ambient
}

View file

@ -0,0 +1,76 @@
//// [tests/cases/compiler/duplicateIdentifiersAcrossFileBoundaries.ts] ////
//// [file1.ts]
interface I { }
class C1 { }
class C2 { }
function f() { }
var v = 3;
class Foo {
static x: number;
}
module N {
export module F {
var t;
}
}
//// [file2.ts]
class I { } // error -- cannot merge interface with non-ambient class
interface C1 { } // error -- cannot merge interface with non-ambient class
function C2() { } // error -- cannot merge function with non-ambient class
class f { } // error -- cannot merge function with non-ambient class
var v = 3;
module Foo {
export var x: number; // error for redeclaring var in a different parent
}
declare module N {
export function F(); // no error because function is ambient
}
//// [file1.js]
var C1 = (function () {
function C1() {
}
return C1;
})();
var C2 = (function () {
function C2() {
}
return C2;
})();
function f() { }
var v = 3;
var Foo = (function () {
function Foo() {
}
return Foo;
})();
var N;
(function (N) {
var F;
(function (F) {
var t;
})(F = N.F || (N.F = {}));
})(N || (N = {}));
//// [file2.js]
var I = (function () {
function I() {
}
return I;
})(); // error -- cannot merge interface with non-ambient class
function C2() { } // error -- cannot merge function with non-ambient class
var f = (function () {
function f() {
}
return f;
})(); // error -- cannot merge function with non-ambient class
var v = 3;
var Foo;
(function (Foo) {
})(Foo || (Foo = {}));

View file

@ -1,5 +1,5 @@
tests/cases/compiler/interfaceDeclaration2.ts(4,11): error TS2300: Duplicate identifier 'I2'.
tests/cases/compiler/interfaceDeclaration2.ts(5,7): error TS2300: Duplicate identifier 'I2'.
tests/cases/compiler/interfaceDeclaration2.ts(4,11): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/compiler/interfaceDeclaration2.ts(5,7): error TS2506: A non-ambient class cannot be merged with an interface.
==== tests/cases/compiler/interfaceDeclaration2.ts (2 errors) ====
@ -8,10 +8,10 @@ tests/cases/compiler/interfaceDeclaration2.ts(5,7): error TS2300: Duplicate iden
interface I2 { }
~~
!!! error TS2300: Duplicate identifier 'I2'.
!!! error TS2507: An interface cannot merge with a non-ambient class.
class I2 { }
~~
!!! error TS2300: Duplicate identifier 'I2'.
!!! error TS2506: A non-ambient class cannot be merged with an interface.
interface I3 { }
function I3() { }

View file

@ -0,0 +1,67 @@
tests/cases/conformance/classes/classDeclarations/file1.ts(11,7): error TS2506: A non-ambient class cannot be merged with an interface.
tests/cases/conformance/classes/classDeclarations/file1.ts(13,11): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/conformance/classes/classDeclarations/file1.ts(15,11): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/conformance/classes/classDeclarations/file1.ts(17,7): error TS2506: A non-ambient class cannot be merged with an interface.
==== tests/cases/conformance/classes/classDeclarations/file1.ts (4 errors) ====
declare class C1 { }
interface C1 { }
interface C2 { }
declare class C2 { }
class C3 { } // error -- cannot merge non-ambient class and interface
~~
!!! error TS2506: A non-ambient class cannot be merged with an interface.
interface C3 { } // error -- cannot merge non-ambient class and interface
~~
!!! error TS2507: An interface cannot merge with a non-ambient class.
interface C4 { } // error -- cannot merge non-ambient class and interface
~~
!!! error TS2507: An interface cannot merge with a non-ambient class.
class C4 { } // error -- cannot merge non-ambient class and interface
~~
!!! error TS2506: A non-ambient class cannot be merged with an interface.
interface C5 {
x1: number;
}
declare class C5 {
x2: number;
}
interface C5 {
x3: number;
}
interface C5 {
x4: number;
}
// checks if properties actually were merged
var c5 : C5;
c5.x1;
c5.x2;
c5.x3;
c5.x4;
==== tests/cases/conformance/classes/classDeclarations/file2.ts (0 errors) ====
declare class C6 { }
interface C7 { }
==== tests/cases/conformance/classes/classDeclarations/file3.ts (0 errors) ====
interface C6 { }
declare class C7 { }

View file

@ -1,14 +1,117 @@
//// [mergedClassInterface.ts]
declare class C1 {}
interface C1 {}
interface C2 {}
declare class C2 {}
interface C2 {}
interface C2 {}
//// [tests/cases/conformance/classes/classDeclarations/mergedClassInterface.ts] ////
//// [mergedClassInterface.js]
//// [file1.ts]
declare class C1 { }
interface C1 { }
interface C2 { }
declare class C2 { }
class C3 { } // error -- cannot merge non-ambient class and interface
interface C3 { } // error -- cannot merge non-ambient class and interface
interface C4 { } // error -- cannot merge non-ambient class and interface
class C4 { } // error -- cannot merge non-ambient class and interface
interface C5 {
x1: number;
}
declare class C5 {
x2: number;
}
interface C5 {
x3: number;
}
interface C5 {
x4: number;
}
// checks if properties actually were merged
var c5 : C5;
c5.x1;
c5.x2;
c5.x3;
c5.x4;
//// [file2.ts]
declare class C6 { }
interface C7 { }
//// [file3.ts]
interface C6 { }
declare class C7 { }
//// [file1.js]
var C3 = (function () {
function C3() {
}
return C3;
})(); // error -- cannot merge non-ambient class and interface
var C4 = (function () {
function C4() {
}
return C4;
})(); // error -- cannot merge non-ambient class and interface
// checks if properties actually were merged
var c5;
c5.x1;
c5.x2;
c5.x3;
c5.x4;
//// [file2.js]
//// [file3.js]
//// [file1.d.ts]
declare class C1 {
}
interface C1 {
}
interface C2 {
}
declare class C2 {
}
declare class C3 {
}
interface C3 {
}
interface C4 {
}
declare class C4 {
}
interface C5 {
x1: number;
}
declare class C5 {
x2: number;
}
interface C5 {
x3: number;
}
interface C5 {
x4: number;
}
declare var c5: C5;
//// [file2.d.ts]
declare class C6 {
}
interface C7 {
}
//// [file3.d.ts]
interface C6 {
}
declare class C7 {
}

View file

@ -1,19 +0,0 @@
=== tests/cases/conformance/classes/classDeclarations/mergedClassInterface.ts ===
declare class C1 {}
>C1 : Symbol(C1, Decl(mergedClassInterface.ts, 0, 0), Decl(mergedClassInterface.ts, 0, 19))
interface C1 {}
>C1 : Symbol(C1, Decl(mergedClassInterface.ts, 0, 0), Decl(mergedClassInterface.ts, 0, 19))
interface C2 {}
>C2 : Symbol(C2, Decl(mergedClassInterface.ts, 2, 15), Decl(mergedClassInterface.ts, 4, 15), Decl(mergedClassInterface.ts, 6, 19), Decl(mergedClassInterface.ts, 8, 15))
declare class C2 {}
>C2 : Symbol(C2, Decl(mergedClassInterface.ts, 2, 15), Decl(mergedClassInterface.ts, 4, 15), Decl(mergedClassInterface.ts, 6, 19), Decl(mergedClassInterface.ts, 8, 15))
interface C2 {}
>C2 : Symbol(C2, Decl(mergedClassInterface.ts, 2, 15), Decl(mergedClassInterface.ts, 4, 15), Decl(mergedClassInterface.ts, 6, 19), Decl(mergedClassInterface.ts, 8, 15))
interface C2 {}
>C2 : Symbol(C2, Decl(mergedClassInterface.ts, 2, 15), Decl(mergedClassInterface.ts, 4, 15), Decl(mergedClassInterface.ts, 6, 19), Decl(mergedClassInterface.ts, 8, 15))

View file

@ -1,19 +0,0 @@
=== tests/cases/conformance/classes/classDeclarations/mergedClassInterface.ts ===
declare class C1 {}
>C1 : C1
interface C1 {}
>C1 : C1
interface C2 {}
>C2 : C2
declare class C2 {}
>C2 : C2
interface C2 {}
>C2 : C2
interface C2 {}
>C2 : C2

View file

@ -11,10 +11,10 @@ tests/cases/compiler/nameCollisions.ts(33,11): error TS2300: Duplicate identifie
tests/cases/compiler/nameCollisions.ts(34,14): error TS2300: Duplicate identifier 'C'.
tests/cases/compiler/nameCollisions.ts(36,14): error TS2300: Duplicate identifier 'C2'.
tests/cases/compiler/nameCollisions.ts(37,11): error TS2300: Duplicate identifier 'C2'.
tests/cases/compiler/nameCollisions.ts(42,11): error TS2300: Duplicate identifier 'cli'.
tests/cases/compiler/nameCollisions.ts(43,15): error TS2300: Duplicate identifier 'cli'.
tests/cases/compiler/nameCollisions.ts(45,15): error TS2300: Duplicate identifier 'cli2'.
tests/cases/compiler/nameCollisions.ts(46,11): error TS2300: Duplicate identifier 'cli2'.
tests/cases/compiler/nameCollisions.ts(42,11): error TS2506: A non-ambient class cannot be merged with an interface.
tests/cases/compiler/nameCollisions.ts(43,15): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/compiler/nameCollisions.ts(45,15): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/compiler/nameCollisions.ts(46,11): error TS2506: A non-ambient class cannot be merged with an interface.
==== tests/cases/compiler/nameCollisions.ts (17 errors) ====
@ -87,15 +87,15 @@ tests/cases/compiler/nameCollisions.ts(46,11): error TS2300: Duplicate identifie
class cli { }
~~~
!!! error TS2300: Duplicate identifier 'cli'.
!!! error TS2506: A non-ambient class cannot be merged with an interface.
interface cli { } // error
~~~
!!! error TS2300: Duplicate identifier 'cli'.
!!! error TS2507: An interface cannot merge with a non-ambient class.
interface cli2 { }
~~~~
!!! error TS2300: Duplicate identifier 'cli2'.
!!! error TS2507: An interface cannot merge with a non-ambient class.
class cli2 { } // error
~~~~
!!! error TS2300: Duplicate identifier 'cli2'.
!!! error TS2506: A non-ambient class cannot be merged with an interface.
}

View file

@ -1,14 +1,14 @@
lib.d.ts(521,11): error TS2300: Duplicate identifier 'TemplateStringsArray'.
tests/cases/compiler/templateStringsArrayTypeDefinedInES5Mode.ts(2,7): error TS2300: Duplicate identifier 'TemplateStringsArray'.
tests/cases/compiler/templateStringsArrayTypeDefinedInES5Mode.ts(8,3): error TS2345: Argument of type '{ [x: number]: undefined; }' is not assignable to parameter of type 'TemplateStringsArray'.
Property 'raw' is missing in type '{ [x: number]: undefined; }'.
lib.d.ts(521,11): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/compiler/templateStringsArrayTypeDefinedInES5Mode.ts(2,7): error TS2506: A non-ambient class cannot be merged with an interface.
tests/cases/compiler/templateStringsArrayTypeDefinedInES5Mode.ts(8,3): error TS2345: Argument of type '{}' is not assignable to parameter of type 'TemplateStringsArray'.
Property 'raw' is missing in type '{}'.
==== tests/cases/compiler/templateStringsArrayTypeDefinedInES5Mode.ts (2 errors) ====
class TemplateStringsArray {
~~~~~~~~~~~~~~~~~~~~
!!! error TS2300: Duplicate identifier 'TemplateStringsArray'.
!!! error TS2506: A non-ambient class cannot be merged with an interface.
}
function f(x: TemplateStringsArray, y: number, z: number) {
@ -16,7 +16,7 @@ tests/cases/compiler/templateStringsArrayTypeDefinedInES5Mode.ts(8,3): error TS2
f({}, 10, 10);
~~
!!! error TS2345: Argument of type '{ [x: number]: undefined; }' is not assignable to parameter of type 'TemplateStringsArray'.
!!! error TS2345: Property 'raw' is missing in type '{ [x: number]: undefined; }'.
!!! error TS2345: Argument of type '{}' is not assignable to parameter of type 'TemplateStringsArray'.
!!! error TS2345: Property 'raw' is missing in type '{}'.
f `abcdef${ 1234 }${ 5678 }ghijkl`;

View file

@ -1,14 +1,14 @@
lib.d.ts(521,11): error TS2300: Duplicate identifier 'TemplateStringsArray'.
tests/cases/compiler/templateStringsArrayTypeRedefinedInES6Mode.ts(2,7): error TS2300: Duplicate identifier 'TemplateStringsArray'.
tests/cases/compiler/templateStringsArrayTypeRedefinedInES6Mode.ts(8,3): error TS2345: Argument of type '{ [x: number]: undefined; }' is not assignable to parameter of type 'TemplateStringsArray'.
Property 'raw' is missing in type '{ [x: number]: undefined; }'.
lib.d.ts(521,11): error TS2507: An interface cannot merge with a non-ambient class.
tests/cases/compiler/templateStringsArrayTypeRedefinedInES6Mode.ts(2,7): error TS2506: A non-ambient class cannot be merged with an interface.
tests/cases/compiler/templateStringsArrayTypeRedefinedInES6Mode.ts(8,3): error TS2345: Argument of type '{}' is not assignable to parameter of type 'TemplateStringsArray'.
Property 'raw' is missing in type '{}'.
==== tests/cases/compiler/templateStringsArrayTypeRedefinedInES6Mode.ts (2 errors) ====
class TemplateStringsArray {
~~~~~~~~~~~~~~~~~~~~
!!! error TS2300: Duplicate identifier 'TemplateStringsArray'.
!!! error TS2506: A non-ambient class cannot be merged with an interface.
}
function f(x: TemplateStringsArray, y: number, z: number) {
@ -16,7 +16,7 @@ tests/cases/compiler/templateStringsArrayTypeRedefinedInES6Mode.ts(8,3): error T
f({}, 10, 10);
~~
!!! error TS2345: Argument of type '{ [x: number]: undefined; }' is not assignable to parameter of type 'TemplateStringsArray'.
!!! error TS2345: Property 'raw' is missing in type '{ [x: number]: undefined; }'.
!!! error TS2345: Argument of type '{}' is not assignable to parameter of type 'TemplateStringsArray'.
!!! error TS2345: Property 'raw' is missing in type '{}'.
f `abcdef${ 1234 }${ 5678 }ghijkl`;