Harness now prints category and code when running tests.

This commit is contained in:
Daniel Rosenwasser
2014-09-11 16:11:08 -07:00
parent 2ba3ae9225
commit ee86f8b711
2236 changed files with 14368 additions and 14368 deletions
+3 -3
View File
@@ -820,13 +820,13 @@ module Harness {
.split('\n')
.map(s => s.length > 0 && s.charAt(s.length - 1) === '\r' ? s.substr(0, s.length - 1) : s)
.filter(s => s.length > 0)
.map(s => '!!! ' + s);
.map(s => '!!! ' + error.category + " TS" + error.code + ": " + s);
errLines.forEach(e => outputLines.push(e));
totalErrorsReported++;
}
// Report glovbal errors:
// Report global errors:
var globalErrors = diagnostics.filter(err => !err.filename);
globalErrors.forEach(err => outputErrorText(err));
@@ -917,7 +917,7 @@ module Harness {
export function recreate(options?: { useMinimalDefaultLib: boolean; noImplicitAny: boolean; }) {
}
/** The harness' compiler instance used when tests are actually run. Reseting or changing settings of this compiler instance must be done within a testcase (i.e., describe/it) */
/** The harness' compiler instance used when tests are actually run. Reseting or changing settings of this compiler instance must be done within a test case (i.e., describe/it) */
var harnessCompiler: HarnessCompiler;
/** Returns the singleton harness compiler instance for generating and running tests.
@@ -1,6 +1,6 @@
==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ArrowFunctions/ArrowFunction1.ts (1 errors) ====
var v = (a: ) => {
~
!!! Type expected.
!!! error TS1110: Type expected.
};
@@ -1,8 +1,8 @@
==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ArrowFunctions/ArrowFunction2.ts (2 errors) ====
var v = (a: b,) => {
~
!!! Trailing comma not allowed.
!!! error TS1009: Trailing comma not allowed.
~
!!! Cannot find name 'b'.
!!! error TS2304: Cannot find name 'b'.
};
@@ -1,10 +1,10 @@
==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ArrowFunctions/ArrowFunction3.ts (3 errors) ====
var v = (a): => {
~
!!! ',' expected.
!!! error TS1005: ',' expected.
~~
!!! ';' expected.
!!! error TS1005: ';' expected.
~
!!! Cannot find name 'a'.
!!! error TS2304: Cannot find name 'a'.
};
@@ -1,4 +1,4 @@
==== tests/cases/compiler/ArrowFunctionExpression1.ts (1 errors) ====
var v = (public x: string) => { };
~~~~~~~~~~~~~~~~
!!! A parameter property is only allowed in a constructor implementation.
!!! error TS2369: A parameter property is only allowed in a constructor implementation.
@@ -10,7 +10,7 @@
module clodule1 {
function f(x: T) { }
~
!!! Cannot find name 'T'.
!!! error TS2304: Cannot find name 'T'.
}
class clodule2<T>{
@@ -22,11 +22,11 @@
module clodule2 {
var x: T;
~
!!! Cannot find name 'T'.
!!! error TS2304: Cannot find name 'T'.
class D<U extends T>{
~
!!! Cannot find name 'T'.
!!! error TS2304: Cannot find name 'T'.
id: string;
value: U;
}
@@ -41,7 +41,7 @@
module clodule3 {
export var y = { id: T };
~
!!! Cannot find name 'T'.
!!! error TS2304: Cannot find name 'T'.
}
class clodule4<T>{
@@ -54,7 +54,7 @@
class D {
name: T;
~
!!! Cannot find name 'T'.
!!! error TS2304: Cannot find name 'T'.
}
}
@@ -10,7 +10,7 @@
// error: duplicate identifier expected
export function fn<T>(x: T, y: T): T {
~~
!!! Duplicate identifier 'fn'.
!!! error TS2300: Duplicate identifier 'fn'.
return x;
}
}
@@ -10,7 +10,7 @@
// error: duplicate identifier expected
export function fn<T>(x: T, y: T): T {
~~
!!! Duplicate identifier 'fn'.
!!! error TS2300: Duplicate identifier 'fn'.
return x;
}
}
@@ -11,7 +11,7 @@
export function fn<T>(x: T, y: T): number {
return clodule.sfn('a');
~~~~~~~~~~~
!!! Property 'clodule.sfn' is inaccessible.
!!! error TS2341: Property 'clodule.sfn' is inaccessible.
}
}
@@ -8,7 +8,7 @@
module Point {
export function Origin() { return null; } //expected duplicate identifier error
~~~~~~
!!! Duplicate identifier 'Origin'.
!!! error TS2300: Duplicate identifier 'Origin'.
}
@@ -22,6 +22,6 @@
export module Point {
export function Origin() { return ""; }//expected duplicate identifier error
~~~~~~
!!! Duplicate identifier 'Origin'.
!!! error TS2300: Duplicate identifier 'Origin'.
}
}
@@ -8,7 +8,7 @@
module Point {
export var Origin = ""; //expected duplicate identifier error
~~~~~~
!!! Duplicate identifier 'Origin'.
!!! error TS2300: Duplicate identifier 'Origin'.
}
@@ -22,6 +22,6 @@
export module Point {
export var Origin = ""; //expected duplicate identifier error
~~~~~~
!!! Duplicate identifier 'Origin'.
!!! error TS2300: Duplicate identifier 'Origin'.
}
}
@@ -14,7 +14,7 @@
module X.Y {
export module Point {
~~~~~
!!! A module declaration cannot be in a different file from a class or function with which it is merged
!!! error TS2433: A module declaration cannot be in a different file from a class or function with which it is merged
export var Origin = new Point(0, 0);
}
}
@@ -2,8 +2,8 @@
class C {
constructor();
~~~~~~~~~~~~~~
!!! Constructor implementation is missing.
!!! error TS2390: Constructor implementation is missing.
foo();
~~~
!!! Function implementation is missing or not immediately following the declaration.
!!! error TS2391: Function implementation is missing or not immediately following the declaration.
}
@@ -2,6 +2,6 @@
class C {
constructor();
~~~~~~~~~~~~~~
!!! Constructor implementation is missing.
!!! error TS2390: Constructor implementation is missing.
foo() { }
}
@@ -3,5 +3,5 @@
foo();
bar() { }
~~~
!!! Function implementation name must be 'foo'.
!!! error TS2389: Function implementation name must be 'foo'.
}
@@ -2,8 +2,8 @@
class C {
foo();
~~~
!!! Function implementation is missing or not immediately following the declaration.
!!! error TS2391: Function implementation is missing or not immediately following the declaration.
constructor();
~~~~~~~~~~~~~~
!!! Constructor implementation is missing.
!!! error TS2390: Constructor implementation is missing.
}
@@ -2,6 +2,6 @@
class C {
foo();
~~~
!!! Function implementation is missing or not immediately following the declaration.
!!! error TS2391: Function implementation is missing or not immediately following the declaration.
constructor() { }
}
@@ -3,5 +3,5 @@
0();
1() { }
~
!!! Function implementation name must be '0'.
!!! error TS2389: Function implementation name must be '0'.
}
@@ -3,5 +3,5 @@
"foo"();
"bar"() { }
~~~~~
!!! Function implementation name must be '"foo"'.
!!! error TS2389: Function implementation name must be '"foo"'.
}
@@ -1,5 +1,5 @@
==== tests/cases/compiler/ClassDeclaration24.ts (1 errors) ====
class any {
~~~
!!! Class name cannot be 'any'
!!! error TS2414: Class name cannot be 'any'
}
@@ -6,9 +6,9 @@
class List<U> implements IList<U> {
data(): U;
~~~~
!!! Function implementation is missing or not immediately following the declaration.
!!! error TS2391: Function implementation is missing or not immediately following the declaration.
next(): string;
~~~~
!!! Function implementation is missing or not immediately following the declaration.
!!! error TS2391: Function implementation is missing or not immediately following the declaration.
}
@@ -2,5 +2,5 @@
class C {
constructor();
~~~~~~~~~~~~~~
!!! Constructor implementation is missing.
!!! error TS2390: Constructor implementation is missing.
}
@@ -2,5 +2,5 @@
class C {
foo();
~~~
!!! Function implementation is missing or not immediately following the declaration.
!!! error TS2391: Function implementation is missing or not immediately following the declaration.
}
@@ -1,11 +1,11 @@
==== tests/cases/compiler/ExportAssignment7.ts (3 errors) ====
export class C {
~
!!! Cannot compile external modules unless the '--module' flag is provided.
!!! error TS1148: Cannot compile external modules unless the '--module' flag is provided.
}
export = B;
~~~~~~~~~~~
!!! Cannot find name 'B'.
!!! error TS2304: Cannot find name 'B'.
~~~~~~~~~~~
!!! An export assignment cannot be used in a module with other exported elements.
!!! error TS2309: An export assignment cannot be used in a module with other exported elements.
@@ -1,11 +1,11 @@
==== tests/cases/compiler/ExportAssignment8.ts (3 errors) ====
export = B;
~~~~~~~~~~~
!!! Cannot compile external modules unless the '--module' flag is provided.
!!! error TS1148: Cannot compile external modules unless the '--module' flag is provided.
~~~~~~~~~~~
!!! Cannot find name 'B'.
!!! error TS2304: Cannot find name 'B'.
~~~~~~~~~~~
!!! An export assignment cannot be used in a module with other exported elements.
!!! error TS2309: An export assignment cannot be used in a module with other exported elements.
export class C {
}
@@ -8,11 +8,11 @@
export var UnitSquare : {
top: { left: Point, right: Point },
~
!!! ';' expected.
!!! error TS1005: ';' expected.
~
!!! ';' expected.
!!! error TS1005: ';' expected.
bottom: { left: Point, right: Point }
~
!!! ';' expected.
!!! error TS1005: ';' expected.
} = null;
}
@@ -9,7 +9,7 @@
module A {
export module Point {
~~~~~
!!! A module declaration cannot be in a different file from a class or function with which it is merged
!!! error TS2433: A module declaration cannot be in a different file from a class or function with which it is merged
export var Origin = { x: 0, y: 0 };
}
}
@@ -18,7 +18,7 @@
var fn: () => { x: number; y: number };
var fn = A.Point;
~~
!!! Subsequent variable declarations must have the same type. Variable 'fn' must be of type '() => { x: number; y: number; }', but here has type 'typeof Point'.
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'fn' must be of type '() => { x: number; y: number; }', but here has type 'typeof Point'.
var cl: { x: number; y: number; }
var cl = A.Point();
@@ -40,7 +40,7 @@
var fn: () => { x: number; y: number };
var fn = B.Point; // not expected to be an error. bug 840000: [corelang] Function of fundule not assignalbe as expected
~~
!!! Subsequent variable declarations must have the same type. Variable 'fn' must be of type '() => { x: number; y: number; }', but here has type 'typeof Point'.
!!! error TS2403: Subsequent variable declarations must have the same type. Variable 'fn' must be of type '() => { x: number; y: number; }', but here has type 'typeof Point'.
var cl: { x: number; y: number; }
var cl = B.Point();
@@ -1,4 +1,4 @@
==== tests/cases/compiler/FunctionDeclaration3.ts (1 errors) ====
function foo();
~~~
!!! Function implementation is missing or not immediately following the declaration.
!!! error TS2391: Function implementation is missing or not immediately following the declaration.
@@ -2,4 +2,4 @@
function foo();
function bar() { }
~~~
!!! Function implementation name must be 'foo'.
!!! error TS2389: Function implementation name must be 'foo'.
@@ -3,5 +3,5 @@
function foo();
function bar() { }
~~~
!!! Function implementation name must be 'foo'.
!!! error TS2389: Function implementation name must be 'foo'.
}
@@ -2,5 +2,5 @@
module M {
function foo();
~~~
!!! Function implementation is missing or not immediately following the declaration.
!!! error TS2391: Function implementation is missing or not immediately following the declaration.
}
@@ -1,5 +1,5 @@
==== tests/cases/compiler/InterfaceDeclaration8.ts (1 errors) ====
interface string {
~~~~~~
!!! Interface name cannot be 'string'
!!! error TS2427: Interface name cannot be 'string'
}
@@ -5,9 +5,9 @@
var m = M; // Error, not instantiated can not be used as var
~
!!! Cannot find name 'M'.
!!! error TS2304: Cannot find name 'M'.
var x: typeof M; // Error only a namespace
~
!!! Cannot find name 'M'.
!!! error TS2304: Cannot find name 'M'.
@@ -2,7 +2,7 @@
class C {
set Foo(public a: number) { }
~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
~~~~~~~~~~~~~~~~
!!! A parameter property is only allowed in a constructor implementation.
!!! error TS2369: A parameter property is only allowed in a constructor implementation.
}
@@ -2,7 +2,7 @@
module X.Y {
export module Point {
~~~~~
!!! A module declaration cannot be in a different file from a class or function with which it is merged
!!! error TS2433: A module declaration cannot be in a different file from a class or function with which it is merged
export var Origin = new Point(0, 0);
}
}
@@ -23,7 +23,7 @@
==== tests/cases/conformance/internalModules/DeclarationMerging/simple.ts (1 errors) ====
module A {
~
!!! A module declaration cannot be located prior to a class or function with which it is merged
!!! error TS2434: A module declaration cannot be located prior to a class or function with which it is merged
export var Instance = new A();
}
@@ -2,7 +2,7 @@
module A {
export module Point {
~~~~~
!!! A module declaration cannot be in a different file from a class or function with which it is merged
!!! error TS2433: A module declaration cannot be in a different file from a class or function with which it is merged
export var Origin = { x: 0, y: 0 };
}
}
@@ -20,7 +20,7 @@
export module Point {
~~~~~
!!! A module declaration cannot be located prior to a class or function with which it is merged
!!! error TS2434: A module declaration cannot be located prior to a class or function with which it is merged
export var Origin = { x: 0, y: 0 };
}
@@ -30,9 +30,9 @@
// errors expected, these are not exported
var a2 = new A.A2();
~~
!!! Property 'A2' does not exist on type 'typeof A'.
!!! error TS2339: Property 'A2' does not exist on type 'typeof A'.
var ag2 = new A.A2<string, number>();
~~
!!! Property 'A2' does not exist on type 'typeof A'.
!!! error TS2339: Property 'A2' does not exist on type 'typeof A'.
@@ -10,5 +10,5 @@
// error not exported
var b = A.Day.Monday;
~~~
!!! Property 'Day' does not exist on type 'typeof A'.
!!! error TS2339: Property 'Day' does not exist on type 'typeof A'.
@@ -28,7 +28,7 @@
// these should be errors since the functions are not exported
var fn2 = A.fn2;
~~~
!!! Property 'fn2' does not exist on type 'typeof A'.
!!! error TS2339: Property 'fn2' does not exist on type 'typeof A'.
var fng2 = A.fng2;
~~~~
!!! Property 'fng2' does not exist on type 'typeof A'.
!!! error TS2339: Property 'fng2' does not exist on type 'typeof A'.
@@ -37,6 +37,6 @@
// not expected to work since non are exported
var line = Geometry.Lines.Line;
~~~~~
!!! Property 'Lines' does not exist on type 'typeof Geometry'.
!!! error TS2339: Property 'Lines' does not exist on type 'typeof Geometry'.
@@ -11,5 +11,5 @@
// Error, since y is not exported
var y = A.y;
~
!!! Property 'y' does not exist on type 'typeof A'.
!!! error TS2339: Property 'y' does not exist on type 'typeof A'.
@@ -2,5 +2,5 @@
interface I {
new (public x);
~~~~~~~~
!!! A parameter property is only allowed in a constructor implementation.
!!! error TS2369: A parameter property is only allowed in a constructor implementation.
}
@@ -1,5 +1,5 @@
==== tests/cases/compiler/ParameterList4.ts (1 errors) ====
function F(public A) {
~~~~~~~~
!!! A parameter property is only allowed in a constructor implementation.
!!! error TS2369: A parameter property is only allowed in a constructor implementation.
}
@@ -1,9 +1,9 @@
==== tests/cases/compiler/ParameterList5.ts (3 errors) ====
function A(): (public B) => C {
~~~~~~~~~~~~~~~
!!! A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement.
!!! error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement.
~~~~~~~~
!!! A parameter property is only allowed in a constructor implementation.
!!! error TS2369: A parameter property is only allowed in a constructor implementation.
~
!!! Cannot find name 'C'.
!!! error TS2304: Cannot find name 'C'.
}
@@ -2,6 +2,6 @@
class C {
constructor(C: (public A) => any) {
~~~~~~~~
!!! A parameter property is only allowed in a constructor implementation.
!!! error TS2369: A parameter property is only allowed in a constructor implementation.
}
}
@@ -2,9 +2,9 @@
class C1 {
constructor(public p1:string); // ERROR
~~~~~~~~~~~~~~~~
!!! A parameter property is only allowed in a constructor implementation.
!!! error TS2369: A parameter property is only allowed in a constructor implementation.
constructor(private p2:number); // ERROR
~~~~~~~~~~~~~~~~~
!!! A parameter property is only allowed in a constructor implementation.
!!! error TS2369: A parameter property is only allowed in a constructor implementation.
constructor(public p3:any) {} // OK
}
@@ -2,11 +2,11 @@
declare class C2 {
constructor(public p1:string); // ERROR
~~~~~~~~~~~~~~~~
!!! A parameter property is only allowed in a constructor implementation.
!!! error TS2369: A parameter property is only allowed in a constructor implementation.
constructor(private p2:number); // ERROR
~~~~~~~~~~~~~~~~~
!!! A parameter property is only allowed in a constructor implementation.
!!! error TS2369: A parameter property is only allowed in a constructor implementation.
constructor(public p3:any); // ERROR
~~~~~~~~~~~~~
!!! A parameter property is only allowed in a constructor implementation.
!!! error TS2369: A parameter property is only allowed in a constructor implementation.
}
@@ -10,7 +10,7 @@
// expected error
export class Point {
~~~~~
!!! Duplicate identifier 'Point'.
!!! error TS2300: Duplicate identifier 'Point'.
origin: number;
angle: number;
}
@@ -28,7 +28,7 @@
// expected error
export class Line {
~~~~
!!! Duplicate identifier 'Line'.
!!! error TS2300: Duplicate identifier 'Line'.
name: string;
}
}
@@ -1,7 +1,7 @@
==== tests/cases/conformance/internalModules/DeclarationMerging/part1.ts (1 errors) ====
export module A {
~
!!! Cannot compile external modules unless the '--module' flag is provided.
!!! error TS1148: Cannot compile external modules unless the '--module' flag is provided.
export interface Point {
x: number;
y: number;
@@ -21,15 +21,15 @@
// collision with 'Origin' var in other part of merged module
export var Origin: Point = { x: 0, y: 0 };
~~~~~
!!! Cannot find name 'Point'.
!!! error TS2304: Cannot find name 'Point'.
export module Utils {
export class Plane {
constructor(public tl: Point, public br: Point) { }
~~~~~
!!! Cannot find name 'Point'.
!!! error TS2304: Cannot find name 'Point'.
~~~~~
!!! Cannot find name 'Point'.
!!! error TS2304: Cannot find name 'Point'.
}
}
}
@@ -1,12 +1,12 @@
==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/TypeArgumentLists/TypeArgumentList1.ts (5 errors) ====
Foo<A,B,\ C>(4, 5, 6);
!!! Invalid character.
!!! error TS1127: Invalid character.
~~~
!!! Cannot find name 'Foo'.
!!! error TS2304: Cannot find name 'Foo'.
~
!!! Cannot find name 'A'.
!!! error TS2304: Cannot find name 'A'.
~
!!! Cannot find name 'B'.
!!! error TS2304: Cannot find name 'B'.
~
!!! Cannot find name 'C'.
!!! error TS2304: Cannot find name 'C'.
@@ -3,12 +3,12 @@
class C {
set X(public v) { }
~
!!! A parameter property is only allowed in a constructor implementation.
!!! error TS2369: A parameter property is only allowed in a constructor implementation.
~~~~~~~~
!!! A parameter property is only allowed in a constructor implementation.
!!! error TS2369: A parameter property is only allowed in a constructor implementation.
static set X(public v2) { }
~
!!! A parameter property is only allowed in a constructor implementation.
!!! error TS2369: A parameter property is only allowed in a constructor implementation.
~~~~~~~~~
!!! A parameter property is only allowed in a constructor implementation.
!!! error TS2369: A parameter property is only allowed in a constructor implementation.
}
@@ -5,7 +5,7 @@
class C {
get x() {
~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
return 1;
}
}
@@ -13,18 +13,18 @@
class D {
set x(v) {
~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
}
}
var x = {
get a() { return 1 }
~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
}
var y = {
set b(v) { }
~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
}
@@ -3,8 +3,8 @@
class C {
set X(v = 0) { }
~
!!! A 'set' accessor parameter cannot have an initializer.
!!! error TS1052: A 'set' accessor parameter cannot have an initializer.
static set X(v2 = 0) { }
~
!!! A 'set' accessor parameter cannot have an initializer.
!!! error TS1052: A 'set' accessor parameter cannot have an initializer.
}
@@ -3,8 +3,8 @@
class C {
set X(...v) { }
~
!!! A 'set' accessor cannot have rest parameter.
!!! error TS1053: A 'set' accessor cannot have rest parameter.
static set X(...v2) { }
~
!!! A 'set' accessor cannot have rest parameter.
!!! error TS1053: A 'set' accessor cannot have rest parameter.
}
@@ -4,12 +4,12 @@
class C {
set x(v: (a: string) => string) {
~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
}
get x() {
~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
return (x: string) => "";
}
}
@@ -4,7 +4,7 @@
class Test {
get Property(): Result {
~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
var x = 1;
return null;
}
@@ -13,7 +13,7 @@
class Test2 {
get Property() {
~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
var x = 1;
return null;
}
@@ -4,32 +4,32 @@
class C {
get X() { return 1; }
~
!!! An accessor cannot be declared in an ambient context.
!!! error TS1086: An accessor cannot be declared in an ambient context.
set X(v) { }
~
!!! An accessor cannot be declared in an ambient context.
!!! error TS1086: An accessor cannot be declared in an ambient context.
static get Y() { return 1; }
~
!!! An accessor cannot be declared in an ambient context.
!!! error TS1086: An accessor cannot be declared in an ambient context.
static set Y(v) { }
~
!!! An accessor cannot be declared in an ambient context.
!!! error TS1086: An accessor cannot be declared in an ambient context.
}
}
declare class C {
get X() { return 1; }
~
!!! An accessor cannot be declared in an ambient context.
!!! error TS1086: An accessor cannot be declared in an ambient context.
set X(v) { }
~
!!! An accessor cannot be declared in an ambient context.
!!! error TS1086: An accessor cannot be declared in an ambient context.
static get Y() { return 1; }
~
!!! An accessor cannot be declared in an ambient context.
!!! error TS1086: An accessor cannot be declared in an ambient context.
static set Y(v) { }
~
!!! An accessor cannot be declared in an ambient context.
!!! error TS1086: An accessor cannot be declared in an ambient context.
}
@@ -3,9 +3,9 @@
class C {
get x(): number { return 1; }
~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
}
var y = { get foo() { return 3; } };
~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
@@ -2,37 +2,37 @@
class LanguageSpec_section_4_5_error_cases {
public set AnnotatedSetter_SetterFirst(a: number) { }
~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
public get AnnotatedSetter_SetterFirst() { return ""; }
~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
~~
!!! Type 'string' is not assignable to type 'number'.
!!! error TS2323: Type 'string' is not assignable to type 'number'.
public get AnnotatedSetter_SetterLast() { return ""; }
~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
~~
!!! Type 'string' is not assignable to type 'number'.
!!! error TS2323: Type 'string' is not assignable to type 'number'.
public set AnnotatedSetter_SetterLast(a: number) { }
~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
public get AnnotatedGetter_GetterFirst(): string { return ""; }
~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
public set AnnotatedGetter_GetterFirst(aStr) { aStr = 0; }
~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
~~~~
!!! Type 'number' is not assignable to type 'string'.
!!! error TS2323: Type 'number' is not assignable to type 'string'.
public set AnnotatedGetter_GetterLast(aStr) { aStr = 0; }
~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
~~~~
!!! Type 'number' is not assignable to type 'string'.
!!! error TS2323: Type 'number' is not assignable to type 'string'.
public get AnnotatedGetter_GetterLast(): string { return ""; }
~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
}
@@ -6,44 +6,44 @@
public set InferredGetterFromSetterAnnotation(a: A) { }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
public get InferredGetterFromSetterAnnotation() { return new B(); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
public get InferredGetterFromSetterAnnotation_GetterFirst() { return new B(); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
public set InferredGetterFromSetterAnnotation_GetterFirst(a: A) { }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
public get InferredFromGetter() { return new B(); }
~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
public set InferredFromGetter(a) { }
~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
public set InferredFromGetter_SetterFirst(a) { }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
public get InferredFromGetter_SetterFirst() { return new B(); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
public set InferredSetterFromGetterAnnotation(a) { }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
public get InferredSetterFromGetterAnnotation() : A { return new B(); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
public get InferredSetterFromGetterAnnotation_GetterFirst() : A { return new B(); }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
public set InferredSetterFromGetterAnnotation_GetterFirst(a) { }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
}
@@ -5,9 +5,9 @@
interface Bar extends Foo {
~~~
!!! Interface 'Bar' incorrectly extends interface 'Foo':
!!! Types of property 'f' are incompatible:
!!! Type '(key: string) => string' is not assignable to type '() => string'.
!!! error TS2429: Interface 'Bar' incorrectly extends interface 'Foo':
!!! error TS2429: Types of property 'f' are incompatible:
!!! error TS2429: Type '(key: string) => string' is not assignable to type '() => string'.
f(key: string): string;
}
@@ -15,65 +15,65 @@
// boolean + every type except any and string
var r1 = a + a;
~~~~~
!!! Operator '+' cannot be applied to types 'boolean' and 'boolean'.
!!! error TS2365: Operator '+' cannot be applied to types 'boolean' and 'boolean'.
var r2 = a + b;
~~~~~
!!! Operator '+' cannot be applied to types 'boolean' and 'number'.
!!! error TS2365: Operator '+' cannot be applied to types 'boolean' and 'number'.
var r3 = a + c;
~~~~~
!!! Operator '+' cannot be applied to types 'boolean' and 'Object'.
!!! error TS2365: Operator '+' cannot be applied to types 'boolean' and 'Object'.
// number + every type except any and string
var r4 = b + a;
~~~~~
!!! Operator '+' cannot be applied to types 'number' and 'boolean'.
!!! error TS2365: Operator '+' cannot be applied to types 'number' and 'boolean'.
var r5 = b + b; // number + number is valid
var r6 = b + c;
~~~~~
!!! Operator '+' cannot be applied to types 'number' and 'Object'.
!!! error TS2365: Operator '+' cannot be applied to types 'number' and 'Object'.
// object + every type except any and string
var r7 = c + a;
~~~~~
!!! Operator '+' cannot be applied to types 'Object' and 'boolean'.
!!! error TS2365: Operator '+' cannot be applied to types 'Object' and 'boolean'.
var r8 = c + b;
~~~~~
!!! Operator '+' cannot be applied to types 'Object' and 'number'.
!!! error TS2365: Operator '+' cannot be applied to types 'Object' and 'number'.
var r9 = c + c;
~~~~~
!!! Operator '+' cannot be applied to types 'Object' and 'Object'.
!!! error TS2365: Operator '+' cannot be applied to types 'Object' and 'Object'.
// other cases
var r10 = a + true;
~~~~~~~~
!!! Operator '+' cannot be applied to types 'boolean' and 'boolean'.
!!! error TS2365: Operator '+' cannot be applied to types 'boolean' and 'boolean'.
var r11 = true + false;
~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'boolean' and 'boolean'.
!!! error TS2365: Operator '+' cannot be applied to types 'boolean' and 'boolean'.
var r12 = true + 123;
~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'boolean' and 'number'.
!!! error TS2365: Operator '+' cannot be applied to types 'boolean' and 'number'.
var r13 = {} + {};
~~~~~~~
!!! Operator '+' cannot be applied to types '{}' and '{}'.
!!! error TS2365: Operator '+' cannot be applied to types '{}' and '{}'.
var r14 = b + d;
~~~~~
!!! Operator '+' cannot be applied to types 'number' and 'Number'.
!!! error TS2365: Operator '+' cannot be applied to types 'number' and 'Number'.
var r15 = b + foo;
~~~~~~~
!!! Operator '+' cannot be applied to types 'number' and '() => void'.
!!! error TS2365: Operator '+' cannot be applied to types 'number' and '() => void'.
var r16 = b + foo();
~~~~~~~~~
!!! Operator '+' cannot be applied to types 'number' and 'void'.
!!! error TS2365: Operator '+' cannot be applied to types 'number' and 'void'.
var r17 = b + C;
~~~~~
!!! Operator '+' cannot be applied to types 'number' and 'typeof C'.
!!! error TS2365: Operator '+' cannot be applied to types 'number' and 'typeof C'.
var r18 = E.a + new C();
~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'E' and 'C'.
!!! error TS2365: Operator '+' cannot be applied to types 'E' and 'C'.
var r19 = E.a + C.foo();
~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'E' and 'void'.
!!! error TS2365: Operator '+' cannot be applied to types 'E' and 'void'.
var r20 = E.a + M;
~~~~~~~
!!! Operator '+' cannot be applied to types 'E' and 'typeof M'.
!!! error TS2365: Operator '+' cannot be applied to types 'E' and 'typeof M'.
@@ -11,36 +11,36 @@
// null + boolean/Object
var r1 = null + a;
~~~~~~~~
!!! Operator '+' cannot be applied to types 'boolean' and 'boolean'.
!!! error TS2365: Operator '+' cannot be applied to types 'boolean' and 'boolean'.
var r2 = null + b;
~~~~~~~~
!!! Operator '+' cannot be applied to types 'Object' and 'Object'.
!!! error TS2365: Operator '+' cannot be applied to types 'Object' and 'Object'.
var r3 = null + c;
~~~~~~~~
!!! Operator '+' cannot be applied to types 'void' and 'void'.
!!! error TS2365: Operator '+' cannot be applied to types 'void' and 'void'.
var r4 = a + null;
~~~~~~~~
!!! Operator '+' cannot be applied to types 'boolean' and 'boolean'.
!!! error TS2365: Operator '+' cannot be applied to types 'boolean' and 'boolean'.
var r5 = b + null;
~~~~~~~~
!!! Operator '+' cannot be applied to types 'Object' and 'Object'.
!!! error TS2365: Operator '+' cannot be applied to types 'Object' and 'Object'.
var r6 = null + c;
~~~~~~~~
!!! Operator '+' cannot be applied to types 'void' and 'void'.
!!! error TS2365: Operator '+' cannot be applied to types 'void' and 'void'.
// other cases
var r7 = null + d;
~~~~~~~~
!!! Operator '+' cannot be applied to types 'Number' and 'Number'.
!!! error TS2365: Operator '+' cannot be applied to types 'Number' and 'Number'.
var r8 = null + true;
~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'boolean' and 'boolean'.
!!! error TS2365: Operator '+' cannot be applied to types 'boolean' and 'boolean'.
var r9 = null + { a: '' };
~~~~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types '{ a: string; }' and '{ a: string; }'.
!!! error TS2365: Operator '+' cannot be applied to types '{ a: string; }' and '{ a: string; }'.
var r10 = null + foo();
~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'void' and 'void'.
!!! error TS2365: Operator '+' cannot be applied to types 'void' and 'void'.
var r11 = null + (() => { });
~~~~~~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types '() => void' and '() => void'.
!!! error TS2365: Operator '+' cannot be applied to types '() => void' and '() => void'.
@@ -2,13 +2,13 @@
// bug 819721
var r1 = null + null;
~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'null' and 'null'.
!!! error TS2365: Operator '+' cannot be applied to types 'null' and 'null'.
var r2 = null + undefined;
~~~~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'undefined' and 'undefined'.
!!! error TS2365: Operator '+' cannot be applied to types 'undefined' and 'undefined'.
var r3 = undefined + null;
~~~~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'null' and 'null'.
!!! error TS2365: Operator '+' cannot be applied to types 'null' and 'null'.
var r4 = undefined + undefined;
~~~~~~~~~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'undefined' and 'undefined'.
!!! error TS2365: Operator '+' cannot be applied to types 'undefined' and 'undefined'.
@@ -15,57 +15,57 @@
var r1: any = t + a; // ok, one operand is any
var r2 = t + b;
~~~~~
!!! Operator '+' cannot be applied to types 'T' and 'boolean'.
!!! error TS2365: Operator '+' cannot be applied to types 'T' and 'boolean'.
var r3 = t + c;
~~~~~
!!! Operator '+' cannot be applied to types 'T' and 'number'.
!!! error TS2365: Operator '+' cannot be applied to types 'T' and 'number'.
var r4 = t + d; // ok, one operand is string
var r5 = t + e;
~~~~~
!!! Operator '+' cannot be applied to types 'T' and 'Object'.
!!! error TS2365: Operator '+' cannot be applied to types 'T' and 'Object'.
var r6 = t + g;
~~~~~
!!! Operator '+' cannot be applied to types 'T' and 'E'.
!!! error TS2365: Operator '+' cannot be applied to types 'T' and 'E'.
var r7 = t + f;
~~~~~
!!! Operator '+' cannot be applied to types 'T' and 'void'.
!!! error TS2365: Operator '+' cannot be applied to types 'T' and 'void'.
// type parameter as right operand
var r8 = a + t; // ok, one operand is any
var r9 = b + t;
~~~~~
!!! Operator '+' cannot be applied to types 'boolean' and 'T'.
!!! error TS2365: Operator '+' cannot be applied to types 'boolean' and 'T'.
var r10 = c + t;
~~~~~
!!! Operator '+' cannot be applied to types 'number' and 'T'.
!!! error TS2365: Operator '+' cannot be applied to types 'number' and 'T'.
var r11 = d + t; // ok, one operand is string
var r12 = e + t;
~~~~~
!!! Operator '+' cannot be applied to types 'Object' and 'T'.
!!! error TS2365: Operator '+' cannot be applied to types 'Object' and 'T'.
var r13 = g + t;
~~~~~
!!! Operator '+' cannot be applied to types 'E' and 'T'.
!!! error TS2365: Operator '+' cannot be applied to types 'E' and 'T'.
var r14 = f + t;
~~~~~
!!! Operator '+' cannot be applied to types 'void' and 'T'.
!!! error TS2365: Operator '+' cannot be applied to types 'void' and 'T'.
// other cases
var r15 = t + null;
~~~~~~~~
!!! Operator '+' cannot be applied to types 'T' and 'T'.
!!! error TS2365: Operator '+' cannot be applied to types 'T' and 'T'.
var r16 = t + undefined;
~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'T' and 'T'.
!!! error TS2365: Operator '+' cannot be applied to types 'T' and 'T'.
var r17 = t + t;
~~~~~
!!! Operator '+' cannot be applied to types 'T' and 'T'.
!!! error TS2365: Operator '+' cannot be applied to types 'T' and 'T'.
var r18 = t + u;
~~~~~
!!! Operator '+' cannot be applied to types 'T' and 'U'.
!!! error TS2365: Operator '+' cannot be applied to types 'T' and 'U'.
var r19 = t + (() => { });
~~~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'T' and '() => void'.
!!! error TS2365: Operator '+' cannot be applied to types 'T' and '() => void'.
var r20 = t + [];
~~~~~~
!!! Operator '+' cannot be applied to types 'T' and 'undefined[]'.
!!! error TS2365: Operator '+' cannot be applied to types 'T' and 'undefined[]'.
}
@@ -11,36 +11,36 @@
// undefined + boolean/Object
var r1 = undefined + a;
~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'boolean' and 'boolean'.
!!! error TS2365: Operator '+' cannot be applied to types 'boolean' and 'boolean'.
var r2 = undefined + b;
~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'Object' and 'Object'.
!!! error TS2365: Operator '+' cannot be applied to types 'Object' and 'Object'.
var r3 = undefined + c;
~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'void' and 'void'.
!!! error TS2365: Operator '+' cannot be applied to types 'void' and 'void'.
var r4 = a + undefined;
~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'boolean' and 'boolean'.
!!! error TS2365: Operator '+' cannot be applied to types 'boolean' and 'boolean'.
var r5 = b + undefined;
~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'Object' and 'Object'.
!!! error TS2365: Operator '+' cannot be applied to types 'Object' and 'Object'.
var r6 = undefined + c;
~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'void' and 'void'.
!!! error TS2365: Operator '+' cannot be applied to types 'void' and 'void'.
// other cases
var r7 = undefined + d;
~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'Number' and 'Number'.
!!! error TS2365: Operator '+' cannot be applied to types 'Number' and 'Number'.
var r8 = undefined + true;
~~~~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'boolean' and 'boolean'.
!!! error TS2365: Operator '+' cannot be applied to types 'boolean' and 'boolean'.
var r9 = undefined + { a: '' };
~~~~~~~~~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types '{ a: string; }' and '{ a: string; }'.
!!! error TS2365: Operator '+' cannot be applied to types '{ a: string; }' and '{ a: string; }'.
var r10 = undefined + foo();
~~~~~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types 'void' and 'void'.
!!! error TS2365: Operator '+' cannot be applied to types 'void' and 'void'.
var r11 = undefined + (() => { });
~~~~~~~~~~~~~~~~~~~~~~~
!!! Operator '+' cannot be applied to types '() => void' and '() => void'.
!!! error TS2365: Operator '+' cannot be applied to types '() => void' and '() => void'.
@@ -3,12 +3,12 @@
var x = moduleA;
x = 1; // Should be error
~
!!! Type 'number' is not assignable to type 'typeof "tests/cases/compiler/aliasAssignments_moduleA"':
!!! Property 'someClass' is missing in type 'Number'.
!!! error TS2322: Type 'number' is not assignable to type 'typeof "tests/cases/compiler/aliasAssignments_moduleA"':
!!! error TS2322: Property 'someClass' is missing in type 'Number'.
var y = 1;
y = moduleA; // should be error
~
!!! Type 'typeof "tests/cases/compiler/aliasAssignments_moduleA"' is not assignable to type 'number'.
!!! error TS2323: Type 'typeof "tests/cases/compiler/aliasAssignments_moduleA"' is not assignable to type 'number'.
==== tests/cases/compiler/aliasAssignments_moduleA.ts (0 errors) ====
export class someClass {
@@ -17,7 +17,7 @@
var p2: foo.Provide;
var p3:booz.bar;
~~~~~~~~
!!! Module 'foo.bar.baz' has no exported member 'bar'.
!!! error TS2305: Module 'foo.bar.baz' has no exported member 'bar'.
var p22 = new provide.Provide();
}
@@ -11,22 +11,22 @@
import m = no;
~~~~~~~~~~~~~~
!!! Cannot find name 'no'.
!!! error TS2304: Cannot find name 'no'.
import m2 = no.mod;
~~~~~~~~~~~~~~~~~~~
!!! Cannot find name 'no'.
!!! error TS2304: Cannot find name 'no'.
import n = 5;
~
!!! Identifier expected.
!!! error TS1003: Identifier expected.
import o = "s";
~~~
!!! Identifier expected.
!!! error TS1003: Identifier expected.
import q = null;
~~~~
!!! Identifier expected.
!!! error TS1003: Identifier expected.
import r = undefined;
~~~~~~~~~~~~~~~~~~~~~
!!! Cannot find name 'undefined'.
!!! error TS2304: Cannot find name 'undefined'.
var p = new provide.Provide();
@@ -38,7 +38,7 @@
var p2: foo.Provide;
var p3:booz.bar;
~~~~~~~~
!!! Module 'foo.bar.baz' has no exported member 'bar'.
!!! error TS2305: Module 'foo.bar.baz' has no exported member 'bar'.
var p22 = new provide.Provide();
}
@@ -4,5 +4,5 @@
}
export import X = N;
~~~~~~~~~~~~~~~~~~~~
!!! Import declaration 'X' is using private name 'N'.
!!! error TS4000: Import declaration 'X' is using private name 'N'.
}
@@ -7,6 +7,6 @@
}
import R = N;
~~~~~~~~~~~~~
!!! Import declaration 'R' is using private name 'N'.
!!! error TS4000: Import declaration 'R' is using private name 'N'.
export import X = R;
}
@@ -5,7 +5,7 @@
z.bar("hello"); // This should be ok
var x: foo.A = foo.bar("hello"); // foo.A should be ok but foo.bar should be error
~~~
!!! Cannot find name 'foo'.
!!! error TS2304: Cannot find name 'foo'.
==== tests/cases/compiler/aliasOnMergedModuleInterface_0.ts (0 errors) ====
declare module "foo"
@@ -2,7 +2,7 @@
import moduleA = require("aliasWithInterfaceExportAssignmentUsedInVarInitializer_0");
var d = b.q3;
~
!!! Cannot find name 'b'.
!!! error TS2304: Cannot find name 'b'.
==== tests/cases/compiler/aliasWithInterfaceExportAssignmentUsedInVarInitializer_0.ts (0 errors) ====
interface c {
q3: number;
@@ -2,5 +2,5 @@
declare class foo{};
function foo() { return null; }
~~~
!!! Duplicate identifier 'foo'.
!!! error TS2300: Duplicate identifier 'foo'.
@@ -2,7 +2,7 @@
/// <reference path="decls.ts" />
import imp1 = require('equ');
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Cannot compile external modules unless the '--module' flag is provided.
!!! error TS1148: Cannot compile external modules unless the '--module' flag is provided.
// Ambient external module members are always exported with or without export keyword when module lacks export assignment
@@ -2,5 +2,5 @@
declare enum E {
e = 3.3 // Decimal
~
!!! Ambient enum elements can only have integer literal initializers.
!!! error TS1066: Ambient enum elements can only have integer literal initializers.
}
@@ -2,13 +2,13 @@
// Ambient variable with an initializer
declare var x = 4;
~
!!! Initializers are not allowed in ambient contexts.
!!! error TS1039: Initializers are not allowed in ambient contexts.
// Ambient functions with invalid overloads
declare function fn(x: number): string;
declare function fn(x: 'foo'): number;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Specialized overload signature is not assignable to any non-specialized signature.
!!! error TS2382: Specialized overload signature is not assignable to any non-specialized signature.
// Ambient functions with duplicate signatures
declare function fn1(x: number): string;
@@ -21,51 +21,51 @@
// Ambient function with default parameter values
declare function fn3(x = 3);
~~~~~
!!! A parameter initializer is only allowed in a function or constructor implementation.
!!! error TS2371: A parameter initializer is only allowed in a function or constructor implementation.
// Ambient function with function body
declare function fn4() { };
~
!!! A function implementation cannot be declared in an ambient context.
!!! error TS1037: A function implementation cannot be declared in an ambient context.
// Ambient enum with non - integer literal constant member
declare enum E1 {
y = 4.23
~
!!! Ambient enum elements can only have integer literal initializers.
!!! error TS1066: Ambient enum elements can only have integer literal initializers.
}
// Ambient enum with computer member
declare enum E2 {
x = 'foo'.length
~
!!! Ambient enum elements can only have integer literal initializers.
!!! error TS1066: Ambient enum elements can only have integer literal initializers.
}
// Ambient module with initializers for values, bodies for functions / classes
declare module M1 {
var x = 3;
~
!!! Initializers are not allowed in ambient contexts.
!!! error TS1039: Initializers are not allowed in ambient contexts.
function fn() { }
~
!!! A function implementation cannot be declared in an ambient context.
!!! error TS1037: A function implementation cannot be declared in an ambient context.
class C {
static x = 3;
~
!!! Initializers are not allowed in ambient contexts.
!!! error TS1039: Initializers are not allowed in ambient contexts.
y = 4;
~
!!! Initializers are not allowed in ambient contexts.
!!! error TS1039: Initializers are not allowed in ambient contexts.
constructor() { }
~
!!! A constructor implementation cannot be declared in an ambient context.
!!! error TS1111: A constructor implementation cannot be declared in an ambient context.
fn() { }
~
!!! A function implementation cannot be declared in an ambient context.
!!! error TS1037: A function implementation cannot be declared in an ambient context.
static sfn() { }
~
!!! A function implementation cannot be declared in an ambient context.
!!! error TS1037: A function implementation cannot be declared in an ambient context.
}
}
@@ -73,13 +73,13 @@
module M2 {
declare module 'nope' { }
~~~~~~
!!! Ambient external modules cannot be nested in other modules.
!!! error TS2435: Ambient external modules cannot be nested in other modules.
}
// Ambient external module with a string literal name that isn't a top level external module name
declare module '../foo' { }
~~~~~~~~
!!! Ambient external module declaration cannot specify relative module name.
!!! error TS2436: Ambient external module declaration cannot specify relative module name.
// Ambient external module with export assignment and other exported members
declare module 'bar' {
@@ -87,6 +87,6 @@
export var q;
export = n;
~~~~~~~~~~~
!!! An export assignment cannot be used in a module with other exported elements.
!!! error TS2309: An export assignment cannot be used in a module with other exported elements.
}
@@ -5,12 +5,12 @@
declare module "ext" {
~~~~~
!!! Ambient external modules cannot be nested in other modules.
!!! error TS2435: Ambient external modules cannot be nested in other modules.
export class C { }
}
// Cannot resolve this ext module reference
import ext = require("ext");
~~~~~
!!! Cannot find external module 'ext'.
!!! error TS2307: Cannot find external module 'ext'.
var x = ext;
@@ -2,5 +2,5 @@
module M {
export declare module "M" { }
~~~
!!! Ambient external modules cannot be nested in other modules.
!!! error TS2435: Ambient external modules cannot be nested in other modules.
}
@@ -1,4 +1,4 @@
==== tests/cases/conformance/ambient/ambientExternalModuleInsideNonAmbientExternalModule.ts (1 errors) ====
export declare module "M" { }
~~~
!!! Ambient external modules cannot be nested in other modules.
!!! error TS2435: Ambient external modules cannot be nested in other modules.
@@ -2,9 +2,9 @@
declare module "OuterModule" {
import m2 = require("./SubModule");
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! Import declaration in an ambient external module declaration cannot reference external module through relative external module name.
!!! error TS2439: Import declaration in an ambient external module declaration cannot reference external module through relative external module name.
~~~~~~~~~~~~~
!!! Cannot find external module './SubModule'.
!!! error TS2307: Cannot find external module './SubModule'.
class SubModule {
public static StaticVar: number;
public InstanceVar: number;
@@ -1,12 +1,12 @@
==== tests/cases/compiler/ambientExternalModuleWithRelativeModuleName.ts (2 errors) ====
declare module "./relativeModule" {
~~~~~~~~~~~~~~~~~~
!!! Ambient external module declaration cannot specify relative module name.
!!! error TS2436: Ambient external module declaration cannot specify relative module name.
var x: string;
}
declare module ".\\relativeModule" {
~~~~~~~~~~~~~~~~~~~
!!! Ambient external module declaration cannot specify relative module name.
!!! error TS2436: Ambient external module declaration cannot specify relative module name.
var x: string;
}
@@ -3,11 +3,11 @@
declare class A {
get length() : number;
~~~~~~
!!! An accessor cannot be declared in an ambient context.
!!! error TS1086: An accessor cannot be declared in an ambient context.
}
declare class B {
get length() { return 0; }
~~~~~~
!!! An accessor cannot be declared in an ambient context.
!!! error TS1086: An accessor cannot be declared in an ambient context.
}
@@ -2,37 +2,37 @@
declare module M {
break;
~~~~~
!!! Statements are not allowed in ambient contexts.
!!! error TS1036: Statements are not allowed in ambient contexts.
continue;
~~~~~~~~
!!! Statements are not allowed in ambient contexts.
!!! error TS1036: Statements are not allowed in ambient contexts.
debugger;
~~~~~~~~
!!! Statements are not allowed in ambient contexts.
!!! error TS1036: Statements are not allowed in ambient contexts.
do { } while (true);
~~
!!! Statements are not allowed in ambient contexts.
!!! error TS1036: Statements are not allowed in ambient contexts.
var x;
for (x in null) { }
~~~
!!! Statements are not allowed in ambient contexts.
!!! error TS1036: Statements are not allowed in ambient contexts.
~~~~
!!! The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter.
!!! error TS2407: The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter.
if (true) { } else { }
~~
!!! Statements are not allowed in ambient contexts.
!!! error TS1036: Statements are not allowed in ambient contexts.
1;
~
!!! Statements are not allowed in ambient contexts.
!!! error TS1036: Statements are not allowed in ambient contexts.
L: var y;
~
!!! Statements are not allowed in ambient contexts.
!!! error TS1036: Statements are not allowed in ambient contexts.
return;
~~~~~~
!!! Statements are not allowed in ambient contexts.
!!! error TS1036: Statements are not allowed in ambient contexts.
switch (x) {
~~~~~~
!!! Statements are not allowed in ambient contexts.
!!! error TS1036: Statements are not allowed in ambient contexts.
case 1:
break;
default:
@@ -40,10 +40,10 @@
}
throw "nooo";
~~~~~
!!! Statements are not allowed in ambient contexts.
!!! error TS1036: Statements are not allowed in ambient contexts.
try {
~~~
!!! Statements are not allowed in ambient contexts.
!!! error TS1036: Statements are not allowed in ambient contexts.
}
catch (e) {
}
@@ -51,8 +51,8 @@
}
with (x) {
~~~~
!!! Statements are not allowed in ambient contexts.
!!! error TS1036: Statements are not allowed in ambient contexts.
~
!!! All symbols within a 'with' block will be resolved to 'any'.
!!! error TS2410: All symbols within a 'with' block will be resolved to 'any'.
}
}
@@ -4,13 +4,13 @@
var r2 = < <T>(x: T) => T>f; // valid
var r3 = <<T>(x: T) => T>f; // ambiguous, appears to the parser as a << operation
~~
!!! Expression expected.
!!! error TS1109: Expression expected.
~
!!! ')' expected.
!!! error TS1005: ')' expected.
~
!!! ',' expected.
!!! error TS1005: ',' expected.
~~
!!! ';' expected.
!!! error TS1005: ';' expected.
~
!!! Cannot find name 'x'.
!!! error TS2304: Cannot find name 'x'.
@@ -5,7 +5,7 @@
var x: number = foof("s", null);
var y: string = foof("s", null);
~
!!! Type 'number' is not assignable to type 'string'.
!!! error TS2323: Type 'number' is not assignable to type 'string'.
function foof2(bar: string, x): string;
function foof2(bar: string, y): number;
@@ -13,4 +13,4 @@
var x2: string = foof2("s", null);
var y2: number = foof2("s", null);
~~
!!! Type 'string' is not assignable to type 'number'.
!!! error TS2323: Type 'string' is not assignable to type 'number'.
@@ -3,5 +3,5 @@
import m1 = require("m2")
~~~~
!!! Cannot find external module 'm2'.
!!! error TS2307: Cannot find external module 'm2'.
m1.f();
@@ -3,5 +3,5 @@
import m1 = require("m2")
~~~~
!!! Cannot find external module 'm2'.
!!! error TS2307: Cannot find external module 'm2'.
m1.f();
@@ -1,40 +1,40 @@
==== tests/cases/compiler/anonymousModules.ts (13 errors) ====
module {
~
!!! ';' expected.
!!! error TS1005: ';' expected.
~~~~~~
!!! Cannot find name 'module'.
!!! error TS2304: Cannot find name 'module'.
export var foo = 1;
~~~~~~
!!! Statement expected.
!!! error TS1129: Statement expected.
~~~~~~~~~~~~~~~~~~~
!!! Cannot compile external modules unless the '--module' flag is provided.
!!! error TS1148: Cannot compile external modules unless the '--module' flag is provided.
module {
~
!!! ';' expected.
!!! error TS1005: ';' expected.
~~~~~~
!!! Cannot find name 'module'.
!!! error TS2304: Cannot find name 'module'.
export var bar = 1;
~~~~~~
!!! Statement expected.
!!! error TS1129: Statement expected.
~~~
!!! Individual declarations in merged declaration bar must be all exported or all local.
!!! error TS2395: Individual declarations in merged declaration bar must be all exported or all local.
}
~
!!! Declaration or statement expected.
!!! error TS1128: Declaration or statement expected.
var bar = 2;
~~~
!!! Individual declarations in merged declaration bar must be all exported or all local.
!!! error TS2395: Individual declarations in merged declaration bar must be all exported or all local.
module {
~
!!! ';' expected.
!!! error TS1005: ';' expected.
~~~~~~
!!! Cannot find name 'module'.
!!! error TS2304: Cannot find name 'module'.
var x = bar;
}
}
~
!!! Declaration or statement expected.
!!! error TS1128: Declaration or statement expected.
@@ -10,4 +10,4 @@
// grammar allows this for constructors
var d = new x<any>(x); // no error
~~~~~~~~~~~~~
!!! Untyped function calls may not accept type arguments.
!!! error TS2347: Untyped function calls may not accept type arguments.
@@ -5,15 +5,15 @@
var x: any;
var a = x<number>();
~~~~~~~~~~~
!!! Untyped function calls may not accept type arguments.
!!! error TS2347: Untyped function calls may not accept type arguments.
var b = x<string>('hello');
~~~~~~~~~~~~~~~~~~
!!! Untyped function calls may not accept type arguments.
!!! error TS2347: Untyped function calls may not accept type arguments.
class C { foo: string; }
var c = x<C>(x);
~~~~~~~
!!! Untyped function calls may not accept type arguments.
!!! error TS2347: Untyped function calls may not accept type arguments.
var d = x<any>(x);
~~~~~~~~~
!!! Untyped function calls may not accept type arguments.
!!! error TS2347: Untyped function calls may not accept type arguments.
@@ -114,7 +114,7 @@
interface I18<T, U extends T> {
~~~~~~~~~~~
!!! Constraint of a type parameter cannot reference any type parameter from the same type parameter list.
!!! error TS2313: Constraint of a type parameter cannot reference any type parameter from the same type parameter list.
[x: string]: U;
foo: any;
}
@@ -4,6 +4,6 @@
var myFn;
function myFn() { }
~~~~
!!! Duplicate identifier 'myFn'.
!!! error TS2300: Duplicate identifier 'myFn'.
}
@@ -1,19 +1,19 @@
==== tests/cases/compiler/anyIdenticalToItself.ts (3 errors) ====
function foo(x: any);
~~~~~~~~~~~~~~~~~~~~~
!!! Overload signature is not compatible with function implementation.
!!! error TS2394: Overload signature is not compatible with function implementation.
function foo(x: any);
function foo(x: any, y: number) { }
class C {
get X(): any {
~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
var y: any;
return y;
}
set X(v: any) {
~
!!! Accessors are only available when targeting ECMAScript 5 and higher.
!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
}
}
@@ -9,9 +9,9 @@
// is String (S) a subtype of U extends String (T)? Would only be true if we used the apparent type of U (T)
class Derived<U> extends Base<string> { // error
~~~~~~~
!!! Class 'Derived<U>' incorrectly extends base class 'Base<string>':
!!! Types of property 'x' are incompatible:
!!! Type 'String' is not assignable to type 'string'.
!!! error TS2416: Class 'Derived<U>' incorrectly extends base class 'Base<string>':
!!! error TS2416: Types of property 'x' are incompatible:
!!! error TS2416: Type 'String' is not assignable to type 'string'.
x: String;
}
@@ -9,8 +9,8 @@
// is String (S) a subtype of U extends String (T)? Would only be true if we used the apparent type of U (T)
class Derived<U extends String> extends Base { // error
~~~~~~~
!!! Class 'Derived<U>' incorrectly extends base class 'Base':
!!! Types of property 'x' are incompatible:
!!! Type 'U' is not assignable to type 'string'.
!!! error TS2416: Class 'Derived<U>' incorrectly extends base class 'Base':
!!! error TS2416: Types of property 'x' are incompatible:
!!! error TS2416: Type 'U' is not assignable to type 'string'.
x: U;
}
@@ -3,6 +3,6 @@
function foo(a) {
arguments = 10; /// This shouldnt be of type number and result in error.
~~~~~~~~~
!!! Type 'number' is not assignable to type 'IArguments':
!!! Property 'length' is missing in type 'Number'.
!!! error TS2322: Type 'number' is not assignable to type 'IArguments':
!!! error TS2322: Property 'length' is missing in type 'Number'.
}
@@ -3,37 +3,37 @@
f += ''; // error
~
!!! Invalid left-hand side of assignment expression.
!!! error TS2364: Invalid left-hand side of assignment expression.
f += 1; // error
~~~~~~
!!! Operator '+=' cannot be applied to types 'typeof f' and 'number'.
!!! error TS2365: Operator '+=' cannot be applied to types 'typeof f' and 'number'.
f -= 1; // error
~
!!! The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
f *= 1; // error
~
!!! The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
f /= 1; // error
~
!!! The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
f %= 1; // error
~
!!! The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
f &= 1; // error
~
!!! The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
f |= 1; // error
~
!!! The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
f <<= 1; // error
~
!!! The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
f >>= 1; // error
~
!!! The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
f >>>= 1; // error
~
!!! The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
f ^= 1; // error
~
!!! The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
@@ -3,19 +3,19 @@
var y: Number;
var z = x + y;
~~~~~
!!! Operator '+' cannot be applied to types 'Number' and 'Number'.
!!! error TS2365: Operator '+' cannot be applied to types 'Number' and 'Number'.
var z2 = x - y;
~
!!! The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
~
!!! The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
var z3 = x * y;
~
!!! The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
~
!!! The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
var z4 = x / y;
~
!!! The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
~
!!! The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
@@ -2,21 +2,21 @@
var obj = function f<T>(a: T, b: T) {
var z1 = a + b;
~~~~~
!!! Operator '+' cannot be applied to types 'T' and 'T'.
!!! error TS2365: Operator '+' cannot be applied to types 'T' and 'T'.
var z2 = a - b;
~
!!! The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
~
!!! The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
var z3 = a * b;
~
!!! The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
~
!!! The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
var z4 = a / b;
~
!!! The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
~
!!! The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
!!! error TS2363: The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
return a;
};

Some files were not shown because too many files have changed in this diff Show More