merge with master

This commit is contained in:
Vladimir Matveev
2014-10-24 15:44:12 -07:00
357 changed files with 27177 additions and 10018 deletions
@@ -557,7 +557,7 @@ module NonEmptyTypes {
>x : string
>y : base
>base : base
>[{ x: undefined, y: new base() }, { x: '', y: new derived() }] : Array<{ x: undefined; y: base; } | { x: string; y: derived; }>
>[{ x: undefined, y: new base() }, { x: '', y: new derived() }] : ({ x: undefined; y: base; } | { x: string; y: derived; })[]
>{ x: undefined, y: new base() } : { x: undefined; y: base; }
>x : undefined
>undefined : undefined
@@ -40,7 +40,7 @@ function bar(animals: { [n: number]: IAnimal }) { }
foo([
>foo([ new Giraffe(), new Elephant()]) : void
>foo : (animals: IAnimal[]) => void
>[ new Giraffe(), new Elephant()] : Array<Giraffe | Elephant>
>[ new Giraffe(), new Elephant()] : (Giraffe | Elephant)[]
new Giraffe(),
>new Giraffe() : Giraffe
@@ -54,7 +54,7 @@ foo([
bar([
>bar([ new Giraffe(), new Elephant()]) : void
>bar : (animals: { [x: number]: IAnimal; }) => void
>[ new Giraffe(), new Elephant()] : Array<Giraffe | Elephant>
>[ new Giraffe(), new Elephant()] : (Giraffe | Elephant)[]
new Giraffe(),
>new Giraffe() : Giraffe
@@ -67,8 +67,8 @@ bar([
]); // Legal because of the contextual type IAnimal provided by the parameter
var arr = [new Giraffe(), new Elephant()];
>arr : Array<Giraffe | Elephant>
>[new Giraffe(), new Elephant()] : Array<Giraffe | Elephant>
>arr : (Giraffe | Elephant)[]
>[new Giraffe(), new Elephant()] : (Giraffe | Elephant)[]
>new Giraffe() : Giraffe
>Giraffe : typeof Giraffe
>new Elephant() : Elephant
@@ -77,10 +77,10 @@ var arr = [new Giraffe(), new Elephant()];
foo(arr); // ok because arr is Array<Giraffe|Elephant> not {}[]
>foo(arr) : void
>foo : (animals: IAnimal[]) => void
>arr : Array<Giraffe | Elephant>
>arr : (Giraffe | Elephant)[]
bar(arr); // ok because arr is Array<Giraffe|Elephant> not {}[]
>bar(arr) : void
>bar : (animals: { [x: number]: IAnimal; }) => void
>arr : Array<Giraffe | Elephant>
>arr : (Giraffe | Elephant)[]
@@ -25,7 +25,7 @@ class ActionB extends Action {
var x1: Action[] = [
>x1 : Action[]
>Action : Action
>[ { id: 2, trueness: false }, { id: 3, name: "three" }] : Array<{ id: number; trueness: boolean; } | { id: number; name: string; }>
>[ { id: 2, trueness: false }, { id: 3, name: "three" }] : ({ id: number; trueness: boolean; } | { id: number; name: string; })[]
{ id: 2, trueness: false },
>{ id: 2, trueness: false } : { id: number; trueness: boolean; }
@@ -42,7 +42,7 @@ var x1: Action[] = [
var x2: Action[] = [
>x2 : Action[]
>Action : Action
>[ new ActionA(), new ActionB()] : Array<ActionA | ActionB>
>[ new ActionA(), new ActionB()] : (ActionA | ActionB)[]
new ActionA(),
>new ActionA() : ActionA
@@ -78,7 +78,7 @@ var z1: { id: number }[] =
>id : number
[
>[ { id: 2, trueness: false }, { id: 3, name: "three" } ] : Array<{ id: number; trueness: boolean; } | { id: number; name: string; }>
>[ { id: 2, trueness: false }, { id: 3, name: "three" } ] : ({ id: number; trueness: boolean; } | { id: number; name: string; })[]
{ id: 2, trueness: false },
>{ id: 2, trueness: false } : { id: number; trueness: boolean; }
@@ -97,7 +97,7 @@ var z2: { id: number }[] =
>id : number
[
>[ new ActionA(), new ActionB() ] : Array<ActionA | ActionB>
>[ new ActionA(), new ActionB() ] : (ActionA | ActionB)[]
new ActionA(),
>new ActionA() : ActionA
@@ -17,27 +17,27 @@ var c: { x: number; a?: number };
>a : number
var as = [a, b]; // { x: number; y?: number };[]
>as : { x: number; y?: number; }[]
>[a, b] : { x: number; y?: number; }[]
>as : ({ x: number; y?: number; } | { x: number; z?: number; })[]
>[a, b] : ({ x: number; y?: number; } | { x: number; z?: number; })[]
>a : { x: number; y?: number; }
>b : { x: number; z?: number; }
var bs = [b, a]; // { x: number; z?: number };[]
>bs : { x: number; y?: number; }[]
>[b, a] : { x: number; y?: number; }[]
>bs : ({ x: number; y?: number; } | { x: number; z?: number; })[]
>[b, a] : ({ x: number; y?: number; } | { x: number; z?: number; })[]
>b : { x: number; z?: number; }
>a : { x: number; y?: number; }
var cs = [a, b, c]; // { x: number; y?: number };[]
>cs : { x: number; y?: number; }[]
>[a, b, c] : { x: number; y?: number; }[]
>cs : ({ x: number; y?: number; } | { x: number; z?: number; } | { x: number; a?: number; })[]
>[a, b, c] : ({ x: number; y?: number; } | { x: number; z?: number; } | { x: number; a?: number; })[]
>a : { x: number; y?: number; }
>b : { x: number; z?: number; }
>c : { x: number; a?: number; }
var ds = [(x: Object) => 1, (x: string) => 2]; // { (x:Object) => number }[]
>ds : { (x: Object): number; }[]
>[(x: Object) => 1, (x: string) => 2] : { (x: Object): number; }[]
>ds : ((x: Object) => number)[]
>[(x: Object) => 1, (x: string) => 2] : ((x: Object) => number)[]
>(x: Object) => 1 : (x: Object) => number
>x : Object
>Object : Object
@@ -45,8 +45,8 @@ var ds = [(x: Object) => 1, (x: string) => 2]; // { (x:Object) => number }[]
>x : string
var es = [(x: string) => 2, (x: Object) => 1]; // { (x:string) => number }[]
>es : { (x: string): number; }[]
>[(x: string) => 2, (x: Object) => 1] : { (x: string): number; }[]
>es : ((x: string) => number)[]
>[(x: string) => 2, (x: Object) => 1] : ((x: string) => number)[]
>(x: string) => 2 : (x: string) => number
>x : string
>(x: Object) => 1 : (x: Object) => number
@@ -54,8 +54,8 @@ var es = [(x: string) => 2, (x: Object) => 1]; // { (x:string) => number }[]
>Object : Object
var fs = [(a: { x: number; y?: number }) => 1, (b: { x: number; z?: number }) => 2]; // (a: { x: number; y?: number }) => number[]
>fs : { (a: { x: number; y?: number; }): number; }[]
>[(a: { x: number; y?: number }) => 1, (b: { x: number; z?: number }) => 2] : { (a: { x: number; y?: number; }): number; }[]
>fs : (((a: { x: number; y?: number; }) => number) | ((b: { x: number; z?: number; }) => number))[]
>[(a: { x: number; y?: number }) => 1, (b: { x: number; z?: number }) => 2] : (((a: { x: number; y?: number; }) => number) | ((b: { x: number; z?: number; }) => number))[]
>(a: { x: number; y?: number }) => 1 : (a: { x: number; y?: number; }) => number
>a : { x: number; y?: number; }
>x : number
@@ -66,8 +66,8 @@ var fs = [(a: { x: number; y?: number }) => 1, (b: { x: number; z?: number }) =>
>z : number
var gs = [(b: { x: number; z?: number }) => 2, (a: { x: number; y?: number }) => 1]; // (b: { x: number; z?: number }) => number[]
>gs : { (b: { x: number; z?: number; }): number; }[]
>[(b: { x: number; z?: number }) => 2, (a: { x: number; y?: number }) => 1] : { (b: { x: number; z?: number; }): number; }[]
>gs : (((b: { x: number; z?: number; }) => number) | ((a: { x: number; y?: number; }) => number))[]
>[(b: { x: number; z?: number }) => 2, (a: { x: number; y?: number }) => 1] : (((b: { x: number; z?: number; }) => number) | ((a: { x: number; y?: number; }) => number))[]
>(b: { x: number; z?: number }) => 2 : (b: { x: number; z?: number; }) => number
>b : { x: number; z?: number; }
>x : number
@@ -2,15 +2,15 @@
// Empty array literal with no contextual type has type Undefined[]
var arr1= [[], [1], ['']];
>arr1 : Array<string[] | number[]>
>[[], [1], ['']] : Array<string[] | number[]>
>arr1 : (string[] | number[])[]
>[[], [1], ['']] : (string[] | number[])[]
>[] : undefined[]
>[1] : number[]
>[''] : string[]
var arr2 = [[null], [1], ['']];
>arr2 : Array<string[] | number[]>
>[[null], [1], ['']] : Array<string[] | number[]>
>arr2 : (string[] | number[])[]
>[[null], [1], ['']] : (string[] | number[])[]
>[null] : null[]
>[1] : number[]
>[''] : string[]
@@ -65,7 +65,7 @@ var context1: { [n: number]: { a: string; b: number; }; } = [{ a: '', b: 0, c: '
>n : number
>a : string
>b : number
>[{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }] : Array<{ a: string; b: number; c: string; } | { a: string; b: number; c: number; }>
>[{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }] : ({ a: string; b: number; c: string; } | { a: string; b: number; c: number; })[]
>{ a: '', b: 0, c: '' } : { a: string; b: number; c: string; }
>a : string
>b : number
@@ -76,8 +76,8 @@ var context1: { [n: number]: { a: string; b: number; }; } = [{ a: '', b: 0, c: '
>c : number
var context2 = [{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }];
>context2 : Array<{ a: string; b: number; c: string; } | { a: string; b: number; c: number; }>
>[{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }] : Array<{ a: string; b: number; c: string; } | { a: string; b: number; c: number; }>
>context2 : ({ a: string; b: number; c: string; } | { a: string; b: number; c: number; })[]
>[{ a: '', b: 0, c: '' }, { a: "", b: 3, c: 0 }] : ({ a: string; b: number; c: string; } | { a: string; b: number; c: number; })[]
>{ a: '', b: 0, c: '' } : { a: string; b: number; c: string; }
>a : string
>b : number
@@ -105,7 +105,7 @@ class Derived2 extends Base { private n };
var context3: Base[] = [new Derived1(), new Derived2()];
>context3 : Base[]
>Base : Base
>[new Derived1(), new Derived2()] : Array<Derived1 | Derived2>
>[new Derived1(), new Derived2()] : (Derived1 | Derived2)[]
>new Derived1() : Derived1
>Derived1 : typeof Derived1
>new Derived2() : Derived2
@@ -61,8 +61,8 @@ var xs = [list, myList]; // {}[]
>myList : MyList<number>
var ys = [list, list2]; // {}[]
>ys : Array<List<number> | List<string>>
>[list, list2] : Array<List<number> | List<string>>
>ys : (List<number> | List<string>)[]
>[list, list2] : (List<number> | List<string>)[]
>list : List<number>
>list2 : List<string>
@@ -2,8 +2,8 @@
// valid uses of arrays of function types
var x = [() => 1, () => { }];
>x : { (): void; }[]
>[() => 1, () => { }] : { (): void; }[]
>x : (() => void)[]
>[() => 1, () => { }] : (() => void)[]
>() => 1 : () => number
>() => { } : () => void
@@ -11,7 +11,7 @@ var r2 = x[0]();
>r2 : void
>x[0]() : void
>x[0] : () => void
>x : { (): void; }[]
>x : (() => void)[]
class C {
>C : C
@@ -48,14 +48,14 @@ var r3 = true ? 1 : {};
>{} : {}
var r4 = true ? a : b; // typeof a
>r4 : { x: number; y?: number; }
>true ? a : b : { x: number; y?: number; }
>r4 : { x: number; y?: number; } | { x: number; z?: number; }
>true ? a : b : { x: number; y?: number; } | { x: number; z?: number; }
>a : { x: number; y?: number; }
>b : { x: number; z?: number; }
var r5 = true ? b : a; // typeof b
>r5 : { x: number; y?: number; }
>true ? b : a : { x: number; y?: number; }
>r5 : { x: number; y?: number; } | { x: number; z?: number; }
>true ? b : a : { x: number; y?: number; } | { x: number; z?: number; }
>b : { x: number; z?: number; }
>a : { x: number; y?: number; }
@@ -75,8 +75,8 @@ t4 = [E1.one, E2.two, 20];
>two : E2
var e1 = t1[2]; // {}
>e1 : { (x: number): string; } | { (x: number): number; }
>t1[2] : { (x: number): string; } | { (x: number): number; }
>e1 : ((x: number) => string) | ((x: number) => number)
>t1[2] : ((x: number) => string) | ((x: number) => number)
>t1 : [(x: number) => string, (x: number) => number]
var e2 = t2[2]; // {}
@@ -0,0 +1,198 @@
1 >var a = [10, 20, 30];
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 21) SpanInfo: {"start":0,"length":20}
>var a = [10, 20, 30]
>:=> (line 1, col 0) to (line 1, col 20)
--------------------------------
2 >function foo(a: number) {
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (22 to 47) SpanInfo: {"start":52,"length":8}
>return a
>:=> (line 3, col 4) to (line 3, col 12)
--------------------------------
3 > return a;
~~~~~~~~~~~~~~ => Pos: (48 to 61) SpanInfo: {"start":52,"length":8}
>return a
>:=> (line 3, col 4) to (line 3, col 12)
--------------------------------
4 >}
~~ => Pos: (62 to 63) SpanInfo: {"start":62,"length":1}
>}
>:=> (line 4, col 0) to (line 4, col 1)
--------------------------------
5 >a = [foo(30), (function () {
~~~~~ => Pos: (64 to 68) SpanInfo: {"start":64,"length":49}
>a = [foo(30), (function () {
> return 30;
>})()]
>:=> (line 5, col 0) to (line 7, col 5)
5 >a = [foo(30), (function () {
~~~~~~~~ => Pos: (69 to 76) SpanInfo: {"start":69,"length":7}
>foo(30)
>:=> (line 5, col 5) to (line 5, col 12)
5 >a = [foo(30), (function () {
~~ => Pos: (77 to 78) SpanInfo: {"start":78,"length":34}
>(function () {
> return 30;
>})()
>:=> (line 5, col 14) to (line 7, col 4)
5 >a = [foo(30), (function () {
~~~~~~~~~~~~~~ => Pos: (79 to 92) SpanInfo: {"start":97,"length":9}
>return 30
>:=> (line 6, col 4) to (line 6, col 13)
--------------------------------
6 > return 30;
~~~~~~~~~~~~~~~ => Pos: (93 to 107) SpanInfo: {"start":97,"length":9}
>return 30
>:=> (line 6, col 4) to (line 6, col 13)
--------------------------------
7 >})()];
~ => Pos: (108 to 108) SpanInfo: {"start":108,"length":1}
>}
>:=> (line 7, col 0) to (line 7, col 1)
7 >})()];
~~~ => Pos: (109 to 111) SpanInfo: {"start":78,"length":34}
>(function () {
> return 30;
>})()
>:=> (line 5, col 14) to (line 7, col 4)
7 >})()];
~~~ => Pos: (112 to 114) SpanInfo: {"start":64,"length":49}
>a = [foo(30), (function () {
> return 30;
>})()]
>:=> (line 5, col 0) to (line 7, col 5)
--------------------------------
8 >function bar() {
~~~~~~~~~~~~~~~~~ => Pos: (115 to 131) SpanInfo: {"start":136,"length":8}
>return a
>:=> (line 9, col 4) to (line 9, col 12)
--------------------------------
9 > return a;
~~~~~~~~~~~~~~ => Pos: (132 to 145) SpanInfo: {"start":136,"length":8}
>return a
>:=> (line 9, col 4) to (line 9, col 12)
--------------------------------
10 >}
~~ => Pos: (146 to 147) SpanInfo: {"start":146,"length":1}
>}
>:=> (line 10, col 0) to (line 10, col 1)
--------------------------------
11 >var x = bar()[0];
~~~~~~~ => Pos: (148 to 154) SpanInfo: {"start":148,"length":16}
>var x = bar()[0]
>:=> (line 11, col 0) to (line 11, col 16)
11 >var x = bar()[0];
~~~~~~ => Pos: (155 to 160) SpanInfo: {"start":156,"length":5}
>bar()
>:=> (line 11, col 8) to (line 11, col 13)
11 >var x = bar()[0];
~~~~~ => Pos: (161 to 165) SpanInfo: {"start":148,"length":16}
>var x = bar()[0]
>:=> (line 11, col 0) to (line 11, col 16)
--------------------------------
12 >x = (function () {
~~~ => Pos: (166 to 168) SpanInfo: {"start":166,"length":40}
>x = (function () {
> return a;
>})()[x]
>:=> (line 12, col 0) to (line 14, col 7)
12 >x = (function () {
~~ => Pos: (169 to 170) SpanInfo: {"start":170,"length":33}
>(function () {
> return a;
>})()
>:=> (line 12, col 4) to (line 14, col 4)
12 >x = (function () {
~~~~~~~~~~~~~~ => Pos: (171 to 184) SpanInfo: {"start":189,"length":8}
>return a
>:=> (line 13, col 4) to (line 13, col 12)
--------------------------------
13 > return a;
~~~~~~~~~~~~~~ => Pos: (185 to 198) SpanInfo: {"start":189,"length":8}
>return a
>:=> (line 13, col 4) to (line 13, col 12)
--------------------------------
14 >})()[x];
~ => Pos: (199 to 199) SpanInfo: {"start":199,"length":1}
>}
>:=> (line 14, col 0) to (line 14, col 1)
14 >})()[x];
~~~ => Pos: (200 to 202) SpanInfo: {"start":170,"length":33}
>(function () {
> return a;
>})()
>:=> (line 12, col 4) to (line 14, col 4)
14 >})()[x];
~~~~~ => Pos: (203 to 207) SpanInfo: {"start":166,"length":40}
>x = (function () {
> return a;
>})()[x]
>:=> (line 12, col 0) to (line 14, col 7)
--------------------------------
15 >a[(function () {
~~ => Pos: (208 to 209) SpanInfo: {"start":208,"length":36}
>a[(function () {
> return x;
>})()]
>:=> (line 15, col 0) to (line 17, col 5)
15 >a[(function () {
~ => Pos: (210 to 210) SpanInfo: {"start":210,"length":33}
>(function () {
> return x;
>})()
>:=> (line 15, col 2) to (line 17, col 4)
15 >a[(function () {
~~~~~~~~~~~~~~ => Pos: (211 to 224) SpanInfo: {"start":229,"length":8}
>return x
>:=> (line 16, col 4) to (line 16, col 12)
--------------------------------
16 > return x;
~~~~~~~~~~~~~~ => Pos: (225 to 238) SpanInfo: {"start":229,"length":8}
>return x
>:=> (line 16, col 4) to (line 16, col 12)
--------------------------------
17 >})()];
~ => Pos: (239 to 239) SpanInfo: {"start":239,"length":1}
>}
>:=> (line 17, col 0) to (line 17, col 1)
17 >})()];
~~~ => Pos: (240 to 242) SpanInfo: {"start":210,"length":33}
>(function () {
> return x;
>})()
>:=> (line 15, col 2) to (line 17, col 4)
17 >})()];
~~ => Pos: (243 to 244) SpanInfo: {"start":208,"length":36}
>a[(function () {
> return x;
>})()]
>:=> (line 15, col 0) to (line 17, col 5)
@@ -0,0 +1,119 @@
1 >var x = 10;
~~~~~~~~~~~~ => Pos: (0 to 11) SpanInfo: {"start":0,"length":10}
>var x = 10
>:=> (line 1, col 0) to (line 1, col 10)
--------------------------------
2 >var y = 20;
~~~~~~~~~~~~ => Pos: (12 to 23) SpanInfo: {"start":12,"length":10}
>var y = 20
>:=> (line 2, col 0) to (line 2, col 10)
--------------------------------
3 >x += 30;
~~~~~~~~~ => Pos: (24 to 32) SpanInfo: {"start":24,"length":7}
>x += 30
>:=> (line 3, col 0) to (line 3, col 7)
--------------------------------
4 >x *= 0;
~~~~~~~~ => Pos: (33 to 40) SpanInfo: {"start":33,"length":6}
>x *= 0
>:=> (line 4, col 0) to (line 4, col 6)
--------------------------------
5 >x = x + 1;
~~~~~~~~~~~ => Pos: (41 to 51) SpanInfo: {"start":41,"length":9}
>x = x + 1
>:=> (line 5, col 0) to (line 5, col 9)
--------------------------------
6 >x = (function foo() {
~~~ => Pos: (52 to 54) SpanInfo: {"start":52,"length":44}
>x = (function foo() {
> return y;
>})() + y
>:=> (line 6, col 0) to (line 8, col 8)
6 >x = (function foo() {
~~ => Pos: (55 to 56) SpanInfo: {"start":56,"length":36}
>(function foo() {
> return y;
>})()
>:=> (line 6, col 4) to (line 8, col 4)
6 >x = (function foo() {
~~~~~~~~~~~~~~~~~ => Pos: (57 to 73) SpanInfo: {"start":78,"length":8}
>return y
>:=> (line 7, col 4) to (line 7, col 12)
--------------------------------
7 > return y;
~~~~~~~~~~~~~~ => Pos: (74 to 87) SpanInfo: {"start":78,"length":8}
>return y
>:=> (line 7, col 4) to (line 7, col 12)
--------------------------------
8 >})() + y;
~ => Pos: (88 to 88) SpanInfo: {"start":88,"length":1}
>}
>:=> (line 8, col 0) to (line 8, col 1)
8 >})() + y;
~~~ => Pos: (89 to 91) SpanInfo: {"start":56,"length":36}
>(function foo() {
> return y;
>})()
>:=> (line 6, col 4) to (line 8, col 4)
8 >})() + y;
~~~~~~ => Pos: (92 to 97) SpanInfo: {"start":52,"length":44}
>x = (function foo() {
> return y;
>})() + y
>:=> (line 6, col 0) to (line 8, col 8)
--------------------------------
9 >x = y + 30 + (function foo() {
~~~~~~~~~~~~ => Pos: (98 to 109) SpanInfo: {"start":98,"length":54}
>x = y + 30 + (function foo() {
> return y;
>})() * 40
>:=> (line 9, col 0) to (line 11, col 9)
9 >x = y + 30 + (function foo() {
~~ => Pos: (110 to 111) SpanInfo: {"start":111,"length":36}
>(function foo() {
> return y;
>})()
>:=> (line 9, col 13) to (line 11, col 4)
9 >x = y + 30 + (function foo() {
~~~~~~~~~~~~~~~~~ => Pos: (112 to 128) SpanInfo: {"start":133,"length":8}
>return y
>:=> (line 10, col 4) to (line 10, col 12)
--------------------------------
10 > return y;
~~~~~~~~~~~~~~ => Pos: (129 to 142) SpanInfo: {"start":133,"length":8}
>return y
>:=> (line 10, col 4) to (line 10, col 12)
--------------------------------
11 >})() * 40;
~ => Pos: (143 to 143) SpanInfo: {"start":143,"length":1}
>}
>:=> (line 11, col 0) to (line 11, col 1)
11 >})() * 40;
~~~ => Pos: (144 to 146) SpanInfo: {"start":111,"length":36}
>(function foo() {
> return y;
>})()
>:=> (line 9, col 13) to (line 11, col 4)
11 >})() * 40;
~~~~~~ => Pos: (147 to 152) SpanInfo: {"start":98,"length":54}
>x = y + 30 + (function foo() {
> return y;
>})() * 40
>:=> (line 9, col 0) to (line 11, col 9)
@@ -0,0 +1,71 @@
1 >while (true) {
~~~~~~~~~~~~~~~ => Pos: (0 to 14) SpanInfo: {"start":0,"length":12}
>while (true)
>:=> (line 1, col 0) to (line 1, col 12)
--------------------------------
2 > break;
~~~~~~~~~~~ => Pos: (15 to 25) SpanInfo: {"start":19,"length":5}
>break
>:=> (line 2, col 4) to (line 2, col 9)
--------------------------------
3 >}
~~ => Pos: (26 to 27) SpanInfo: {"start":19,"length":5}
>break
>:=> (line 2, col 4) to (line 2, col 9)
--------------------------------
4 >y: while (true) {
~~~~~~~~~~~~~~~~~~ => Pos: (28 to 45) SpanInfo: {"start":31,"length":12}
>while (true)
>:=> (line 4, col 3) to (line 4, col 15)
--------------------------------
5 > break y;
~~~~~~~~~~~~~ => Pos: (46 to 58) SpanInfo: {"start":50,"length":7}
>break y
>:=> (line 5, col 4) to (line 5, col 11)
--------------------------------
6 >}
~~ => Pos: (59 to 60) SpanInfo: {"start":50,"length":7}
>break y
>:=> (line 5, col 4) to (line 5, col 11)
--------------------------------
7 >while (true) {
~~~~~~~~~~~~~~~ => Pos: (61 to 75) SpanInfo: {"start":61,"length":12}
>while (true)
>:=> (line 7, col 0) to (line 7, col 12)
--------------------------------
8 > continue;
~~~~~~~~~~~~~~ => Pos: (76 to 89) SpanInfo: {"start":80,"length":8}
>continue
>:=> (line 8, col 4) to (line 8, col 12)
--------------------------------
9 >}
~~ => Pos: (90 to 91) SpanInfo: {"start":80,"length":8}
>continue
>:=> (line 8, col 4) to (line 8, col 12)
--------------------------------
10 >z: while (true) {
~~~~~~~~~~~~~~~~~~ => Pos: (92 to 109) SpanInfo: {"start":95,"length":12}
>while (true)
>:=> (line 10, col 3) to (line 10, col 15)
--------------------------------
11 > continue z;
~~~~~~~~~~~~~~~~ => Pos: (110 to 125) SpanInfo: {"start":114,"length":10}
>continue z
>:=> (line 11, col 4) to (line 11, col 14)
--------------------------------
12 >}
~ => Pos: (126 to 126) SpanInfo: {"start":114,"length":10}
>continue z
>:=> (line 11, col 4) to (line 11, col 14)
@@ -0,0 +1,365 @@
1 >class Greeter {
~~~~~~~~~~~~~~~~ => Pos: (0 to 15) SpanInfo: {"start":0,"length":396}
>class Greeter {
> constructor(public greeting: string, ...b: string[]) {
> }
> greet() {
> return "<h1>" + this.greeting + "</h1>";
> }
> private x: string;
> private x1: number = 10;
> private fn() {
> return this.greeting;
> }
> get greetings() {
> return this.greeting;
> }
> set greetings(greetings: string) {
> this.greeting = greetings;
> }
>}
>:=> (line 1, col 0) to (line 18, col 1)
--------------------------------
2 > constructor(public greeting: string, ...b: string[]) {
~~~~~~~~~~~~~~~~ => Pos: (16 to 31) SpanInfo: {"start":79,"length":1}
>}
>:=> (line 3, col 4) to (line 3, col 5)
2 > constructor(public greeting: string, ...b: string[]) {
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (32 to 55) SpanInfo: {"start":32,"length":23}
>public greeting: string
>:=> (line 2, col 16) to (line 2, col 39)
2 > constructor(public greeting: string, ...b: string[]) {
~~~~~~~~~~~~~~~~=> Pos: (56 to 71) SpanInfo: {"start":57,"length":14}
>...b: string[]
>:=> (line 2, col 41) to (line 2, col 55)
2 > constructor(public greeting: string, ...b: string[]) {
~~~=> Pos: (72 to 74) SpanInfo: {"start":79,"length":1}
>}
>:=> (line 3, col 4) to (line 3, col 5)
--------------------------------
3 > }
~~~~~~ => Pos: (75 to 80) SpanInfo: {"start":79,"length":1}
>}
>:=> (line 3, col 4) to (line 3, col 5)
--------------------------------
4 > greet() {
~~~~~~~~~~~~~~ => Pos: (81 to 94) SpanInfo: {"start":85,"length":64}
>greet() {
> return "<h1>" + this.greeting + "</h1>";
> }
>:=> (line 4, col 4) to (line 6, col 5)
--------------------------------
5 > return "<h1>" + this.greeting + "</h1>";
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (95 to 143) SpanInfo: {"start":103,"length":39}
>return "<h1>" + this.greeting + "</h1>"
>:=> (line 5, col 8) to (line 5, col 47)
--------------------------------
6 > }
~~~~~~ => Pos: (144 to 149) SpanInfo: {"start":148,"length":1}
>}
>:=> (line 6, col 4) to (line 6, col 5)
--------------------------------
7 > private x: string;
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (150 to 172) SpanInfo: undefined
--------------------------------
8 > private x1: number = 10;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (173 to 201) SpanInfo: {"start":177,"length":24}
>private x1: number = 10;
>:=> (line 8, col 4) to (line 8, col 28)
--------------------------------
9 > private fn() {
~~~~~~~~~~~~~~~~~~~ => Pos: (202 to 220) SpanInfo: {"start":206,"length":50}
>private fn() {
> return this.greeting;
> }
>:=> (line 9, col 4) to (line 11, col 5)
--------------------------------
10 > return this.greeting;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (221 to 250) SpanInfo: {"start":229,"length":20}
>return this.greeting
>:=> (line 10, col 8) to (line 10, col 28)
--------------------------------
11 > }
~~~~~~ => Pos: (251 to 256) SpanInfo: {"start":255,"length":1}
>}
>:=> (line 11, col 4) to (line 11, col 5)
--------------------------------
12 > get greetings() {
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (257 to 278) SpanInfo: {"start":261,"length":53}
>get greetings() {
> return this.greeting;
> }
>:=> (line 12, col 4) to (line 14, col 5)
--------------------------------
13 > return this.greeting;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (279 to 308) SpanInfo: {"start":287,"length":20}
>return this.greeting
>:=> (line 13, col 8) to (line 13, col 28)
--------------------------------
14 > }
~~~~~~ => Pos: (309 to 314) SpanInfo: {"start":313,"length":1}
>}
>:=> (line 14, col 4) to (line 14, col 5)
--------------------------------
15 > set greetings(greetings: string) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (315 to 353) SpanInfo: {"start":319,"length":75}
>set greetings(greetings: string) {
> this.greeting = greetings;
> }
>:=> (line 15, col 4) to (line 17, col 5)
--------------------------------
16 > this.greeting = greetings;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (354 to 388) SpanInfo: {"start":362,"length":25}
>this.greeting = greetings
>:=> (line 16, col 8) to (line 16, col 33)
--------------------------------
17 > }
~~~~~~ => Pos: (389 to 394) SpanInfo: {"start":393,"length":1}
>}
>:=> (line 17, col 4) to (line 17, col 5)
--------------------------------
18 >}
~~ => Pos: (395 to 396) SpanInfo: {"start":395,"length":1}
>}
>:=> (line 18, col 0) to (line 18, col 1)
--------------------------------
19 >class Greeter2 {
~~~~~~~~~~~~~~~~~ => Pos: (397 to 413) SpanInfo: {"start":397,"length":18}
>class Greeter2 {
>}
>:=> (line 19, col 0) to (line 20, col 1)
--------------------------------
20 >}
~~ => Pos: (414 to 415) SpanInfo: {"start":414,"length":1}
>}
>:=> (line 20, col 0) to (line 20, col 1)
--------------------------------
21 >class Greeter1
~~~~~~~~~~~~~~~~ => Pos: (416 to 431) SpanInfo: {"start":416,"length":419}
>class Greeter1
>{
> constructor(public greeting: string, ...b: string[])
> {
> }
> greet()
> {
> return "<h1>" + this.greeting + "</h1>";
> }
> private x: string;
> private x1: number = 10;
> private fn()
> {
> return this.greeting;
> }
> get greetings()
> {
> return this.greeting;
> }
> set greetings(greetings: string)
> {
> this.greeting = greetings;
> }
>}
>:=> (line 21, col 0) to (line 44, col 1)
--------------------------------
22 >{
~~ => Pos: (432 to 433) SpanInfo: {"start":501,"length":1}
>}
>:=> (line 25, col 4) to (line 25, col 5)
--------------------------------
23 > constructor(public greeting: string, ...b: string[])
~~~~~~~~~~~~~~~~ => Pos: (434 to 449) SpanInfo: {"start":501,"length":1}
>}
>:=> (line 25, col 4) to (line 25, col 5)
23 > constructor(public greeting: string, ...b: string[])
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (450 to 473) SpanInfo: {"start":450,"length":23}
>public greeting: string
>:=> (line 23, col 16) to (line 23, col 39)
23 > constructor(public greeting: string, ...b: string[])
~~~~~~~~~~~~~~~~~=> Pos: (474 to 490) SpanInfo: {"start":475,"length":14}
>...b: string[]
>:=> (line 23, col 41) to (line 23, col 55)
--------------------------------
24 > {
~~~~~~ => Pos: (491 to 496) SpanInfo: {"start":501,"length":1}
>}
>:=> (line 25, col 4) to (line 25, col 5)
--------------------------------
25 > }
~~~~~~ => Pos: (497 to 502) SpanInfo: {"start":501,"length":1}
>}
>:=> (line 25, col 4) to (line 25, col 5)
--------------------------------
26 > greet()
~~~~~~~~~~~~ => Pos: (503 to 514) SpanInfo: {"start":507,"length":68}
>greet()
> {
> return "<h1>" + this.greeting + "</h1>";
> }
>:=> (line 26, col 4) to (line 29, col 5)
--------------------------------
27 > {
~~~~~~ => Pos: (515 to 520) SpanInfo: {"start":529,"length":39}
>return "<h1>" + this.greeting + "</h1>"
>:=> (line 28, col 8) to (line 28, col 47)
--------------------------------
28 > return "<h1>" + this.greeting + "</h1>";
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (521 to 569) SpanInfo: {"start":529,"length":39}
>return "<h1>" + this.greeting + "</h1>"
>:=> (line 28, col 8) to (line 28, col 47)
--------------------------------
29 > }
~~~~~~ => Pos: (570 to 575) SpanInfo: {"start":574,"length":1}
>}
>:=> (line 29, col 4) to (line 29, col 5)
--------------------------------
30 > private x: string;
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (576 to 598) SpanInfo: undefined
--------------------------------
31 > private x1: number = 10;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (599 to 627) SpanInfo: {"start":603,"length":24}
>private x1: number = 10;
>:=> (line 31, col 4) to (line 31, col 28)
--------------------------------
32 > private fn()
~~~~~~~~~~~~~~~~~ => Pos: (628 to 644) SpanInfo: {"start":632,"length":54}
>private fn()
> {
> return this.greeting;
> }
>:=> (line 32, col 4) to (line 35, col 5)
--------------------------------
33 > {
~~~~~~ => Pos: (645 to 650) SpanInfo: {"start":659,"length":20}
>return this.greeting
>:=> (line 34, col 8) to (line 34, col 28)
--------------------------------
34 > return this.greeting;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (651 to 680) SpanInfo: {"start":659,"length":20}
>return this.greeting
>:=> (line 34, col 8) to (line 34, col 28)
--------------------------------
35 > }
~~~~~~ => Pos: (681 to 686) SpanInfo: {"start":685,"length":1}
>}
>:=> (line 35, col 4) to (line 35, col 5)
--------------------------------
36 > get greetings()
~~~~~~~~~~~~~~~~~~~~~ => Pos: (687 to 707) SpanInfo: {"start":691,"length":58}
>get greetings()
> {
> return this.greeting;
> }
>:=> (line 36, col 4) to (line 39, col 5)
--------------------------------
37 > {
~~~~~~ => Pos: (708 to 713) SpanInfo: {"start":722,"length":20}
>return this.greeting
>:=> (line 38, col 8) to (line 38, col 28)
--------------------------------
38 > return this.greeting;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (714 to 743) SpanInfo: {"start":722,"length":20}
>return this.greeting
>:=> (line 38, col 8) to (line 38, col 28)
--------------------------------
39 > }
~~~~~~ => Pos: (744 to 749) SpanInfo: {"start":748,"length":1}
>}
>:=> (line 39, col 4) to (line 39, col 5)
--------------------------------
40 > set greetings(greetings: string)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (750 to 786) SpanInfo: {"start":754,"length":79}
>set greetings(greetings: string)
> {
> this.greeting = greetings;
> }
>:=> (line 40, col 4) to (line 43, col 5)
--------------------------------
41 > {
~~~~~~ => Pos: (787 to 792) SpanInfo: {"start":801,"length":25}
>this.greeting = greetings
>:=> (line 42, col 8) to (line 42, col 33)
--------------------------------
42 > this.greeting = greetings;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (793 to 827) SpanInfo: {"start":801,"length":25}
>this.greeting = greetings
>:=> (line 42, col 8) to (line 42, col 33)
--------------------------------
43 > }
~~~~~~ => Pos: (828 to 833) SpanInfo: {"start":832,"length":1}
>}
>:=> (line 43, col 4) to (line 43, col 5)
--------------------------------
44 >}
~~ => Pos: (834 to 835) SpanInfo: {"start":834,"length":1}
>}
>:=> (line 44, col 0) to (line 44, col 1)
--------------------------------
45 >class Greeter12
~~~~~~~~~~~~~~~~ => Pos: (836 to 851) SpanInfo: {"start":836,"length":19}
>class Greeter12
>{
>}
>:=> (line 45, col 0) to (line 47, col 1)
--------------------------------
46 >{
~~ => Pos: (852 to 853) SpanInfo: {"start":854,"length":1}
>}
>:=> (line 47, col 0) to (line 47, col 1)
--------------------------------
47 >}
~ => Pos: (854 to 854) SpanInfo: {"start":854,"length":1}
>}
>:=> (line 47, col 0) to (line 47, col 1)
@@ -0,0 +1,31 @@
1 >declare class Greeter {
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 23) SpanInfo: undefined
--------------------------------
2 > public greeting: string;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (24 to 52) SpanInfo: undefined
--------------------------------
3 > constructor(greeting: string, ...b: string[]);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (53 to 103) SpanInfo: undefined
--------------------------------
4 > greet(): string;
~~~~~~~~~~~~~~~~~~~~~ => Pos: (104 to 124) SpanInfo: undefined
--------------------------------
5 > private val;
~~~~~~~~~~~~~~~~~ => Pos: (125 to 141) SpanInfo: undefined
--------------------------------
6 > static x: number;
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (142 to 163) SpanInfo: undefined
--------------------------------
7 > static fn(a: number, ...b:string[]);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (164 to 204) SpanInfo: undefined
--------------------------------
8 >}
~ => Pos: (205 to 205) SpanInfo: undefined
@@ -0,0 +1,356 @@
1 >module Foo.Bar {
~~~~~~~~~~~ => Pos: (0 to 10) SpanInfo: {"start":0,"length":881}
>module Foo.Bar {
> "use strict";
>
> class Greeter {
> constructor(public greeting: string) {
> }
>
> greet() {
> return "<h1>" + this.greeting + "</h1>";
> }
> }
>
>
> function foo(greeting: string): Greeter {
> return new Greeter(greeting);
> }
>
> var greeter = new Greeter("Hello, world!");
> var str = greeter.greet();
>
> function foo2(greeting: string, ...restGreetings /* more greeting */: string[]) {
> var greeters: Greeter[] = []; /* inline block comment */
> greeters[0] = new Greeter(greeting);
> for (var i = 0; i < restGreetings.length; i++) {
> greeters.push(new Greeter(restGreetings[i]));
> }
>
> return greeters;
> }
>
> var b = foo2("Hello", "World", "!");
> // This is simple signle line comment
> for (var j = 0; j < b.length; j++) {
> b[j].greet();
> }
>}
>:=> (line 1, col 0) to (line 36, col 1)
1 >module Foo.Bar {
~~~~~~ => Pos: (11 to 16) SpanInfo: {"start":11,"length":870}
>Bar {
> "use strict";
>
> class Greeter {
> constructor(public greeting: string) {
> }
>
> greet() {
> return "<h1>" + this.greeting + "</h1>";
> }
> }
>
>
> function foo(greeting: string): Greeter {
> return new Greeter(greeting);
> }
>
> var greeter = new Greeter("Hello, world!");
> var str = greeter.greet();
>
> function foo2(greeting: string, ...restGreetings /* more greeting */: string[]) {
> var greeters: Greeter[] = []; /* inline block comment */
> greeters[0] = new Greeter(greeting);
> for (var i = 0; i < restGreetings.length; i++) {
> greeters.push(new Greeter(restGreetings[i]));
> }
>
> return greeters;
> }
>
> var b = foo2("Hello", "World", "!");
> // This is simple signle line comment
> for (var j = 0; j < b.length; j++) {
> b[j].greet();
> }
>}
>:=> (line 1, col 11) to (line 36, col 1)
--------------------------------
2 > "use strict";
~~~~~~~~~~~~~~~~~~ => Pos: (17 to 34) SpanInfo: {"start":21,"length":12}
>"use strict"
>:=> (line 2, col 4) to (line 2, col 16)
--------------------------------
3 >
~ => Pos: (35 to 35) SpanInfo: undefined
--------------------------------
4 > class Greeter {
~~~~~~~~~~~~~~~~~~~~ => Pos: (36 to 55) SpanInfo: {"start":40,"length":160}
>class Greeter {
> constructor(public greeting: string) {
> }
>
> greet() {
> return "<h1>" + this.greeting + "</h1>";
> }
> }
>:=> (line 4, col 4) to (line 11, col 5)
--------------------------------
5 > constructor(public greeting: string) {
~~~~~~~~~~~~~~~~~~~~ => Pos: (56 to 75) SpanInfo: {"start":111,"length":1}
>}
>:=> (line 6, col 8) to (line 6, col 9)
5 > constructor(public greeting: string) {
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (76 to 99) SpanInfo: {"start":76,"length":23}
>public greeting: string
>:=> (line 5, col 20) to (line 5, col 43)
5 > constructor(public greeting: string) {
~~~=> Pos: (100 to 102) SpanInfo: {"start":111,"length":1}
>}
>:=> (line 6, col 8) to (line 6, col 9)
--------------------------------
6 > }
~~~~~~~~~~ => Pos: (103 to 112) SpanInfo: {"start":111,"length":1}
>}
>:=> (line 6, col 8) to (line 6, col 9)
--------------------------------
7 >
~ => Pos: (113 to 113) SpanInfo: undefined
--------------------------------
8 > greet() {
~~~~~~~~~~~~~~~~~~ => Pos: (114 to 131) SpanInfo: {"start":122,"length":72}
>greet() {
> return "<h1>" + this.greeting + "</h1>";
> }
>:=> (line 8, col 8) to (line 10, col 9)
--------------------------------
9 > return "<h1>" + this.greeting + "</h1>";
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (132 to 184) SpanInfo: {"start":144,"length":39}
>return "<h1>" + this.greeting + "</h1>"
>:=> (line 9, col 12) to (line 9, col 51)
--------------------------------
10 > }
~~~~~~~~~~ => Pos: (185 to 194) SpanInfo: {"start":193,"length":1}
>}
>:=> (line 10, col 8) to (line 10, col 9)
--------------------------------
11 > }
~~~~~~ => Pos: (195 to 200) SpanInfo: {"start":199,"length":1}
>}
>:=> (line 11, col 4) to (line 11, col 5)
--------------------------------
12 >
~ => Pos: (201 to 201) SpanInfo: undefined
--------------------------------
13 >
~ => Pos: (202 to 202) SpanInfo: undefined
--------------------------------
14 > function foo(greeting: string): Greeter {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (203 to 248) SpanInfo: {"start":257,"length":28}
>return new Greeter(greeting)
>:=> (line 15, col 8) to (line 15, col 36)
--------------------------------
15 > return new Greeter(greeting);
~~~~~~~~~~~~~~ => Pos: (249 to 262) SpanInfo: {"start":257,"length":28}
>return new Greeter(greeting)
>:=> (line 15, col 8) to (line 15, col 36)
15 > return new Greeter(greeting);
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (263 to 286) SpanInfo: {"start":264,"length":21}
>new Greeter(greeting)
>:=> (line 15, col 15) to (line 15, col 36)
--------------------------------
16 > }
~~~~~~ => Pos: (287 to 292) SpanInfo: {"start":291,"length":1}
>}
>:=> (line 16, col 4) to (line 16, col 5)
--------------------------------
17 >
~ => Pos: (293 to 293) SpanInfo: undefined
--------------------------------
18 > var greeter = new Greeter("Hello, world!");
~~~~~~~~~~~~~~~~~ => Pos: (294 to 310) SpanInfo: {"start":298,"length":42}
>var greeter = new Greeter("Hello, world!")
>:=> (line 18, col 4) to (line 18, col 46)
18 > var greeter = new Greeter("Hello, world!");
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (311 to 341) SpanInfo: {"start":312,"length":28}
>new Greeter("Hello, world!")
>:=> (line 18, col 18) to (line 18, col 46)
--------------------------------
19 > var str = greeter.greet();
~~~~~~~~~~~~~ => Pos: (342 to 354) SpanInfo: {"start":346,"length":25}
>var str = greeter.greet()
>:=> (line 19, col 4) to (line 19, col 29)
19 > var str = greeter.greet();
~~~~~~~~~~~~~~~~~~ => Pos: (355 to 372) SpanInfo: {"start":356,"length":15}
>greeter.greet()
>:=> (line 19, col 14) to (line 19, col 29)
--------------------------------
20 >
~ => Pos: (373 to 373) SpanInfo: undefined
--------------------------------
21 > function foo2(greeting: string, ...restGreetings /* more greeting */: string[]) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (374 to 408) SpanInfo: {"start":468,"length":28}
>var greeters: Greeter[] = []
>:=> (line 22, col 8) to (line 22, col 36)
21 > function foo2(greeting: string, ...restGreetings /* more greeting */: string[]) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (409 to 456) SpanInfo: {"start":410,"length":46}
>...restGreetings /* more greeting */: string[]
>:=> (line 21, col 36) to (line 21, col 82)
21 > function foo2(greeting: string, ...restGreetings /* more greeting */: string[]) {
~~~=> Pos: (457 to 459) SpanInfo: {"start":468,"length":28}
>var greeters: Greeter[] = []
>:=> (line 22, col 8) to (line 22, col 36)
--------------------------------
22 > var greeters: Greeter[] = []; /* inline block comment */
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (460 to 524) SpanInfo: {"start":468,"length":28}
>var greeters: Greeter[] = []
>:=> (line 22, col 8) to (line 22, col 36)
--------------------------------
23 > greeters[0] = new Greeter(greeting);
~~~~~~~~~~~~~~~~~~~~~ => Pos: (525 to 545) SpanInfo: {"start":533,"length":35}
>greeters[0] = new Greeter(greeting)
>:=> (line 23, col 8) to (line 23, col 43)
23 > greeters[0] = new Greeter(greeting);
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (546 to 569) SpanInfo: {"start":547,"length":21}
>new Greeter(greeting)
>:=> (line 23, col 22) to (line 23, col 43)
--------------------------------
24 > for (var i = 0; i < restGreetings.length; i++) {
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (570 to 592) SpanInfo: {"start":583,"length":9}
>var i = 0
>:=> (line 24, col 13) to (line 24, col 22)
24 > for (var i = 0; i < restGreetings.length; i++) {
~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (593 to 618) SpanInfo: {"start":594,"length":24}
>i < restGreetings.length
>:=> (line 24, col 24) to (line 24, col 48)
24 > for (var i = 0; i < restGreetings.length; i++) {
~~~~~~~~=> Pos: (619 to 626) SpanInfo: {"start":620,"length":3}
>i++
>:=> (line 24, col 50) to (line 24, col 53)
--------------------------------
25 > greeters.push(new Greeter(restGreetings[i]));
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (627 to 652) SpanInfo: {"start":639,"length":44}
>greeters.push(new Greeter(restGreetings[i]))
>:=> (line 25, col 12) to (line 25, col 56)
25 > greeters.push(new Greeter(restGreetings[i]));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (653 to 681) SpanInfo: {"start":653,"length":29}
>new Greeter(restGreetings[i])
>:=> (line 25, col 26) to (line 25, col 55)
25 > greeters.push(new Greeter(restGreetings[i]));
~~~=> Pos: (682 to 684) SpanInfo: {"start":639,"length":44}
>greeters.push(new Greeter(restGreetings[i]))
>:=> (line 25, col 12) to (line 25, col 56)
--------------------------------
26 > }
~~~~~~~~~~ => Pos: (685 to 694) SpanInfo: {"start":639,"length":44}
>greeters.push(new Greeter(restGreetings[i]))
>:=> (line 25, col 12) to (line 25, col 56)
--------------------------------
27 >
~ => Pos: (695 to 695) SpanInfo: undefined
--------------------------------
28 > return greeters;
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (696 to 720) SpanInfo: {"start":704,"length":15}
>return greeters
>:=> (line 28, col 8) to (line 28, col 23)
--------------------------------
29 > }
~~~~~~ => Pos: (721 to 726) SpanInfo: {"start":725,"length":1}
>}
>:=> (line 29, col 4) to (line 29, col 5)
--------------------------------
30 >
~ => Pos: (727 to 727) SpanInfo: undefined
--------------------------------
31 > var b = foo2("Hello", "World", "!");
~~~~~~~~~~~ => Pos: (728 to 738) SpanInfo: {"start":732,"length":35}
>var b = foo2("Hello", "World", "!")
>:=> (line 31, col 4) to (line 31, col 39)
31 > var b = foo2("Hello", "World", "!");
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (739 to 768) SpanInfo: {"start":740,"length":27}
>foo2("Hello", "World", "!")
>:=> (line 31, col 12) to (line 31, col 39)
--------------------------------
32 > // This is simple signle line comment
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (769 to 810) SpanInfo: undefined
--------------------------------
33 > for (var j = 0; j < b.length; j++) {
~~~~~~~~~~~~~~~~~~~ => Pos: (811 to 829) SpanInfo: {"start":820,"length":9}
>var j = 0
>:=> (line 33, col 9) to (line 33, col 18)
33 > for (var j = 0; j < b.length; j++) {
~~~~~~~~~~~~~~ => Pos: (830 to 843) SpanInfo: {"start":831,"length":12}
>j < b.length
>:=> (line 33, col 20) to (line 33, col 32)
33 > for (var j = 0; j < b.length; j++) {
~~~~~~~~ => Pos: (844 to 851) SpanInfo: {"start":845,"length":3}
>j++
>:=> (line 33, col 34) to (line 33, col 37)
--------------------------------
34 > b[j].greet();
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (852 to 873) SpanInfo: {"start":860,"length":12}
>b[j].greet()
>:=> (line 34, col 8) to (line 34, col 20)
--------------------------------
35 > }
~~~~~~ => Pos: (874 to 879) SpanInfo: {"start":860,"length":12}
>b[j].greet()
>:=> (line 34, col 8) to (line 34, col 20)
--------------------------------
36 >}
~ => Pos: (880 to 880) SpanInfo: {"start":880,"length":1}
>}
>:=> (line 36, col 0) to (line 36, col 1)
@@ -0,0 +1,129 @@
1 >var x = 10;
~~~~~~~~~~~~ => Pos: (0 to 11) SpanInfo: {"start":0,"length":10}
>var x = 10
>:=> (line 1, col 0) to (line 1, col 10)
--------------------------------
2 >var y = x ? x + 10 : 30;
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (12 to 36) SpanInfo: {"start":12,"length":23}
>var y = x ? x + 10 : 30
>:=> (line 2, col 0) to (line 2, col 23)
--------------------------------
3 >var z = (function foo() {
~~~~~~~ => Pos: (37 to 43) SpanInfo: {"start":37,"length":90}
>var z = (function foo() {
> return x;
>})() ? y : function bar() {
> return x;
>} ()
>:=> (line 3, col 0) to (line 7, col 4)
3 >var z = (function foo() {
~~ => Pos: (44 to 45) SpanInfo: {"start":45,"length":36}
>(function foo() {
> return x;
>})()
>:=> (line 3, col 8) to (line 5, col 4)
3 >var z = (function foo() {
~~~~~~~~~~~~~~~~~ => Pos: (46 to 62) SpanInfo: {"start":67,"length":8}
>return x
>:=> (line 4, col 4) to (line 4, col 12)
--------------------------------
4 > return x;
~~~~~~~~~~~~~~ => Pos: (63 to 76) SpanInfo: {"start":67,"length":8}
>return x
>:=> (line 4, col 4) to (line 4, col 12)
--------------------------------
5 >})() ? y : function bar() {
~ => Pos: (77 to 77) SpanInfo: {"start":77,"length":1}
>}
>:=> (line 5, col 0) to (line 5, col 1)
5 >})() ? y : function bar() {
~~~ => Pos: (78 to 80) SpanInfo: {"start":45,"length":36}
>(function foo() {
> return x;
>})()
>:=> (line 3, col 8) to (line 5, col 4)
5 >})() ? y : function bar() {
~~~~~~ => Pos: (81 to 86) SpanInfo: {"start":37,"length":90}
>var z = (function foo() {
> return x;
>})() ? y : function bar() {
> return x;
>} ()
>:=> (line 3, col 0) to (line 7, col 4)
5 >})() ? y : function bar() {
~~~~~~~~~~~~~~~~~~ => Pos: (87 to 104) SpanInfo: {"start":113,"length":8}
>return x
>:=> (line 6, col 8) to (line 6, col 16)
--------------------------------
6 > return x;
~~~~~~~~~~~~~~~~~~ => Pos: (105 to 122) SpanInfo: {"start":113,"length":8}
>return x
>:=> (line 6, col 8) to (line 6, col 16)
--------------------------------
7 >} ();
~ => Pos: (123 to 123) SpanInfo: {"start":123,"length":1}
>}
>:=> (line 7, col 0) to (line 7, col 1)
7 >} ();
~~~~~ => Pos: (124 to 128) SpanInfo: {"start":88,"length":39}
>function bar() {
> return x;
>} ()
>:=> (line 5, col 11) to (line 7, col 4)
--------------------------------
8 >x = y ? (function () {
~~~~~~~ => Pos: (129 to 135) SpanInfo: {"start":129,"length":47}
>x = y ? (function () {
> return z;
>})() : 10
>:=> (line 8, col 0) to (line 10, col 10)
8 >x = y ? (function () {
~~ => Pos: (136 to 137) SpanInfo: {"start":137,"length":33}
>(function () {
> return z;
>})()
>:=> (line 8, col 8) to (line 10, col 4)
8 >x = y ? (function () {
~~~~~~~~~~~~~~ => Pos: (138 to 151) SpanInfo: {"start":156,"length":8}
>return z
>:=> (line 9, col 4) to (line 9, col 12)
--------------------------------
9 > return z;
~~~~~~~~~~~~~~ => Pos: (152 to 165) SpanInfo: {"start":156,"length":8}
>return z
>:=> (line 9, col 4) to (line 9, col 12)
--------------------------------
10 >})() : 10;
~ => Pos: (166 to 166) SpanInfo: {"start":166,"length":1}
>}
>:=> (line 10, col 0) to (line 10, col 1)
10 >})() : 10;
~~~ => Pos: (167 to 169) SpanInfo: {"start":137,"length":33}
>(function () {
> return z;
>})()
>:=> (line 8, col 8) to (line 10, col 4)
10 >})() : 10;
~~~~~~~ => Pos: (170 to 176) SpanInfo: {"start":129,"length":47}
>x = y ? (function () {
> return z;
>})() : 10
>:=> (line 8, col 0) to (line 10, col 10)
@@ -0,0 +1,5 @@
1 >debugger;
~~~~~~~~~ => Pos: (0 to 8) SpanInfo: {"start":0,"length":8}
>debugger
>:=> (line 1, col 0) to (line 1, col 8)
@@ -0,0 +1,142 @@
1 >var i = 0;
~~~~~~~~~~~ => Pos: (0 to 10) SpanInfo: {"start":0,"length":9}
>var i = 0
>:=> (line 1, col 0) to (line 1, col 9)
--------------------------------
2 >do
~~~ => Pos: (11 to 13) SpanInfo: {"start":20,"length":3}
>i++
>:=> (line 4, col 4) to (line 4, col 7)
--------------------------------
3 >{
~~ => Pos: (14 to 15) SpanInfo: {"start":20,"length":3}
>i++
>:=> (line 4, col 4) to (line 4, col 7)
--------------------------------
4 > i++;
~~~~~~~~~ => Pos: (16 to 24) SpanInfo: {"start":20,"length":3}
>i++
>:=> (line 4, col 4) to (line 4, col 7)
--------------------------------
5 >} while (i < 10);
~ => Pos: (25 to 25) SpanInfo: {"start":20,"length":3}
>i++
>:=> (line 4, col 4) to (line 4, col 7)
5 >} while (i < 10);
~~~~~~~~~~~~~~~~~ => Pos: (26 to 42) SpanInfo: {"start":27,"length":14}
>while (i < 10)
>:=> (line 5, col 2) to (line 5, col 16)
--------------------------------
6 >do {
~~~~~ => Pos: (43 to 47) SpanInfo: {"start":52,"length":3}
>i++
>:=> (line 7, col 4) to (line 7, col 7)
--------------------------------
7 > i++;
~~~~~~~~~ => Pos: (48 to 56) SpanInfo: {"start":52,"length":3}
>i++
>:=> (line 7, col 4) to (line 7, col 7)
--------------------------------
8 >} while (i < 20);
~ => Pos: (57 to 57) SpanInfo: {"start":52,"length":3}
>i++
>:=> (line 7, col 4) to (line 7, col 7)
8 >} while (i < 20);
~~~~~~~~~~~~~~~~~ => Pos: (58 to 74) SpanInfo: {"start":59,"length":14}
>while (i < 20)
>:=> (line 8, col 2) to (line 8, col 16)
--------------------------------
9 >do {
~~~~~ => Pos: (75 to 79) SpanInfo: {"start":84,"length":3}
>i++
>:=> (line 10, col 4) to (line 10, col 7)
--------------------------------
10 > i++;
~~~~~~~~~ => Pos: (80 to 88) SpanInfo: {"start":84,"length":3}
>i++
>:=> (line 10, col 4) to (line 10, col 7)
--------------------------------
11 >}
~~~ => Pos: (89 to 91) SpanInfo: {"start":84,"length":3}
>i++
>:=> (line 10, col 4) to (line 10, col 7)
--------------------------------
12 >while (i < 30);
~~~~~~~~~~~~~~~~ => Pos: (92 to 107) SpanInfo: {"start":92,"length":14}
>while (i < 30)
>:=> (line 12, col 0) to (line 12, col 14)
--------------------------------
13 >do {
~~~~~ => Pos: (108 to 112) SpanInfo: {"start":117,"length":3}
>i--
>:=> (line 14, col 4) to (line 14, col 7)
--------------------------------
14 > i--;
~~~~~~~~~ => Pos: (113 to 121) SpanInfo: {"start":117,"length":3}
>i--
>:=> (line 14, col 4) to (line 14, col 7)
--------------------------------
15 >} while ((function () {
~ => Pos: (122 to 122) SpanInfo: {"start":117,"length":3}
>i--
>:=> (line 14, col 4) to (line 14, col 7)
15 >} while ((function () {
~~~~~~~~ => Pos: (123 to 130) SpanInfo: {"start":124,"length":60}
>while ((function () {
> return 30 * i;
> })() !== i)
>:=> (line 15, col 2) to (line 17, col 15)
15 >} while ((function () {
~ => Pos: (131 to 131) SpanInfo: {"start":131,"length":46}
>(function () {
> return 30 * i;
> })()
>:=> (line 15, col 9) to (line 17, col 8)
15 >} while ((function () {
~~~~~~~~~~~~~~ => Pos: (132 to 145) SpanInfo: {"start":154,"length":13}
>return 30 * i
>:=> (line 16, col 8) to (line 16, col 21)
--------------------------------
16 > return 30 * i;
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (146 to 168) SpanInfo: {"start":154,"length":13}
>return 30 * i
>:=> (line 16, col 8) to (line 16, col 21)
--------------------------------
17 > })() !== i);
~~~~~ => Pos: (169 to 173) SpanInfo: {"start":173,"length":1}
>}
>:=> (line 17, col 4) to (line 17, col 5)
17 > })() !== i);
~~~ => Pos: (174 to 176) SpanInfo: {"start":131,"length":46}
>(function () {
> return 30 * i;
> })()
>:=> (line 15, col 9) to (line 17, col 8)
17 > })() !== i);
~~~~~~~~~ => Pos: (177 to 185) SpanInfo: {"start":124,"length":60}
>while ((function () {
> return 30 * i;
> })() !== i)
>:=> (line 15, col 2) to (line 17, col 15)
@@ -0,0 +1,248 @@
1 >enum e {
~~~~~~~~~ => Pos: (0 to 8) SpanInfo: {"start":0,"length":30}
>enum e {
> x,
> y,
> x
>}
>:=> (line 1, col 0) to (line 5, col 1)
--------------------------------
2 > x,
~~~~~~~ => Pos: (9 to 15) SpanInfo: {"start":13,"length":1}
>x
>:=> (line 2, col 4) to (line 2, col 5)
--------------------------------
3 > y,
~~~~~~~ => Pos: (16 to 22) SpanInfo: {"start":20,"length":1}
>y
>:=> (line 3, col 4) to (line 3, col 5)
--------------------------------
4 > x
~~~~~~ => Pos: (23 to 28) SpanInfo: {"start":27,"length":1}
>x
>:=> (line 4, col 4) to (line 4, col 5)
--------------------------------
5 >}
~~ => Pos: (29 to 30) SpanInfo: {"start":29,"length":1}
>}
>:=> (line 5, col 0) to (line 5, col 1)
--------------------------------
6 >enum e2 {
~~~~~~~~~~ => Pos: (31 to 40) SpanInfo: {"start":31,"length":49}
>enum e2 {
> x = 10,
> y = 10,
> z,
> x2
>}
>:=> (line 6, col 0) to (line 11, col 1)
--------------------------------
7 > x = 10,
~~~~~~~~~~~~ => Pos: (41 to 52) SpanInfo: {"start":45,"length":6}
>x = 10
>:=> (line 7, col 4) to (line 7, col 10)
--------------------------------
8 > y = 10,
~~~~~~~~~~~~ => Pos: (53 to 64) SpanInfo: {"start":57,"length":6}
>y = 10
>:=> (line 8, col 4) to (line 8, col 10)
--------------------------------
9 > z,
~~~~~~~ => Pos: (65 to 71) SpanInfo: {"start":69,"length":1}
>z
>:=> (line 9, col 4) to (line 9, col 5)
--------------------------------
10 > x2
~~~~~~~ => Pos: (72 to 78) SpanInfo: {"start":76,"length":2}
>x2
>:=> (line 10, col 4) to (line 10, col 6)
--------------------------------
11 >}
~~ => Pos: (79 to 80) SpanInfo: {"start":79,"length":1}
>}
>:=> (line 11, col 0) to (line 11, col 1)
--------------------------------
12 >enum e3 {
~~~~~~~~~~ => Pos: (81 to 90) SpanInfo: {"start":81,"length":11}
>enum e3 {
>}
>:=> (line 12, col 0) to (line 13, col 1)
--------------------------------
13 >}
~~ => Pos: (91 to 92) SpanInfo: {"start":91,"length":1}
>}
>:=> (line 13, col 0) to (line 13, col 1)
--------------------------------
14 >declare enum e4 {
~~~~~~~~~~~~~~~~~~ => Pos: (93 to 110) SpanInfo: undefined
--------------------------------
15 > x,
~~~~~~~ => Pos: (111 to 117) SpanInfo: undefined
--------------------------------
16 > y,
~~~~~~~ => Pos: (118 to 124) SpanInfo: undefined
--------------------------------
17 > z,
~~~~~~~ => Pos: (125 to 131) SpanInfo: undefined
--------------------------------
18 > x2
~~~~~~~ => Pos: (132 to 138) SpanInfo: undefined
--------------------------------
19 >}
~~ => Pos: (139 to 140) SpanInfo: undefined
--------------------------------
20 >enum e11
~~~~~~~~~~ => Pos: (141 to 150) SpanInfo: {"start":141,"length":33}
>enum e11
>{
> x,
> y,
> x
>}
>:=> (line 20, col 0) to (line 25, col 1)
--------------------------------
21 >{
~~ => Pos: (151 to 152) SpanInfo: {"start":157,"length":1}
>x
>:=> (line 22, col 4) to (line 22, col 5)
--------------------------------
22 > x,
~~~~~~~ => Pos: (153 to 159) SpanInfo: {"start":157,"length":1}
>x
>:=> (line 22, col 4) to (line 22, col 5)
--------------------------------
23 > y,
~~~~~~~ => Pos: (160 to 166) SpanInfo: {"start":164,"length":1}
>y
>:=> (line 23, col 4) to (line 23, col 5)
--------------------------------
24 > x
~~~~~~ => Pos: (167 to 172) SpanInfo: {"start":171,"length":1}
>x
>:=> (line 24, col 4) to (line 24, col 5)
--------------------------------
25 >}
~~ => Pos: (173 to 174) SpanInfo: {"start":173,"length":1}
>}
>:=> (line 25, col 0) to (line 25, col 1)
--------------------------------
26 >enum e12
~~~~~~~~~ => Pos: (175 to 183) SpanInfo: {"start":175,"length":50}
>enum e12
>{
> x = 10,
> y = 10,
> z,
> x2
>}
>:=> (line 26, col 0) to (line 32, col 1)
--------------------------------
27 >{
~~ => Pos: (184 to 185) SpanInfo: {"start":190,"length":6}
>x = 10
>:=> (line 28, col 4) to (line 28, col 10)
--------------------------------
28 > x = 10,
~~~~~~~~~~~~ => Pos: (186 to 197) SpanInfo: {"start":190,"length":6}
>x = 10
>:=> (line 28, col 4) to (line 28, col 10)
--------------------------------
29 > y = 10,
~~~~~~~~~~~~ => Pos: (198 to 209) SpanInfo: {"start":202,"length":6}
>y = 10
>:=> (line 29, col 4) to (line 29, col 10)
--------------------------------
30 > z,
~~~~~~~ => Pos: (210 to 216) SpanInfo: {"start":214,"length":1}
>z
>:=> (line 30, col 4) to (line 30, col 5)
--------------------------------
31 > x2
~~~~~~~ => Pos: (217 to 223) SpanInfo: {"start":221,"length":2}
>x2
>:=> (line 31, col 4) to (line 31, col 6)
--------------------------------
32 >}
~~ => Pos: (224 to 225) SpanInfo: {"start":224,"length":1}
>}
>:=> (line 32, col 0) to (line 32, col 1)
--------------------------------
33 >enum e13
~~~~~~~~~ => Pos: (226 to 234) SpanInfo: {"start":226,"length":12}
>enum e13
>{
>}
>:=> (line 33, col 0) to (line 35, col 1)
--------------------------------
34 >{
~~ => Pos: (235 to 236) SpanInfo: {"start":237,"length":1}
>}
>:=> (line 35, col 0) to (line 35, col 1)
--------------------------------
35 >}
~~ => Pos: (237 to 238) SpanInfo: {"start":237,"length":1}
>}
>:=> (line 35, col 0) to (line 35, col 1)
--------------------------------
36 >declare enum e14
~~~~~~~~~~~~~~~~~ => Pos: (239 to 255) SpanInfo: undefined
--------------------------------
37 >{
~~ => Pos: (256 to 257) SpanInfo: undefined
--------------------------------
38 > x,
~~~~~~~ => Pos: (258 to 264) SpanInfo: undefined
--------------------------------
39 > y,
~~~~~~~ => Pos: (265 to 271) SpanInfo: undefined
--------------------------------
40 > z,
~~~~~~~ => Pos: (272 to 278) SpanInfo: undefined
--------------------------------
41 > x2
~~~~~~~ => Pos: (279 to 285) SpanInfo: undefined
--------------------------------
42 >}
~ => Pos: (286 to 286) SpanInfo: undefined
@@ -0,0 +1,23 @@
1 >class a {
~~~~~~~~~~ => Pos: (0 to 9) SpanInfo: {"start":0,"length":25}
>class a {
> public c;
>}
>:=> (line 1, col 0) to (line 3, col 1)
--------------------------------
2 > public c;
~~~~~~~~~~~~~~ => Pos: (10 to 23) SpanInfo: undefined
--------------------------------
3 >}
~~ => Pos: (24 to 25) SpanInfo: {"start":24,"length":1}
>}
>:=> (line 3, col 0) to (line 3, col 1)
--------------------------------
4 >export = a;
~~~~~~~~~~~ => Pos: (26 to 36) SpanInfo: {"start":26,"length":10}
>export = a
>:=> (line 4, col 0) to (line 4, col 10)
@@ -0,0 +1,253 @@
1 >for (var i = 0; i < 10; i++) {
~~~~~~~~~~~~~~~ => Pos: (0 to 14) SpanInfo: {"start":5,"length":9}
>var i = 0
>:=> (line 1, col 5) to (line 1, col 14)
1 >for (var i = 0; i < 10; i++) {
~~~~~~~~ => Pos: (15 to 22) SpanInfo: {"start":16,"length":6}
>i < 10
>:=> (line 1, col 16) to (line 1, col 22)
1 >for (var i = 0; i < 10; i++) {
~~~~~~~~ => Pos: (23 to 30) SpanInfo: {"start":24,"length":3}
>i++
>:=> (line 1, col 24) to (line 1, col 27)
--------------------------------
2 > WScript.Echo("i: " + i);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (31 to 59) SpanInfo: {"start":35,"length":23}
>WScript.Echo("i: " + i)
>:=> (line 2, col 4) to (line 2, col 27)
--------------------------------
3 >}
~~ => Pos: (60 to 61) SpanInfo: {"start":35,"length":23}
>WScript.Echo("i: " + i)
>:=> (line 2, col 4) to (line 2, col 27)
--------------------------------
4 >for (i = 0; i < 10; i++)
~~~~~~~~~~~ => Pos: (62 to 72) SpanInfo: {"start":67,"length":5}
>i = 0
>:=> (line 4, col 5) to (line 4, col 10)
4 >for (i = 0; i < 10; i++)
~~~~~~~~ => Pos: (73 to 80) SpanInfo: {"start":74,"length":6}
>i < 10
>:=> (line 4, col 12) to (line 4, col 18)
4 >for (i = 0; i < 10; i++)
~~~~~~ => Pos: (81 to 86) SpanInfo: {"start":82,"length":3}
>i++
>:=> (line 4, col 20) to (line 4, col 23)
--------------------------------
5 >{
~~ => Pos: (87 to 88) SpanInfo: {"start":93,"length":23}
>WScript.Echo("i: " + i)
>:=> (line 6, col 4) to (line 6, col 27)
--------------------------------
6 > WScript.Echo("i: " + i);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (89 to 117) SpanInfo: {"start":93,"length":23}
>WScript.Echo("i: " + i)
>:=> (line 6, col 4) to (line 6, col 27)
--------------------------------
7 >}
~~ => Pos: (118 to 119) SpanInfo: {"start":93,"length":23}
>WScript.Echo("i: " + i)
>:=> (line 6, col 4) to (line 6, col 27)
--------------------------------
8 >for (var j = 0; j < 10; ) {
~~~~~~~~~~~~~~~ => Pos: (120 to 134) SpanInfo: {"start":125,"length":9}
>var j = 0
>:=> (line 8, col 5) to (line 8, col 14)
8 >for (var j = 0; j < 10; ) {
~~~~~~~~~~~~~ => Pos: (135 to 147) SpanInfo: {"start":136,"length":6}
>j < 10
>:=> (line 8, col 16) to (line 8, col 22)
--------------------------------
9 > j++;
~~~~~~~~~ => Pos: (148 to 156) SpanInfo: {"start":152,"length":3}
>j++
>:=> (line 9, col 4) to (line 9, col 7)
--------------------------------
10 > if (j == 1) {
~~~~~~~~~~~~~~~~~~ => Pos: (157 to 174) SpanInfo: {"start":161,"length":11}
>if (j == 1)
>:=> (line 10, col 4) to (line 10, col 15)
--------------------------------
11 > continue;
~~~~~~~~~~~~~~~~~~ => Pos: (175 to 192) SpanInfo: {"start":183,"length":8}
>continue
>:=> (line 11, col 8) to (line 11, col 16)
--------------------------------
12 > }
~~~~~~ => Pos: (193 to 198) SpanInfo: {"start":183,"length":8}
>continue
>:=> (line 11, col 8) to (line 11, col 16)
--------------------------------
13 >}
~~ => Pos: (199 to 200) SpanInfo: {"start":161,"length":11}
>if (j == 1)
>:=> (line 10, col 4) to (line 10, col 15)
--------------------------------
14 >for (j = 0; j < 10;)
~~~~~~~~~~~ => Pos: (201 to 211) SpanInfo: {"start":206,"length":5}
>j = 0
>:=> (line 14, col 5) to (line 14, col 10)
14 >for (j = 0; j < 10;)
~~~~~~~~~~ => Pos: (212 to 221) SpanInfo: {"start":213,"length":6}
>j < 10
>:=> (line 14, col 12) to (line 14, col 18)
--------------------------------
15 >{
~~ => Pos: (222 to 223) SpanInfo: {"start":228,"length":3}
>j++
>:=> (line 16, col 4) to (line 16, col 7)
--------------------------------
16 > j++;
~~~~~~~~~ => Pos: (224 to 232) SpanInfo: {"start":228,"length":3}
>j++
>:=> (line 16, col 4) to (line 16, col 7)
--------------------------------
17 >}
~~ => Pos: (233 to 234) SpanInfo: {"start":228,"length":3}
>j++
>:=> (line 16, col 4) to (line 16, col 7)
--------------------------------
18 >for (var k = 0;; k++) {
~~~~~~~~~~~~~~~~ => Pos: (235 to 250) SpanInfo: {"start":240,"length":9}
>var k = 0
>:=> (line 18, col 5) to (line 18, col 14)
18 >for (var k = 0;; k++) {
~~~~~~~~ => Pos: (251 to 258) SpanInfo: {"start":252,"length":3}
>k++
>:=> (line 18, col 17) to (line 18, col 20)
--------------------------------
19 >}
~~ => Pos: (259 to 260) SpanInfo: undefined
--------------------------------
20 >for (k = 0;; k++)
~~~~~~~~~~~~ => Pos: (261 to 272) SpanInfo: {"start":266,"length":5}
>k = 0
>:=> (line 20, col 5) to (line 20, col 10)
20 >for (k = 0;; k++)
~~~~~~ => Pos: (273 to 278) SpanInfo: {"start":274,"length":3}
>k++
>:=> (line 20, col 13) to (line 20, col 16)
--------------------------------
21 >{
~~ => Pos: (279 to 280) SpanInfo: undefined
--------------------------------
22 >}
~~ => Pos: (281 to 282) SpanInfo: undefined
--------------------------------
23 >for (; k < 10; k++) {
~~~~~~~~~~~~~~ => Pos: (283 to 296) SpanInfo: {"start":290,"length":6}
>k < 10
>:=> (line 23, col 7) to (line 23, col 13)
23 >for (; k < 10; k++) {
~~~~~~~~ => Pos: (297 to 304) SpanInfo: {"start":298,"length":3}
>k++
>:=> (line 23, col 15) to (line 23, col 18)
--------------------------------
24 >}
~~ => Pos: (305 to 306) SpanInfo: undefined
--------------------------------
25 >for (;;) {
~~~~~~~~~~~ => Pos: (307 to 317) SpanInfo: undefined
--------------------------------
26 > i++;
~~~~~~~~~ => Pos: (318 to 326) SpanInfo: {"start":322,"length":3}
>i++
>:=> (line 26, col 4) to (line 26, col 7)
--------------------------------
27 >}
~~ => Pos: (327 to 328) SpanInfo: {"start":322,"length":3}
>i++
>:=> (line 26, col 4) to (line 26, col 7)
--------------------------------
28 >for (;;)
~~~~~~~~~ => Pos: (329 to 337) SpanInfo: undefined
--------------------------------
29 >{
~~ => Pos: (338 to 339) SpanInfo: {"start":344,"length":3}
>i++
>:=> (line 30, col 4) to (line 30, col 7)
--------------------------------
30 > i++;
~~~~~~~~~ => Pos: (340 to 348) SpanInfo: {"start":344,"length":3}
>i++
>:=> (line 30, col 4) to (line 30, col 7)
--------------------------------
31 >}
~~ => Pos: (349 to 350) SpanInfo: {"start":344,"length":3}
>i++
>:=> (line 30, col 4) to (line 30, col 7)
--------------------------------
32 >for (i = 0, j = 20; j < 20, i < 20; j++) {
~~~~~ => Pos: (351 to 355) SpanInfo: {"start":356,"length":13}
>i = 0, j = 20
>:=> (line 32, col 5) to (line 32, col 18)
32 >for (i = 0, j = 20; j < 20, i < 20; j++) {
~~~~~~ => Pos: (356 to 361) SpanInfo: {"start":356,"length":5}
>i = 0
>:=> (line 32, col 5) to (line 32, col 10)
32 >for (i = 0, j = 20; j < 20, i < 20; j++) {
~~~~~~~~ => Pos: (362 to 369) SpanInfo: {"start":363,"length":6}
>j = 20
>:=> (line 32, col 12) to (line 32, col 18)
32 >for (i = 0, j = 20; j < 20, i < 20; j++) {
~~~~~~~~ => Pos: (370 to 377) SpanInfo: {"start":371,"length":6}
>j < 20
>:=> (line 32, col 20) to (line 32, col 26)
32 >for (i = 0, j = 20; j < 20, i < 20; j++) {
~~~~~~~~ => Pos: (378 to 385) SpanInfo: {"start":379,"length":6}
>i < 20
>:=> (line 32, col 28) to (line 32, col 34)
32 >for (i = 0, j = 20; j < 20, i < 20; j++) {
~~~~~~~~ => Pos: (386 to 393) SpanInfo: {"start":387,"length":3}
>j++
>:=> (line 32, col 36) to (line 32, col 39)
--------------------------------
33 >}
~ => Pos: (394 to 394) SpanInfo: undefined
@@ -0,0 +1,143 @@
1 >for (var x in String) {
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 23) SpanInfo: {"start":0,"length":21}
>for (var x in String)
>:=> (line 1, col 0) to (line 1, col 21)
--------------------------------
2 > WScript.Echo(x);
~~~~~~~~~~~~~~~~~~~~~ => Pos: (24 to 44) SpanInfo: {"start":28,"length":15}
>WScript.Echo(x)
>:=> (line 2, col 4) to (line 2, col 19)
--------------------------------
3 >}
~~ => Pos: (45 to 46) SpanInfo: {"start":28,"length":15}
>WScript.Echo(x)
>:=> (line 2, col 4) to (line 2, col 19)
--------------------------------
4 >for (x in String) {
~~~~~~~~~~~~~~~~~~~~ => Pos: (47 to 66) SpanInfo: {"start":47,"length":17}
>for (x in String)
>:=> (line 4, col 0) to (line 4, col 17)
--------------------------------
5 > WScript.Echo(x);
~~~~~~~~~~~~~~~~~~~~~ => Pos: (67 to 87) SpanInfo: {"start":71,"length":15}
>WScript.Echo(x)
>:=> (line 5, col 4) to (line 5, col 19)
--------------------------------
6 >}
~~ => Pos: (88 to 89) SpanInfo: {"start":71,"length":15}
>WScript.Echo(x)
>:=> (line 5, col 4) to (line 5, col 19)
--------------------------------
7 >for (var x2 in String)
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (90 to 112) SpanInfo: {"start":90,"length":22}
>for (var x2 in String)
>:=> (line 7, col 0) to (line 7, col 22)
--------------------------------
8 >{
~~ => Pos: (113 to 114) SpanInfo: {"start":119,"length":16}
>WScript.Echo(x2)
>:=> (line 9, col 4) to (line 9, col 20)
--------------------------------
9 > WScript.Echo(x2);
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (115 to 136) SpanInfo: {"start":119,"length":16}
>WScript.Echo(x2)
>:=> (line 9, col 4) to (line 9, col 20)
--------------------------------
10 >}
~~ => Pos: (137 to 138) SpanInfo: {"start":119,"length":16}
>WScript.Echo(x2)
>:=> (line 9, col 4) to (line 9, col 20)
--------------------------------
11 >for (x in String)
~~~~~~~~~~~~~~~~~~ => Pos: (139 to 156) SpanInfo: {"start":139,"length":17}
>for (x in String)
>:=> (line 11, col 0) to (line 11, col 17)
--------------------------------
12 >{
~~ => Pos: (157 to 158) SpanInfo: {"start":163,"length":15}
>WScript.Echo(x)
>:=> (line 13, col 4) to (line 13, col 19)
--------------------------------
13 > WScript.Echo(x);
~~~~~~~~~~~~~~~~~~~~~ => Pos: (159 to 179) SpanInfo: {"start":163,"length":15}
>WScript.Echo(x)
>:=> (line 13, col 4) to (line 13, col 19)
--------------------------------
14 >}
~~ => Pos: (180 to 181) SpanInfo: {"start":163,"length":15}
>WScript.Echo(x)
>:=> (line 13, col 4) to (line 13, col 19)
--------------------------------
15 >var z = 10;
~~~~~~~~~~~~ => Pos: (182 to 193) SpanInfo: {"start":182,"length":10}
>var z = 10
>:=> (line 15, col 0) to (line 15, col 10)
--------------------------------
16 >for (x in function foo() {
~~~~~~~~~ => Pos: (194 to 202) SpanInfo: {"start":194,"length":54}
>for (x in function foo() {
> return new String();
>})
>:=> (line 16, col 0) to (line 18, col 2)
16 >for (x in function foo() {
~~~~~~~~~~~~~~~~~~ => Pos: (203 to 220) SpanInfo: {"start":225,"length":19}
>return new String()
>:=> (line 17, col 4) to (line 17, col 23)
--------------------------------
17 > return new String();
~~~~~~~~~~ => Pos: (221 to 230) SpanInfo: {"start":225,"length":19}
>return new String()
>:=> (line 17, col 4) to (line 17, col 23)
17 > return new String();
~~~~~~~~~~~~~~~ => Pos: (231 to 245) SpanInfo: {"start":232,"length":12}
>new String()
>:=> (line 17, col 11) to (line 17, col 23)
--------------------------------
18 >}) {
~ => Pos: (246 to 246) SpanInfo: {"start":246,"length":1}
>}
>:=> (line 18, col 0) to (line 18, col 1)
18 >}) {
~ => Pos: (247 to 247) SpanInfo: {"start":194,"length":54}
>for (x in function foo() {
> return new String();
>})
>:=> (line 16, col 0) to (line 18, col 2)
18 >}) {
~~~ => Pos: (248 to 250) SpanInfo: {"start":255,"length":3}
>z++
>:=> (line 19, col 4) to (line 19, col 7)
--------------------------------
19 > z++;
~~~~~~~~~ => Pos: (251 to 259) SpanInfo: {"start":255,"length":3}
>z++
>:=> (line 19, col 4) to (line 19, col 7)
--------------------------------
20 >}
~ => Pos: (260 to 260) SpanInfo: {"start":255,"length":3}
>z++
>:=> (line 19, col 4) to (line 19, col 7)
@@ -0,0 +1,189 @@
1 >var greetings = 0;
~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 18) SpanInfo: {"start":0,"length":17}
>var greetings = 0
>:=> (line 1, col 0) to (line 1, col 17)
--------------------------------
2 >var greet = (greeting: string): number => {
~~~~~~~~~~~ => Pos: (19 to 29) SpanInfo: {"start":19,"length":84}
>var greet = (greeting: string): number => {
> greetings++;
> return greetings;
>}
>:=> (line 2, col 0) to (line 5, col 1)
2 >var greet = (greeting: string): number => {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (30 to 62) SpanInfo: {"start":67,"length":11}
>greetings++
>:=> (line 3, col 4) to (line 3, col 15)
--------------------------------
3 > greetings++;
~~~~~~~~~~~~~~~~~ => Pos: (63 to 79) SpanInfo: {"start":67,"length":11}
>greetings++
>:=> (line 3, col 4) to (line 3, col 15)
--------------------------------
4 > return greetings;
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (80 to 101) SpanInfo: {"start":84,"length":16}
>return greetings
>:=> (line 4, col 4) to (line 4, col 20)
--------------------------------
5 >}
~~ => Pos: (102 to 103) SpanInfo: {"start":102,"length":1}
>}
>:=> (line 5, col 0) to (line 5, col 1)
--------------------------------
6 >greet("Hello");
~~~~~~~~~~~~~~~~ => Pos: (104 to 119) SpanInfo: {"start":104,"length":14}
>greet("Hello")
>:=> (line 6, col 0) to (line 6, col 14)
--------------------------------
7 >var incrGreetings = () => greetings++;
~~~~~~~~~~~~~~~~~~~ => Pos: (120 to 138) SpanInfo: {"start":120,"length":37}
>var incrGreetings = () => greetings++
>:=> (line 7, col 0) to (line 7, col 37)
7 >var incrGreetings = () => greetings++;
~~~~~~~~~~~~~~~~~~~~ => Pos: (139 to 158) SpanInfo: {"start":146,"length":11}
>greetings++
>:=> (line 7, col 26) to (line 7, col 37)
--------------------------------
8 >var greetNewMsg = msg => greet(msg);
~~~~~~~~~~~~~~~~~ => Pos: (159 to 175) SpanInfo: {"start":159,"length":35}
>var greetNewMsg = msg => greet(msg)
>:=> (line 8, col 0) to (line 8, col 35)
8 >var greetNewMsg = msg => greet(msg);
~~~~~~~~~~~~~~~~~~~~ => Pos: (176 to 195) SpanInfo: {"start":184,"length":10}
>greet(msg)
>:=> (line 8, col 25) to (line 8, col 35)
--------------------------------
9 >greetNewMsg = function (msg: string) {
~~~~~~~~~~~~~ => Pos: (196 to 208) SpanInfo: {"start":196,"length":63}
>greetNewMsg = function (msg: string) {
> return greet(msg);
>}
>:=> (line 9, col 0) to (line 11, col 1)
9 >greetNewMsg = function (msg: string) {
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (209 to 234) SpanInfo: {"start":239,"length":17}
>return greet(msg)
>:=> (line 10, col 4) to (line 10, col 21)
--------------------------------
10 > return greet(msg);
~~~~~~~~~~ => Pos: (235 to 244) SpanInfo: {"start":239,"length":17}
>return greet(msg)
>:=> (line 10, col 4) to (line 10, col 21)
10 > return greet(msg);
~~~~~~~~~~~~~ => Pos: (245 to 257) SpanInfo: {"start":246,"length":10}
>greet(msg)
>:=> (line 10, col 11) to (line 10, col 21)
--------------------------------
11 >};
~~~ => Pos: (258 to 260) SpanInfo: {"start":258,"length":1}
>}
>:=> (line 11, col 0) to (line 11, col 1)
--------------------------------
12 >function bar(a = function foo() {
~~~~~~~~~~~~~ => Pos: (261 to 273) SpanInfo: {"start":326,"length":9}
>if (!a())
>:=> (line 15, col 4) to (line 15, col 13)
12 >function bar(a = function foo() {
~~~ => Pos: (274 to 276) SpanInfo: {"start":274,"length":44}
>a = function foo() {
> return greetings;
>}
>:=> (line 12, col 13) to (line 14, col 1)
12 >function bar(a = function foo() {
~~~~~~~~~~~~~~~~~~ => Pos: (277 to 294) SpanInfo: {"start":299,"length":16}
>return greetings
>:=> (line 13, col 4) to (line 13, col 20)
--------------------------------
13 > return greetings;
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (295 to 316) SpanInfo: {"start":299,"length":16}
>return greetings
>:=> (line 13, col 4) to (line 13, col 20)
--------------------------------
14 >}) {
~~ => Pos: (317 to 318) SpanInfo: {"start":317,"length":1}
>}
>:=> (line 14, col 0) to (line 14, col 1)
14 >}) {
~~~ => Pos: (319 to 321) SpanInfo: {"start":326,"length":9}
>if (!a())
>:=> (line 15, col 4) to (line 15, col 13)
--------------------------------
15 > if (!a()) {
~~~~~~~~~ => Pos: (322 to 330) SpanInfo: {"start":326,"length":9}
>if (!a())
>:=> (line 15, col 4) to (line 15, col 13)
15 > if (!a()) {
~~~ => Pos: (331 to 333) SpanInfo: {"start":331,"length":3}
>a()
>:=> (line 15, col 9) to (line 15, col 12)
15 > if (!a()) {
~~~~ => Pos: (334 to 337) SpanInfo: {"start":326,"length":9}
>if (!a())
>:=> (line 15, col 4) to (line 15, col 13)
--------------------------------
16 > return a;
~~~~~~~~~~~~~~~~~~ => Pos: (338 to 355) SpanInfo: {"start":346,"length":8}
>return a
>:=> (line 16, col 8) to (line 16, col 16)
--------------------------------
17 > }
~~~~~~ => Pos: (356 to 361) SpanInfo: {"start":346,"length":8}
>return a
>:=> (line 16, col 8) to (line 16, col 16)
--------------------------------
18 > return function bar() {
~~~~~~~~~~ => Pos: (362 to 371) SpanInfo: {"start":366,"length":56}
>return function bar() {
> return -greetings;
> }
>:=> (line 18, col 4) to (line 20, col 5)
18 > return function bar() {
~~~~~~~~~~~~~~~~~~ => Pos: (372 to 389) SpanInfo: {"start":398,"length":17}
>return -greetings
>:=> (line 19, col 8) to (line 19, col 25)
--------------------------------
19 > return -greetings;
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (390 to 416) SpanInfo: {"start":398,"length":17}
>return -greetings
>:=> (line 19, col 8) to (line 19, col 25)
--------------------------------
20 > };
~~~~~~~ => Pos: (417 to 423) SpanInfo: {"start":421,"length":1}
>}
>:=> (line 20, col 4) to (line 20, col 5)
--------------------------------
21 >}
~ => Pos: (424 to 424) SpanInfo: {"start":424,"length":1}
>}
>:=> (line 21, col 0) to (line 21, col 1)
@@ -0,0 +1,372 @@
1 >var greetings = 0;
~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 18) SpanInfo: {"start":0,"length":17}
>var greetings = 0
>:=> (line 1, col 0) to (line 1, col 17)
--------------------------------
2 >function greet(greeting: string): number {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (19 to 61) SpanInfo: {"start":66,"length":11}
>greetings++
>:=> (line 3, col 4) to (line 3, col 15)
--------------------------------
3 > greetings++;
~~~~~~~~~~~~~~~~~ => Pos: (62 to 78) SpanInfo: {"start":66,"length":11}
>greetings++
>:=> (line 3, col 4) to (line 3, col 15)
--------------------------------
4 > return greetings;
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (79 to 100) SpanInfo: {"start":83,"length":16}
>return greetings
>:=> (line 4, col 4) to (line 4, col 20)
--------------------------------
5 >}
~~ => Pos: (101 to 102) SpanInfo: {"start":101,"length":1}
>}
>:=> (line 5, col 0) to (line 5, col 1)
--------------------------------
6 >function greet2(greeting: string, n = 10, x?: string, ...restParams: string[]): number {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (103 to 135) SpanInfo: {"start":196,"length":11}
>greetings++
>:=> (line 7, col 4) to (line 7, col 15)
6 >function greet2(greeting: string, n = 10, x?: string, ...restParams: string[]): number {
~~~~~~~~~~~~~~~~~~~~=> Pos: (136 to 155) SpanInfo: {"start":137,"length":6}
>n = 10
>:=> (line 6, col 34) to (line 6, col 40)
6 >function greet2(greeting: string, n = 10, x?: string, ...restParams: string[]): number {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (156 to 188) SpanInfo: {"start":157,"length":23}
>...restParams: string[]
>:=> (line 6, col 54) to (line 6, col 77)
6 >function greet2(greeting: string, n = 10, x?: string, ...restParams: string[]): number {
~~~=> Pos: (189 to 191) SpanInfo: {"start":196,"length":11}
>greetings++
>:=> (line 7, col 4) to (line 7, col 15)
--------------------------------
7 > greetings++;
~~~~~~~~~~~~~~~~~ => Pos: (192 to 208) SpanInfo: {"start":196,"length":11}
>greetings++
>:=> (line 7, col 4) to (line 7, col 15)
--------------------------------
8 > return greetings;
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (209 to 230) SpanInfo: {"start":213,"length":16}
>return greetings
>:=> (line 8, col 4) to (line 8, col 20)
--------------------------------
9 >}
~~ => Pos: (231 to 232) SpanInfo: {"start":231,"length":1}
>}
>:=> (line 9, col 0) to (line 9, col 1)
--------------------------------
10 >function foo(greeting: string, n = 10, x?: string, ...restParams: string[])
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (233 to 262) SpanInfo: {"start":315,"length":6}
>return
>:=> (line 12, col 4) to (line 12, col 10)
10 >function foo(greeting: string, n = 10, x?: string, ...restParams: string[])
~~~~~~~~~~~~~~~~~~~~=> Pos: (263 to 282) SpanInfo: {"start":264,"length":6}
>n = 10
>:=> (line 10, col 31) to (line 10, col 37)
10 >function foo(greeting: string, n = 10, x?: string, ...restParams: string[])
~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (283 to 308) SpanInfo: {"start":284,"length":23}
>...restParams: string[]
>:=> (line 10, col 51) to (line 10, col 74)
--------------------------------
11 >{
~~ => Pos: (309 to 310) SpanInfo: {"start":315,"length":6}
>return
>:=> (line 12, col 4) to (line 12, col 10)
--------------------------------
12 > return;
~~~~~~~~~~~~ => Pos: (311 to 322) SpanInfo: {"start":315,"length":6}
>return
>:=> (line 12, col 4) to (line 12, col 10)
--------------------------------
13 >}
~~ => Pos: (323 to 324) SpanInfo: {"start":323,"length":1}
>}
>:=> (line 13, col 0) to (line 13, col 1)
--------------------------------
14 >module m {
~~~~~~~~~~~ => Pos: (325 to 335) SpanInfo: {"start":325,"length":389}
>module m {
> var greetings = 0;
> function greet(greeting: string): number {
> greetings++;
> return greetings;
> }
> function greet2(greeting: string, n = 10, x?: string, ...restParams: string[]): number {
> greetings++;
> return greetings;
> }
> function foo(greeting: string, n = 10, x?: string, ...restParams: string[])
> {
> return;
> }
>}
>:=> (line 14, col 0) to (line 28, col 1)
--------------------------------
15 > var greetings = 0;
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (336 to 358) SpanInfo: {"start":340,"length":17}
>var greetings = 0
>:=> (line 15, col 4) to (line 15, col 21)
--------------------------------
16 > function greet(greeting: string): number {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (359 to 405) SpanInfo: {"start":414,"length":11}
>greetings++
>:=> (line 17, col 8) to (line 17, col 19)
--------------------------------
17 > greetings++;
~~~~~~~~~~~~~~~~~~~~~ => Pos: (406 to 426) SpanInfo: {"start":414,"length":11}
>greetings++
>:=> (line 17, col 8) to (line 17, col 19)
--------------------------------
18 > return greetings;
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (427 to 452) SpanInfo: {"start":435,"length":16}
>return greetings
>:=> (line 18, col 8) to (line 18, col 24)
--------------------------------
19 > }
~~~~~~ => Pos: (453 to 458) SpanInfo: {"start":457,"length":1}
>}
>:=> (line 19, col 4) to (line 19, col 5)
--------------------------------
20 > function greet2(greeting: string, n = 10, x?: string, ...restParams: string[]): number {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (459 to 495) SpanInfo: {"start":560,"length":11}
>greetings++
>:=> (line 21, col 8) to (line 21, col 19)
20 > function greet2(greeting: string, n = 10, x?: string, ...restParams: string[]): number {
~~~~~~~~~~~~~~~~~~~~=> Pos: (496 to 515) SpanInfo: {"start":497,"length":6}
>n = 10
>:=> (line 20, col 38) to (line 20, col 44)
20 > function greet2(greeting: string, n = 10, x?: string, ...restParams: string[]): number {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (516 to 548) SpanInfo: {"start":517,"length":23}
>...restParams: string[]
>:=> (line 20, col 58) to (line 20, col 81)
20 > function greet2(greeting: string, n = 10, x?: string, ...restParams: string[]): number {
~~~=> Pos: (549 to 551) SpanInfo: {"start":560,"length":11}
>greetings++
>:=> (line 21, col 8) to (line 21, col 19)
--------------------------------
21 > greetings++;
~~~~~~~~~~~~~~~~~~~~~ => Pos: (552 to 572) SpanInfo: {"start":560,"length":11}
>greetings++
>:=> (line 21, col 8) to (line 21, col 19)
--------------------------------
22 > return greetings;
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (573 to 598) SpanInfo: {"start":581,"length":16}
>return greetings
>:=> (line 22, col 8) to (line 22, col 24)
--------------------------------
23 > }
~~~~~~ => Pos: (599 to 604) SpanInfo: {"start":603,"length":1}
>}
>:=> (line 23, col 4) to (line 23, col 5)
--------------------------------
24 > function foo(greeting: string, n = 10, x?: string, ...restParams: string[])
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (605 to 638) SpanInfo: {"start":699,"length":6}
>return
>:=> (line 26, col 8) to (line 26, col 14)
24 > function foo(greeting: string, n = 10, x?: string, ...restParams: string[])
~~~~~~~~~~~~~~~~~~~~=> Pos: (639 to 658) SpanInfo: {"start":640,"length":6}
>n = 10
>:=> (line 24, col 35) to (line 24, col 41)
24 > function foo(greeting: string, n = 10, x?: string, ...restParams: string[])
~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (659 to 684) SpanInfo: {"start":660,"length":23}
>...restParams: string[]
>:=> (line 24, col 55) to (line 24, col 78)
--------------------------------
25 > {
~~~~~~ => Pos: (685 to 690) SpanInfo: {"start":699,"length":6}
>return
>:=> (line 26, col 8) to (line 26, col 14)
--------------------------------
26 > return;
~~~~~~~~~~~~~~~~ => Pos: (691 to 706) SpanInfo: {"start":699,"length":6}
>return
>:=> (line 26, col 8) to (line 26, col 14)
--------------------------------
27 > }
~~~~~~ => Pos: (707 to 712) SpanInfo: {"start":711,"length":1}
>}
>:=> (line 27, col 4) to (line 27, col 5)
--------------------------------
28 >}
~~ => Pos: (713 to 714) SpanInfo: {"start":713,"length":1}
>}
>:=> (line 28, col 0) to (line 28, col 1)
--------------------------------
29 >module m1 {
~~~~~~~~~~~~ => Pos: (715 to 726) SpanInfo: {"start":715,"length":411}
>module m1 {
> var greetings = 0;
> export function greet(greeting: string): number {
> greetings++;
> return greetings;
> }
> export function greet2(greeting: string, n = 10, x?: string, ...restParams: string[]): number {
> greetings++;
> return greetings;
> }
> export function foo(greeting: string, n = 10, x?: string, ...restParams: string[])
> {
> return;
> }
>}
>:=> (line 29, col 0) to (line 43, col 1)
--------------------------------
30 > var greetings = 0;
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (727 to 749) SpanInfo: {"start":731,"length":17}
>var greetings = 0
>:=> (line 30, col 4) to (line 30, col 21)
--------------------------------
31 > export function greet(greeting: string): number {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (750 to 803) SpanInfo: {"start":754,"length":102}
>export function greet(greeting: string): number {
> greetings++;
> return greetings;
> }
>:=> (line 31, col 4) to (line 34, col 5)
--------------------------------
32 > greetings++;
~~~~~~~~~~~~~~~~~~~~~ => Pos: (804 to 824) SpanInfo: {"start":812,"length":11}
>greetings++
>:=> (line 32, col 8) to (line 32, col 19)
--------------------------------
33 > return greetings;
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (825 to 850) SpanInfo: {"start":833,"length":16}
>return greetings
>:=> (line 33, col 8) to (line 33, col 24)
--------------------------------
34 > }
~~~~~~ => Pos: (851 to 856) SpanInfo: {"start":855,"length":1}
>}
>:=> (line 34, col 4) to (line 34, col 5)
--------------------------------
35 > export function greet2(greeting: string, n = 10, x?: string, ...restParams: string[]): number {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (857 to 900) SpanInfo: {"start":861,"length":148}
>export function greet2(greeting: string, n = 10, x?: string, ...restParams: string[]): number {
> greetings++;
> return greetings;
> }
>:=> (line 35, col 4) to (line 38, col 5)
35 > export function greet2(greeting: string, n = 10, x?: string, ...restParams: string[]): number {
~~~~~~~~~~~~~~~~~~~~=> Pos: (901 to 920) SpanInfo: {"start":902,"length":6}
>n = 10
>:=> (line 35, col 45) to (line 35, col 51)
35 > export function greet2(greeting: string, n = 10, x?: string, ...restParams: string[]): number {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (921 to 953) SpanInfo: {"start":922,"length":23}
>...restParams: string[]
>:=> (line 35, col 65) to (line 35, col 88)
35 > export function greet2(greeting: string, n = 10, x?: string, ...restParams: string[]): number {
~~~=> Pos: (954 to 956) SpanInfo: {"start":861,"length":148}
>export function greet2(greeting: string, n = 10, x?: string, ...restParams: string[]): number {
> greetings++;
> return greetings;
> }
>:=> (line 35, col 4) to (line 38, col 5)
--------------------------------
36 > greetings++;
~~~~~~~~~~~~~~~~~~~~~ => Pos: (957 to 977) SpanInfo: {"start":965,"length":11}
>greetings++
>:=> (line 36, col 8) to (line 36, col 19)
--------------------------------
37 > return greetings;
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (978 to 1003) SpanInfo: {"start":986,"length":16}
>return greetings
>:=> (line 37, col 8) to (line 37, col 24)
--------------------------------
38 > }
~~~~~~ => Pos: (1004 to 1009) SpanInfo: {"start":1008,"length":1}
>}
>:=> (line 38, col 4) to (line 38, col 5)
--------------------------------
39 > export function foo(greeting: string, n = 10, x?: string, ...restParams: string[])
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1010 to 1050) SpanInfo: {"start":1014,"length":110}
>export function foo(greeting: string, n = 10, x?: string, ...restParams: string[])
> {
> return;
> }
>:=> (line 39, col 4) to (line 42, col 5)
39 > export function foo(greeting: string, n = 10, x?: string, ...restParams: string[])
~~~~~~~~~~~~~~~~~~~~=> Pos: (1051 to 1070) SpanInfo: {"start":1052,"length":6}
>n = 10
>:=> (line 39, col 42) to (line 39, col 48)
39 > export function foo(greeting: string, n = 10, x?: string, ...restParams: string[])
~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (1071 to 1096) SpanInfo: {"start":1072,"length":23}
>...restParams: string[]
>:=> (line 39, col 62) to (line 39, col 85)
--------------------------------
40 > {
~~~~~~ => Pos: (1097 to 1102) SpanInfo: {"start":1111,"length":6}
>return
>:=> (line 41, col 8) to (line 41, col 14)
--------------------------------
41 > return;
~~~~~~~~~~~~~~~~ => Pos: (1103 to 1118) SpanInfo: {"start":1111,"length":6}
>return
>:=> (line 41, col 8) to (line 41, col 14)
--------------------------------
42 > }
~~~~~~ => Pos: (1119 to 1124) SpanInfo: {"start":1123,"length":1}
>}
>:=> (line 42, col 4) to (line 42, col 5)
--------------------------------
43 >}
~ => Pos: (1125 to 1125) SpanInfo: {"start":1125,"length":1}
>}
>:=> (line 43, col 0) to (line 43, col 1)
@@ -0,0 +1,166 @@
1 >var i = 10;
~~~~~~~~~~~~ => Pos: (0 to 11) SpanInfo: {"start":0,"length":10}
>var i = 10
>:=> (line 1, col 0) to (line 1, col 10)
--------------------------------
2 >if (i == 10) {
~~~~~~~~~~~~~~~ => Pos: (12 to 26) SpanInfo: {"start":12,"length":12}
>if (i == 10)
>:=> (line 2, col 0) to (line 2, col 12)
--------------------------------
3 > i++;
~~~~~~~~~ => Pos: (27 to 35) SpanInfo: {"start":31,"length":3}
>i++
>:=> (line 3, col 4) to (line 3, col 7)
--------------------------------
4 >} else
~ => Pos: (36 to 36) SpanInfo: {"start":31,"length":3}
>i++
>:=> (line 3, col 4) to (line 3, col 7)
4 >} else
~~~~~~ => Pos: (37 to 42) SpanInfo: undefined
--------------------------------
5 >{
~~ => Pos: (43 to 44) SpanInfo: undefined
--------------------------------
6 >}
~~ => Pos: (45 to 46) SpanInfo: undefined
--------------------------------
7 >if (i == 10)
~~~~~~~~~~~~~ => Pos: (47 to 59) SpanInfo: {"start":47,"length":12}
>if (i == 10)
>:=> (line 7, col 0) to (line 7, col 12)
--------------------------------
8 >{
~~ => Pos: (60 to 61) SpanInfo: {"start":66,"length":3}
>i++
>:=> (line 9, col 4) to (line 9, col 7)
--------------------------------
9 > i++;
~~~~~~~~~ => Pos: (62 to 70) SpanInfo: {"start":66,"length":3}
>i++
>:=> (line 9, col 4) to (line 9, col 7)
--------------------------------
10 >}
~~ => Pos: (71 to 72) SpanInfo: {"start":66,"length":3}
>i++
>:=> (line 9, col 4) to (line 9, col 7)
--------------------------------
11 >else if (i == 20) {
~~~~~~~~~~~~~~~~~~~~ => Pos: (73 to 92) SpanInfo: {"start":78,"length":12}
>if (i == 20)
>:=> (line 11, col 5) to (line 11, col 17)
--------------------------------
12 > i--;
~~~~~~~~~ => Pos: (93 to 101) SpanInfo: {"start":97,"length":3}
>i--
>:=> (line 12, col 4) to (line 12, col 7)
--------------------------------
13 >} else if (i == 30) {
~ => Pos: (102 to 102) SpanInfo: {"start":97,"length":3}
>i--
>:=> (line 12, col 4) to (line 12, col 7)
13 >} else if (i == 30) {
~~~~~~~~~~~~~~~~~~~~~ => Pos: (103 to 123) SpanInfo: {"start":109,"length":12}
>if (i == 30)
>:=> (line 13, col 7) to (line 13, col 19)
--------------------------------
14 > i += 70;
~~~~~~~~~~~~~ => Pos: (124 to 136) SpanInfo: {"start":128,"length":7}
>i += 70
>:=> (line 14, col 4) to (line 14, col 11)
--------------------------------
15 >} else {
~ => Pos: (137 to 137) SpanInfo: {"start":128,"length":7}
>i += 70
>:=> (line 14, col 4) to (line 14, col 11)
15 >} else {
~~~~~~~~ => Pos: (138 to 145) SpanInfo: {"start":150,"length":3}
>i--
>:=> (line 16, col 4) to (line 16, col 7)
--------------------------------
16 > i--;
~~~~~~~~~ => Pos: (146 to 154) SpanInfo: {"start":150,"length":3}
>i--
>:=> (line 16, col 4) to (line 16, col 7)
--------------------------------
17 >}
~~ => Pos: (155 to 156) SpanInfo: {"start":150,"length":3}
>i--
>:=> (line 16, col 4) to (line 16, col 7)
--------------------------------
18 >if (function foo() {
~~~~ => Pos: (157 to 160) SpanInfo: {"start":157,"length":41}
>if (function foo() {
> return 30;
>} ())
>:=> (line 18, col 0) to (line 20, col 5)
18 >if (function foo() {
~~~~~~~~~~~~~~~~~ => Pos: (161 to 177) SpanInfo: {"start":182,"length":9}
>return 30
>:=> (line 19, col 4) to (line 19, col 13)
--------------------------------
19 > return 30;
~~~~~~~~~~~~~~~ => Pos: (178 to 192) SpanInfo: {"start":182,"length":9}
>return 30
>:=> (line 19, col 4) to (line 19, col 13)
--------------------------------
20 >} ()) {
~ => Pos: (193 to 193) SpanInfo: {"start":193,"length":1}
>}
>:=> (line 20, col 0) to (line 20, col 1)
20 >} ()) {
~~~ => Pos: (194 to 196) SpanInfo: {"start":161,"length":36}
>function foo() {
> return 30;
>} ()
>:=> (line 18, col 4) to (line 20, col 4)
20 >} ()) {
~ => Pos: (197 to 197) SpanInfo: {"start":157,"length":41}
>if (function foo() {
> return 30;
>} ())
>:=> (line 18, col 0) to (line 20, col 5)
20 >} ()) {
~~~ => Pos: (198 to 200) SpanInfo: {"start":205,"length":3}
>i++
>:=> (line 21, col 4) to (line 21, col 7)
--------------------------------
21 > i++;
~~~~~~~~~ => Pos: (201 to 209) SpanInfo: {"start":205,"length":3}
>i++
>:=> (line 21, col 4) to (line 21, col 7)
--------------------------------
22 >}
~ => Pos: (210 to 210) SpanInfo: {"start":205,"length":3}
>i++
>:=> (line 21, col 4) to (line 21, col 7)
@@ -0,0 +1,60 @@
1 >module m {
~~~~~~~~~~~ => Pos: (0 to 10) SpanInfo: {"start":0,"length":32}
>module m {
> class c {
> }
>}
>:=> (line 1, col 0) to (line 4, col 1)
--------------------------------
2 > class c {
~~~~~~~~~~~~~~ => Pos: (11 to 24) SpanInfo: {"start":15,"length":15}
>class c {
> }
>:=> (line 2, col 4) to (line 3, col 5)
--------------------------------
3 > }
~~~~~~ => Pos: (25 to 30) SpanInfo: {"start":29,"length":1}
>}
>:=> (line 3, col 4) to (line 3, col 5)
--------------------------------
4 >}
~~ => Pos: (31 to 32) SpanInfo: {"start":31,"length":1}
>}
>:=> (line 4, col 0) to (line 4, col 1)
--------------------------------
5 >import a = m.c;
~~~~~~~~~~~~~~~~ => Pos: (33 to 48) SpanInfo: {"start":33,"length":14}
>import a = m.c
>:=> (line 5, col 0) to (line 5, col 14)
--------------------------------
6 >export import b = m.c;
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (49 to 71) SpanInfo: {"start":49,"length":21}
>export import b = m.c
>:=> (line 6, col 0) to (line 6, col 21)
--------------------------------
7 >var x = new a();
~~~~~~~ => Pos: (72 to 78) SpanInfo: {"start":72,"length":15}
>var x = new a()
>:=> (line 7, col 0) to (line 7, col 15)
7 >var x = new a();
~~~~~~~~~~ => Pos: (79 to 88) SpanInfo: {"start":80,"length":7}
>new a()
>:=> (line 7, col 8) to (line 7, col 15)
--------------------------------
8 >var y = new b();
~~~~~~~ => Pos: (89 to 95) SpanInfo: {"start":89,"length":15}
>var y = new b()
>:=> (line 8, col 0) to (line 8, col 15)
8 >var y = new b();
~~~~~~~~~ => Pos: (96 to 104) SpanInfo: {"start":97,"length":7}
>new b()
>:=> (line 8, col 8) to (line 8, col 15)
@@ -0,0 +1,15 @@
1 >var x = 10;
~~~~~~~~~~~~ => Pos: (0 to 11) SpanInfo: {"start":0,"length":10}
>var x = 10
>:=> (line 1, col 0) to (line 1, col 10)
--------------------------------
2 >
~ => Pos: (12 to 12) SpanInfo: undefined
--------------------------------
3 >var y = 10;
~~~~~~~~~~~ => Pos: (13 to 23) SpanInfo: {"start":13,"length":10}
>var y = 10
>:=> (line 3, col 0) to (line 3, col 10)
@@ -0,0 +1,19 @@
1 >/*comment here*/ var x = 10; /*comment here*/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (0 to 45) SpanInfo: {"start":17,"length":10}
>var x = 10
>:=> (line 1, col 17) to (line 1, col 27)
--------------------------------
2 >// comment only line
~~~~~~~~~~~~~~~~~~~~~ => Pos: (46 to 66) SpanInfo: undefined
--------------------------------
3 >/*multiline comment
~~~~~~~~~~~~~~~~~~~~ => Pos: (67 to 86) SpanInfo: undefined
--------------------------------
4 >another line of multiline comment */ var y = 10; // comment here
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=> Pos: (87 to 150) SpanInfo: {"start":124,"length":10}
>var y = 10
>:=> (line 4, col 37) to (line 4, col 47)
@@ -0,0 +1,91 @@
1 >interface I {
~~~~~~~~~~~~~~ => Pos: (0 to 13) SpanInfo: undefined
--------------------------------
2 > property: string;
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (14 to 35) SpanInfo: undefined
--------------------------------
3 > method(): number;
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (36 to 57) SpanInfo: undefined
--------------------------------
4 > (a: string): string;
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (58 to 82) SpanInfo: undefined
--------------------------------
5 > new (a: string): I;
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (83 to 106) SpanInfo: undefined
--------------------------------
6 > [a: number]: number;
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (107 to 131) SpanInfo: undefined
--------------------------------
7 >}
~~ => Pos: (132 to 133) SpanInfo: undefined
--------------------------------
8 >module m {
~~~~~~~~~~~ => Pos: (134 to 144) SpanInfo: undefined
--------------------------------
9 > interface I1 {
~~~~~~~~~~~~~~~~~~~ => Pos: (145 to 163) SpanInfo: undefined
--------------------------------
10 > property: string;
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (164 to 189) SpanInfo: undefined
--------------------------------
11 > method(): number;
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (190 to 215) SpanInfo: undefined
--------------------------------
12 > (a: string): string;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (216 to 244) SpanInfo: undefined
--------------------------------
13 > new (a: string): I;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (245 to 272) SpanInfo: undefined
--------------------------------
14 > [a: number]: number;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (273 to 301) SpanInfo: undefined
--------------------------------
15 > }
~~~~~~ => Pos: (302 to 307) SpanInfo: undefined
--------------------------------
16 > export interface I2 {
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (308 to 333) SpanInfo: undefined
--------------------------------
17 > property: string;
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (334 to 359) SpanInfo: undefined
--------------------------------
18 > method(): number;
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (360 to 385) SpanInfo: undefined
--------------------------------
19 > (a: string): string;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (386 to 414) SpanInfo: undefined
--------------------------------
20 > new (a: string): I;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (415 to 442) SpanInfo: undefined
--------------------------------
21 > [a: number]: number;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (443 to 471) SpanInfo: undefined
--------------------------------
22 > }
~~~~~~ => Pos: (472 to 477) SpanInfo: undefined
--------------------------------
23 >}
~ => Pos: (478 to 478) SpanInfo: undefined
@@ -0,0 +1,11 @@
1 >x:
~~~ => Pos: (0 to 2) SpanInfo: {"start":3,"length":10}
>var b = 10
>:=> (line 2, col 0) to (line 2, col 10)
--------------------------------
2 >var b = 10;
~~~~~~~~~~~ => Pos: (3 to 13) SpanInfo: {"start":3,"length":10}
>var b = 10
>:=> (line 2, col 0) to (line 2, col 10)
@@ -0,0 +1,234 @@
1 >module m2 {
~~~~~~~~~~~~ => Pos: (0 to 11) SpanInfo: {"start":0,"length":38}
>module m2 {
> var a = 10;
> a++;
>}
>:=> (line 1, col 0) to (line 4, col 1)
--------------------------------
2 > var a = 10;
~~~~~~~~~~~~~~~~ => Pos: (12 to 27) SpanInfo: {"start":16,"length":10}
>var a = 10
>:=> (line 2, col 4) to (line 2, col 14)
--------------------------------
3 > a++;
~~~~~~~~~ => Pos: (28 to 36) SpanInfo: {"start":32,"length":3}
>a++
>:=> (line 3, col 4) to (line 3, col 7)
--------------------------------
4 >}
~~ => Pos: (37 to 38) SpanInfo: {"start":37,"length":1}
>}
>:=> (line 4, col 0) to (line 4, col 1)
--------------------------------
5 >module m3 {
~~~~~~~~~~~~ => Pos: (39 to 50) SpanInfo: {"start":39,"length":118}
>module m3 {
> module m4 {
> export var x = 30;
> }
>
> export function foo() {
> return m4.x;
> }
>}
>:=> (line 5, col 0) to (line 13, col 1)
--------------------------------
6 > module m4 {
~~~~~~~~~~~~~~~~ => Pos: (51 to 66) SpanInfo: {"start":55,"length":44}
>module m4 {
> export var x = 30;
> }
>:=> (line 6, col 4) to (line 8, col 5)
--------------------------------
7 > export var x = 30;
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (67 to 93) SpanInfo: {"start":75,"length":17}
>export var x = 30
>:=> (line 7, col 8) to (line 7, col 25)
--------------------------------
8 > }
~~~~~~ => Pos: (94 to 99) SpanInfo: {"start":98,"length":1}
>}
>:=> (line 8, col 4) to (line 8, col 5)
--------------------------------
9 >
~ => Pos: (100 to 100) SpanInfo: undefined
--------------------------------
10 > export function foo() {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (101 to 128) SpanInfo: {"start":105,"length":50}
>export function foo() {
> return m4.x;
> }
>:=> (line 10, col 4) to (line 12, col 5)
--------------------------------
11 > return m4.x;
~~~~~~~~~~~~~~~~~~~~~ => Pos: (129 to 149) SpanInfo: {"start":137,"length":11}
>return m4.x
>:=> (line 11, col 8) to (line 11, col 19)
--------------------------------
12 > }
~~~~~~ => Pos: (150 to 155) SpanInfo: {"start":154,"length":1}
>}
>:=> (line 12, col 4) to (line 12, col 5)
--------------------------------
13 >}
~~ => Pos: (156 to 157) SpanInfo: {"start":156,"length":1}
>}
>:=> (line 13, col 0) to (line 13, col 1)
--------------------------------
14 >module m4 {
~~~~~~~~~~~~ => Pos: (158 to 169) SpanInfo: undefined
--------------------------------
15 > interface I { }
~~~~~~~~~~~~~~~~~~~~ => Pos: (170 to 189) SpanInfo: undefined
--------------------------------
16 >}
~~ => Pos: (190 to 191) SpanInfo: undefined
--------------------------------
17 >module m12
~~~~~~~~~~~ => Pos: (192 to 202) SpanInfo: {"start":192,"length":39}
>module m12
>{
> var a = 10;
> a++;
>}
>:=> (line 17, col 0) to (line 21, col 1)
--------------------------------
18 >{
~~ => Pos: (203 to 204) SpanInfo: {"start":209,"length":10}
>var a = 10
>:=> (line 19, col 4) to (line 19, col 14)
--------------------------------
19 > var a = 10;
~~~~~~~~~~~~~~~~ => Pos: (205 to 220) SpanInfo: {"start":209,"length":10}
>var a = 10
>:=> (line 19, col 4) to (line 19, col 14)
--------------------------------
20 > a++;
~~~~~~~~~ => Pos: (221 to 229) SpanInfo: {"start":225,"length":3}
>a++
>:=> (line 20, col 4) to (line 20, col 7)
--------------------------------
21 >}
~~ => Pos: (230 to 231) SpanInfo: {"start":230,"length":1}
>}
>:=> (line 21, col 0) to (line 21, col 1)
--------------------------------
22 >module m13
~~~~~~~~~~~ => Pos: (232 to 242) SpanInfo: {"start":232,"length":125}
>module m13
>{
> module m14
> {
> export var x = 30;
> }
>
> export function foo() {
> return m4.x;
> }
>}
>:=> (line 22, col 0) to (line 32, col 1)
--------------------------------
23 >{
~~ => Pos: (243 to 244) SpanInfo: {"start":249,"length":50}
>module m14
> {
> export var x = 30;
> }
>:=> (line 24, col 4) to (line 27, col 5)
--------------------------------
24 > module m14
~~~~~~~~~~~~~~~~ => Pos: (245 to 260) SpanInfo: {"start":249,"length":50}
>module m14
> {
> export var x = 30;
> }
>:=> (line 24, col 4) to (line 27, col 5)
--------------------------------
25 > {
~~~~~~ => Pos: (261 to 266) SpanInfo: {"start":275,"length":17}
>export var x = 30
>:=> (line 26, col 8) to (line 26, col 25)
--------------------------------
26 > export var x = 30;
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (267 to 293) SpanInfo: {"start":275,"length":17}
>export var x = 30
>:=> (line 26, col 8) to (line 26, col 25)
--------------------------------
27 > }
~~~~~~ => Pos: (294 to 299) SpanInfo: {"start":298,"length":1}
>}
>:=> (line 27, col 4) to (line 27, col 5)
--------------------------------
28 >
~ => Pos: (300 to 300) SpanInfo: undefined
--------------------------------
29 > export function foo() {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (301 to 328) SpanInfo: {"start":305,"length":50}
>export function foo() {
> return m4.x;
> }
>:=> (line 29, col 4) to (line 31, col 5)
--------------------------------
30 > return m4.x;
~~~~~~~~~~~~~~~~~~~~~ => Pos: (329 to 349) SpanInfo: {"start":337,"length":11}
>return m4.x
>:=> (line 30, col 8) to (line 30, col 19)
--------------------------------
31 > }
~~~~~~ => Pos: (350 to 355) SpanInfo: {"start":354,"length":1}
>}
>:=> (line 31, col 4) to (line 31, col 5)
--------------------------------
32 >}
~~ => Pos: (356 to 357) SpanInfo: {"start":356,"length":1}
>}
>:=> (line 32, col 0) to (line 32, col 1)
--------------------------------
33 >module m14
~~~~~~~~~~~~ => Pos: (358 to 369) SpanInfo: undefined
--------------------------------
34 >{
~~ => Pos: (370 to 371) SpanInfo: undefined
--------------------------------
35 > interface I { }
~~~~~~~~~~~~~~~~~~~~ => Pos: (372 to 391) SpanInfo: undefined
--------------------------------
36 >}
~ => Pos: (392 to 392) SpanInfo: undefined
@@ -0,0 +1,19 @@
1 >declare module Bar {
~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 20) SpanInfo: undefined
--------------------------------
2 >}
~~ => Pos: (21 to 22) SpanInfo: undefined
--------------------------------
3 >declare module Foo {
~~~~~~~~~~~~~~~~~~~~~ => Pos: (23 to 43) SpanInfo: undefined
--------------------------------
4 > var x;
~~~~~~~~~~~ => Pos: (44 to 54) SpanInfo: undefined
--------------------------------
5 >}
~ => Pos: (55 to 55) SpanInfo: undefined
@@ -0,0 +1,7 @@
1 >module Bar {
~~~~~~~~~~~~~ => Pos: (0 to 12) SpanInfo: undefined
--------------------------------
2 >}
~ => Pos: (13 to 13) SpanInfo: undefined
@@ -0,0 +1,233 @@
1 >var x = {
~~~~~~~~~~ => Pos: (0 to 9) SpanInfo: {"start":0,"length":179}
>var x = {
> a: 10,
> b: () => 10,
> someMethod() {
> return "Hello";
> },
> get y() {
> return 30;
> },
> set z(x: number) {
> var bar = x;
> }
>}
>:=> (line 1, col 0) to (line 13, col 1)
--------------------------------
2 > a: 10,
~~~~~~~~~~~ => Pos: (10 to 20) SpanInfo: {"start":0,"length":179}
>var x = {
> a: 10,
> b: () => 10,
> someMethod() {
> return "Hello";
> },
> get y() {
> return 30;
> },
> set z(x: number) {
> var bar = x;
> }
>}
>:=> (line 1, col 0) to (line 13, col 1)
--------------------------------
3 > b: () => 10,
~~~~~~~~~~~~~~~~~ => Pos: (21 to 37) SpanInfo: {"start":34,"length":2}
>10
>:=> (line 3, col 13) to (line 3, col 15)
--------------------------------
4 > someMethod() {
~~~~~~~~~~~~~~~~~~~ => Pos: (38 to 56) SpanInfo: {"start":65,"length":14}
>return "Hello"
>:=> (line 5, col 8) to (line 5, col 22)
--------------------------------
5 > return "Hello";
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (57 to 80) SpanInfo: {"start":65,"length":14}
>return "Hello"
>:=> (line 5, col 8) to (line 5, col 22)
--------------------------------
6 > },
~~~~~~~ => Pos: (81 to 87) SpanInfo: {"start":85,"length":1}
>}
>:=> (line 6, col 4) to (line 6, col 5)
--------------------------------
7 > get y() {
~~~~~~~~~~~~~~ => Pos: (88 to 101) SpanInfo: {"start":110,"length":9}
>return 30
>:=> (line 8, col 8) to (line 8, col 17)
--------------------------------
8 > return 30;
~~~~~~~~~~~~~~~~~~~ => Pos: (102 to 120) SpanInfo: {"start":110,"length":9}
>return 30
>:=> (line 8, col 8) to (line 8, col 17)
--------------------------------
9 > },
~~~~~~~ => Pos: (121 to 127) SpanInfo: {"start":125,"length":1}
>}
>:=> (line 9, col 4) to (line 9, col 5)
--------------------------------
10 > set z(x: number) {
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (128 to 150) SpanInfo: {"start":159,"length":11}
>var bar = x
>:=> (line 11, col 8) to (line 11, col 19)
--------------------------------
11 > var bar = x;
~~~~~~~~~~~~~~~~~~~~~ => Pos: (151 to 171) SpanInfo: {"start":159,"length":11}
>var bar = x
>:=> (line 11, col 8) to (line 11, col 19)
--------------------------------
12 > }
~~~~~~ => Pos: (172 to 177) SpanInfo: {"start":176,"length":1}
>}
>:=> (line 12, col 4) to (line 12, col 5)
--------------------------------
13 >};
~~~ => Pos: (178 to 180) SpanInfo: {"start":0,"length":179}
>var x = {
> a: 10,
> b: () => 10,
> someMethod() {
> return "Hello";
> },
> get y() {
> return 30;
> },
> set z(x: number) {
> var bar = x;
> }
>}
>:=> (line 1, col 0) to (line 13, col 1)
--------------------------------
14 >var a = ({
~~~~~~~~~~~ => Pos: (181 to 191) SpanInfo: {"start":181,"length":192}
>var a = ({
> a: 10,
> b: () => 10,
> someMethod() {
> return "Hello";
> },
> get y() {
> return 30;
> },
> set z(x: number) {
> var bar = x;
> }
>}).someMethod
>:=> (line 14, col 0) to (line 26, col 13)
--------------------------------
15 > a: 10,
~~~~~~~~~~~ => Pos: (192 to 202) SpanInfo: {"start":181,"length":192}
>var a = ({
> a: 10,
> b: () => 10,
> someMethod() {
> return "Hello";
> },
> get y() {
> return 30;
> },
> set z(x: number) {
> var bar = x;
> }
>}).someMethod
>:=> (line 14, col 0) to (line 26, col 13)
--------------------------------
16 > b: () => 10,
~~~~~~~~~~~~~~~~~ => Pos: (203 to 219) SpanInfo: {"start":216,"length":2}
>10
>:=> (line 16, col 13) to (line 16, col 15)
--------------------------------
17 > someMethod() {
~~~~~~~~~~~~~~~~~~~ => Pos: (220 to 238) SpanInfo: {"start":247,"length":14}
>return "Hello"
>:=> (line 18, col 8) to (line 18, col 22)
--------------------------------
18 > return "Hello";
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (239 to 262) SpanInfo: {"start":247,"length":14}
>return "Hello"
>:=> (line 18, col 8) to (line 18, col 22)
--------------------------------
19 > },
~~~~~~~ => Pos: (263 to 269) SpanInfo: {"start":267,"length":1}
>}
>:=> (line 19, col 4) to (line 19, col 5)
--------------------------------
20 > get y() {
~~~~~~~~~~~~~~ => Pos: (270 to 283) SpanInfo: {"start":292,"length":9}
>return 30
>:=> (line 21, col 8) to (line 21, col 17)
--------------------------------
21 > return 30;
~~~~~~~~~~~~~~~~~~~ => Pos: (284 to 302) SpanInfo: {"start":292,"length":9}
>return 30
>:=> (line 21, col 8) to (line 21, col 17)
--------------------------------
22 > },
~~~~~~~ => Pos: (303 to 309) SpanInfo: {"start":307,"length":1}
>}
>:=> (line 22, col 4) to (line 22, col 5)
--------------------------------
23 > set z(x: number) {
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (310 to 332) SpanInfo: {"start":341,"length":11}
>var bar = x
>:=> (line 24, col 8) to (line 24, col 19)
--------------------------------
24 > var bar = x;
~~~~~~~~~~~~~~~~~~~~~ => Pos: (333 to 353) SpanInfo: {"start":341,"length":11}
>var bar = x
>:=> (line 24, col 8) to (line 24, col 19)
--------------------------------
25 > }
~~~~~~ => Pos: (354 to 359) SpanInfo: {"start":358,"length":1}
>}
>:=> (line 25, col 4) to (line 25, col 5)
--------------------------------
26 >}).someMethod;
~~~~~~~~~~~~~~~ => Pos: (360 to 374) SpanInfo: {"start":181,"length":192}
>var a = ({
> a: 10,
> b: () => 10,
> someMethod() {
> return "Hello";
> },
> get y() {
> return 30;
> },
> set z(x: number) {
> var bar = x;
> }
>}).someMethod
>:=> (line 14, col 0) to (line 26, col 13)
--------------------------------
27 >a();
~~~~ => Pos: (375 to 378) SpanInfo: {"start":375,"length":3}
>a()
>:=> (line 27, col 0) to (line 27, col 3)
@@ -0,0 +1,364 @@
1 >function foo(a: number) {
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (0 to 25) SpanInfo: {"start":30,"length":8}
>return a
>:=> (line 2, col 4) to (line 2, col 12)
--------------------------------
2 > return a;
~~~~~~~~~~~~~~ => Pos: (26 to 39) SpanInfo: {"start":30,"length":8}
>return a
>:=> (line 2, col 4) to (line 2, col 12)
--------------------------------
3 >}
~~ => Pos: (40 to 41) SpanInfo: {"start":40,"length":1}
>}
>:=> (line 3, col 0) to (line 3, col 1)
--------------------------------
4 >foo((function bar() {
~~~~ => Pos: (42 to 45) SpanInfo: {"start":42,"length":47}
>foo((function bar() {
> return foo(40);
>})())
>:=> (line 4, col 0) to (line 6, col 5)
4 >foo((function bar() {
~ => Pos: (46 to 46) SpanInfo: {"start":46,"length":42}
>(function bar() {
> return foo(40);
>})()
>:=> (line 4, col 4) to (line 6, col 4)
4 >foo((function bar() {
~~~~~~~~~~~~~~~~~ => Pos: (47 to 63) SpanInfo: {"start":68,"length":14}
>return foo(40)
>:=> (line 5, col 4) to (line 5, col 18)
--------------------------------
5 > return foo(40);
~~~~~~~~~~ => Pos: (64 to 73) SpanInfo: {"start":68,"length":14}
>return foo(40)
>:=> (line 5, col 4) to (line 5, col 18)
5 > return foo(40);
~~~~~~~~~~ => Pos: (74 to 83) SpanInfo: {"start":75,"length":7}
>foo(40)
>:=> (line 5, col 11) to (line 5, col 18)
--------------------------------
6 >})());
~ => Pos: (84 to 84) SpanInfo: {"start":84,"length":1}
>}
>:=> (line 6, col 0) to (line 6, col 1)
6 >})());
~~~ => Pos: (85 to 87) SpanInfo: {"start":46,"length":42}
>(function bar() {
> return foo(40);
>})()
>:=> (line 4, col 4) to (line 6, col 4)
6 >})());
~~~ => Pos: (88 to 90) SpanInfo: {"start":42,"length":47}
>foo((function bar() {
> return foo(40);
>})())
>:=> (line 4, col 0) to (line 6, col 5)
--------------------------------
7 >var y = foo((function () {
~~~~~~~ => Pos: (91 to 97) SpanInfo: {"start":91,"length":52}
>var y = foo((function () {
> return foo(40);
>})())
>:=> (line 7, col 0) to (line 9, col 5)
7 >var y = foo((function () {
~~~~~ => Pos: (98 to 102) SpanInfo: {"start":99,"length":44}
>foo((function () {
> return foo(40);
>})())
>:=> (line 7, col 8) to (line 9, col 5)
7 >var y = foo((function () {
~ => Pos: (103 to 103) SpanInfo: {"start":103,"length":39}
>(function () {
> return foo(40);
>})()
>:=> (line 7, col 12) to (line 9, col 4)
7 >var y = foo((function () {
~~~~~~~~~~~~~~ => Pos: (104 to 117) SpanInfo: {"start":122,"length":14}
>return foo(40)
>:=> (line 8, col 4) to (line 8, col 18)
--------------------------------
8 > return foo(40);
~~~~~~~~~~ => Pos: (118 to 127) SpanInfo: {"start":122,"length":14}
>return foo(40)
>:=> (line 8, col 4) to (line 8, col 18)
8 > return foo(40);
~~~~~~~~~~ => Pos: (128 to 137) SpanInfo: {"start":129,"length":7}
>foo(40)
>:=> (line 8, col 11) to (line 8, col 18)
--------------------------------
9 >})());;
~ => Pos: (138 to 138) SpanInfo: {"start":138,"length":1}
>}
>:=> (line 9, col 0) to (line 9, col 1)
9 >})());;
~~~ => Pos: (139 to 141) SpanInfo: {"start":103,"length":39}
>(function () {
> return foo(40);
>})()
>:=> (line 7, col 12) to (line 9, col 4)
9 >})());;
~~~~ => Pos: (142 to 145) SpanInfo: {"start":99,"length":44}
>foo((function () {
> return foo(40);
>})())
>:=> (line 7, col 8) to (line 9, col 5)
--------------------------------
10 >class greeter {
~~~~~~~~~~~~~~~~ => Pos: (146 to 161) SpanInfo: {"start":146,"length":52}
>class greeter {
> constructor(a: number) {
> }
>}
>:=> (line 10, col 0) to (line 13, col 1)
--------------------------------
11 > constructor(a: number) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (162 to 190) SpanInfo: {"start":195,"length":1}
>}
>:=> (line 12, col 4) to (line 12, col 5)
--------------------------------
12 > }
~~~~~~ => Pos: (191 to 196) SpanInfo: {"start":195,"length":1}
>}
>:=> (line 12, col 4) to (line 12, col 5)
--------------------------------
13 >}
~~ => Pos: (197 to 198) SpanInfo: {"start":197,"length":1}
>}
>:=> (line 13, col 0) to (line 13, col 1)
--------------------------------
14 >foo(30);
~~~~~~~~~ => Pos: (199 to 207) SpanInfo: {"start":199,"length":7}
>foo(30)
>:=> (line 14, col 0) to (line 14, col 7)
--------------------------------
15 >foo(40 + y);
~~~~~~~~~~~~~ => Pos: (208 to 220) SpanInfo: {"start":208,"length":11}
>foo(40 + y)
>:=> (line 15, col 0) to (line 15, col 11)
--------------------------------
16 >y = foo(30);
~~~ => Pos: (221 to 223) SpanInfo: {"start":221,"length":11}
>y = foo(30)
>:=> (line 16, col 0) to (line 16, col 11)
16 >y = foo(30);
~~~~~~~~~~ => Pos: (224 to 233) SpanInfo: {"start":225,"length":7}
>foo(30)
>:=> (line 16, col 4) to (line 16, col 11)
--------------------------------
17 >y = foo(500 + y);
~~~ => Pos: (234 to 236) SpanInfo: {"start":234,"length":16}
>y = foo(500 + y)
>:=> (line 17, col 0) to (line 17, col 16)
17 >y = foo(500 + y);
~~~~~~~~~~~~~~~ => Pos: (237 to 251) SpanInfo: {"start":238,"length":12}
>foo(500 + y)
>:=> (line 17, col 4) to (line 17, col 16)
--------------------------------
18 >new greeter((function bar() {
~~~~~~~~~~~~ => Pos: (252 to 263) SpanInfo: {"start":252,"length":55}
>new greeter((function bar() {
> return foo(40);
>})())
>:=> (line 18, col 0) to (line 20, col 5)
18 >new greeter((function bar() {
~ => Pos: (264 to 264) SpanInfo: {"start":264,"length":42}
>(function bar() {
> return foo(40);
>})()
>:=> (line 18, col 12) to (line 20, col 4)
18 >new greeter((function bar() {
~~~~~~~~~~~~~~~~~ => Pos: (265 to 281) SpanInfo: {"start":286,"length":14}
>return foo(40)
>:=> (line 19, col 4) to (line 19, col 18)
--------------------------------
19 > return foo(40);
~~~~~~~~~~ => Pos: (282 to 291) SpanInfo: {"start":286,"length":14}
>return foo(40)
>:=> (line 19, col 4) to (line 19, col 18)
19 > return foo(40);
~~~~~~~~~~ => Pos: (292 to 301) SpanInfo: {"start":293,"length":7}
>foo(40)
>:=> (line 19, col 11) to (line 19, col 18)
--------------------------------
20 >})());
~ => Pos: (302 to 302) SpanInfo: {"start":302,"length":1}
>}
>:=> (line 20, col 0) to (line 20, col 1)
20 >})());
~~~ => Pos: (303 to 305) SpanInfo: {"start":264,"length":42}
>(function bar() {
> return foo(40);
>})()
>:=> (line 18, col 12) to (line 20, col 4)
20 >})());
~~~ => Pos: (306 to 308) SpanInfo: {"start":252,"length":55}
>new greeter((function bar() {
> return foo(40);
>})())
>:=> (line 18, col 0) to (line 20, col 5)
--------------------------------
21 >var anotherGreeter = new greeter((function bar() {
~~~~~~~~~~~~~~~~~~~~ => Pos: (309 to 328) SpanInfo: {"start":309,"length":76}
>var anotherGreeter = new greeter((function bar() {
> return foo(40);
>})())
>:=> (line 21, col 0) to (line 23, col 5)
21 >var anotherGreeter = new greeter((function bar() {
~~~~~~~~~~~~~ => Pos: (329 to 341) SpanInfo: {"start":330,"length":55}
>new greeter((function bar() {
> return foo(40);
>})())
>:=> (line 21, col 21) to (line 23, col 5)
21 >var anotherGreeter = new greeter((function bar() {
~ => Pos: (342 to 342) SpanInfo: {"start":342,"length":42}
>(function bar() {
> return foo(40);
>})()
>:=> (line 21, col 33) to (line 23, col 4)
21 >var anotherGreeter = new greeter((function bar() {
~~~~~~~~~~~~~~~~~=> Pos: (343 to 359) SpanInfo: {"start":364,"length":14}
>return foo(40)
>:=> (line 22, col 4) to (line 22, col 18)
--------------------------------
22 > return foo(40);
~~~~~~~~~~ => Pos: (360 to 369) SpanInfo: {"start":364,"length":14}
>return foo(40)
>:=> (line 22, col 4) to (line 22, col 18)
22 > return foo(40);
~~~~~~~~~~ => Pos: (370 to 379) SpanInfo: {"start":371,"length":7}
>foo(40)
>:=> (line 22, col 11) to (line 22, col 18)
--------------------------------
23 >})());
~ => Pos: (380 to 380) SpanInfo: {"start":380,"length":1}
>}
>:=> (line 23, col 0) to (line 23, col 1)
23 >})());
~~~ => Pos: (381 to 383) SpanInfo: {"start":342,"length":42}
>(function bar() {
> return foo(40);
>})()
>:=> (line 21, col 33) to (line 23, col 4)
23 >})());
~~~ => Pos: (384 to 386) SpanInfo: {"start":330,"length":55}
>new greeter((function bar() {
> return foo(40);
>})())
>:=> (line 21, col 21) to (line 23, col 5)
--------------------------------
24 >anotherGreeter = new greeter(30);
~~~~~~~~~~~~~~~~ => Pos: (387 to 402) SpanInfo: {"start":387,"length":32}
>anotherGreeter = new greeter(30)
>:=> (line 24, col 0) to (line 24, col 32)
24 >anotherGreeter = new greeter(30);
~~~~~~~~~~~~~~~~~~ => Pos: (403 to 420) SpanInfo: {"start":404,"length":15}
>new greeter(30)
>:=> (line 24, col 17) to (line 24, col 32)
--------------------------------
25 >anotherGreeter = new greeter(40 + y);
~~~~~~~~~~~~~~~~ => Pos: (421 to 436) SpanInfo: {"start":421,"length":36}
>anotherGreeter = new greeter(40 + y)
>:=> (line 25, col 0) to (line 25, col 36)
25 >anotherGreeter = new greeter(40 + y);
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (437 to 458) SpanInfo: {"start":438,"length":19}
>new greeter(40 + y)
>:=> (line 25, col 17) to (line 25, col 36)
--------------------------------
26 >new greeter(30);
~~~~~~~~~~~~~~~~~ => Pos: (459 to 475) SpanInfo: {"start":459,"length":15}
>new greeter(30)
>:=> (line 26, col 0) to (line 26, col 15)
--------------------------------
27 >new greeter(40 + y);
~~~~~~~~~~~~~~~~~~~~~ => Pos: (476 to 496) SpanInfo: {"start":476,"length":19}
>new greeter(40 + y)
>:=> (line 27, col 0) to (line 27, col 19)
--------------------------------
28 >function foo2(x: number, y: string) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (497 to 534) SpanInfo: {"start":535,"length":1}
>}
>:=> (line 29, col 0) to (line 29, col 1)
--------------------------------
29 >}
~~ => Pos: (535 to 536) SpanInfo: {"start":535,"length":1}
>}
>:=> (line 29, col 0) to (line 29, col 1)
--------------------------------
30 >foo2(foo(30), foo(40).toString());
~~~~~ => Pos: (537 to 541) SpanInfo: {"start":537,"length":33}
>foo2(foo(30), foo(40).toString())
>:=> (line 30, col 0) to (line 30, col 33)
30 >foo2(foo(30), foo(40).toString());
~~~~~~~~ => Pos: (542 to 549) SpanInfo: {"start":542,"length":7}
>foo(30)
>:=> (line 30, col 5) to (line 30, col 12)
30 >foo2(foo(30), foo(40).toString());
~~~~~~~~ => Pos: (550 to 557) SpanInfo: {"start":551,"length":7}
>foo(40)
>:=> (line 30, col 14) to (line 30, col 21)
30 >foo2(foo(30), foo(40).toString());
~~~~~~~~~~~ => Pos: (558 to 568) SpanInfo: {"start":551,"length":18}
>foo(40).toString()
>:=> (line 30, col 14) to (line 30, col 32)
30 >foo2(foo(30), foo(40).toString());
~~ => Pos: (569 to 570) SpanInfo: {"start":537,"length":33}
>foo2(foo(30), foo(40).toString())
>:=> (line 30, col 0) to (line 30, col 33)
@@ -0,0 +1,572 @@
1 >function f() {
~~~~~~~~~~~~~~~ => Pos: (0 to 14) SpanInfo: undefined
--------------------------------
2 > var y;
~~~~~~~~~~~ => Pos: (15 to 25) SpanInfo: undefined
--------------------------------
3 > var x = 0;
~~~~~~~~~~~~~~~ => Pos: (26 to 40) SpanInfo: {"start":30,"length":9}
>var x = 0
>:=> (line 3, col 4) to (line 3, col 13)
--------------------------------
4 > for (var i = 0; i < 10; i++) {
~~~~~~~~~~~~~~~~~~~ => Pos: (41 to 59) SpanInfo: {"start":50,"length":9}
>var i = 0
>:=> (line 4, col 9) to (line 4, col 18)
4 > for (var i = 0; i < 10; i++) {
~~~~~~~~ => Pos: (60 to 67) SpanInfo: {"start":61,"length":6}
>i < 10
>:=> (line 4, col 20) to (line 4, col 26)
4 > for (var i = 0; i < 10; i++) {
~~~~~~~~ => Pos: (68 to 75) SpanInfo: {"start":69,"length":3}
>i++
>:=> (line 4, col 28) to (line 4, col 31)
--------------------------------
5 > x += i;
~~~~~~~~~~~~~~~~ => Pos: (76 to 91) SpanInfo: {"start":84,"length":6}
>x += i
>:=> (line 5, col 8) to (line 5, col 14)
--------------------------------
6 > x *= 0;
~~~~~~~~~~~~~~~~ => Pos: (92 to 107) SpanInfo: {"start":100,"length":6}
>x *= 0
>:=> (line 6, col 8) to (line 6, col 14)
--------------------------------
7 > }
~~~~~~ => Pos: (108 to 113) SpanInfo: {"start":100,"length":6}
>x *= 0
>:=> (line 6, col 8) to (line 6, col 14)
--------------------------------
8 > if (x > 17) {
~~~~~~~~~~~~~~~~~~ => Pos: (114 to 131) SpanInfo: {"start":118,"length":11}
>if (x > 17)
>:=> (line 8, col 4) to (line 8, col 15)
--------------------------------
9 > x /= 9;
~~~~~~~~~~~~~~~~ => Pos: (132 to 147) SpanInfo: {"start":140,"length":6}
>x /= 9
>:=> (line 9, col 8) to (line 9, col 14)
--------------------------------
10 > } else {
~~~~~ => Pos: (148 to 152) SpanInfo: {"start":140,"length":6}
>x /= 9
>:=> (line 9, col 8) to (line 9, col 14)
10 > } else {
~~~~~~~~ => Pos: (153 to 160) SpanInfo: {"start":169,"length":7}
>x += 10
>:=> (line 11, col 8) to (line 11, col 15)
--------------------------------
11 > x += 10;
~~~~~~~~~~~~~~~~~ => Pos: (161 to 177) SpanInfo: {"start":169,"length":7}
>x += 10
>:=> (line 11, col 8) to (line 11, col 15)
--------------------------------
12 > x++;
~~~~~~~~~~~~~ => Pos: (178 to 190) SpanInfo: {"start":186,"length":3}
>x++
>:=> (line 12, col 8) to (line 12, col 11)
--------------------------------
13 > }
~~~~~~ => Pos: (191 to 196) SpanInfo: {"start":186,"length":3}
>x++
>:=> (line 12, col 8) to (line 12, col 11)
--------------------------------
14 > var a = [
~~~~~~~~~~~~~~ => Pos: (197 to 210) SpanInfo: {"start":201,"length":47}
>var a = [
> 1,
> 2,
> 3
> ]
>:=> (line 14, col 4) to (line 18, col 5)
--------------------------------
15 > 1,
~~~~~~~~~~~ => Pos: (211 to 221) SpanInfo: {"start":201,"length":47}
>var a = [
> 1,
> 2,
> 3
> ]
>:=> (line 14, col 4) to (line 18, col 5)
--------------------------------
16 > 2,
~~~~~~~~~~~ => Pos: (222 to 232) SpanInfo: {"start":201,"length":47}
>var a = [
> 1,
> 2,
> 3
> ]
>:=> (line 14, col 4) to (line 18, col 5)
--------------------------------
17 > 3
~~~~~~~~~~ => Pos: (233 to 242) SpanInfo: {"start":201,"length":47}
>var a = [
> 1,
> 2,
> 3
> ]
>:=> (line 14, col 4) to (line 18, col 5)
--------------------------------
18 > ];
~~~~~~~ => Pos: (243 to 249) SpanInfo: {"start":201,"length":47}
>var a = [
> 1,
> 2,
> 3
> ]
>:=> (line 14, col 4) to (line 18, col 5)
--------------------------------
19 > var obj = {
~~~~~~~~~~~~~~~~ => Pos: (250 to 265) SpanInfo: {"start":254,"length":50}
>var obj = {
> z: 1,
> q: "hello"
> }
>:=> (line 19, col 4) to (line 22, col 5)
--------------------------------
20 > z: 1,
~~~~~~~~~~~~~~ => Pos: (266 to 279) SpanInfo: {"start":254,"length":50}
>var obj = {
> z: 1,
> q: "hello"
> }
>:=> (line 19, col 4) to (line 22, col 5)
--------------------------------
21 > q: "hello"
~~~~~~~~~~~~~~~~~~~ => Pos: (280 to 298) SpanInfo: {"start":254,"length":50}
>var obj = {
> z: 1,
> q: "hello"
> }
>:=> (line 19, col 4) to (line 22, col 5)
--------------------------------
22 > };
~~~~~~~ => Pos: (299 to 305) SpanInfo: {"start":254,"length":50}
>var obj = {
> z: 1,
> q: "hello"
> }
>:=> (line 19, col 4) to (line 22, col 5)
--------------------------------
23 > for (var j in a) {
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (306 to 328) SpanInfo: {"start":310,"length":16}
>for (var j in a)
>:=> (line 23, col 4) to (line 23, col 20)
--------------------------------
24 > obj.z = a[j];
~~~~~~~~~~~~~~~~~~~~~~ => Pos: (329 to 350) SpanInfo: {"start":337,"length":12}
>obj.z = a[j]
>:=> (line 24, col 8) to (line 24, col 20)
--------------------------------
25 > var v = 10;
~~~~~~~~~~~~~~~~~~~~ => Pos: (351 to 370) SpanInfo: {"start":359,"length":10}
>var v = 10
>:=> (line 25, col 8) to (line 25, col 18)
--------------------------------
26 > }
~~~~~~ => Pos: (371 to 376) SpanInfo: {"start":359,"length":10}
>var v = 10
>:=> (line 25, col 8) to (line 25, col 18)
--------------------------------
27 > try {
~~~~~~~~~~ => Pos: (377 to 386) SpanInfo: {"start":395,"length":14}
>obj.q = "ohhh"
>:=> (line 28, col 8) to (line 28, col 22)
--------------------------------
28 > obj.q = "ohhh";
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (387 to 410) SpanInfo: {"start":395,"length":14}
>obj.q = "ohhh"
>:=> (line 28, col 8) to (line 28, col 22)
--------------------------------
29 > } catch (e) {
~~~~~ => Pos: (411 to 415) SpanInfo: {"start":395,"length":14}
>obj.q = "ohhh"
>:=> (line 28, col 8) to (line 28, col 22)
29 > } catch (e) {
~~~~~~~~~~~~~ => Pos: (416 to 428) SpanInfo: {"start":437,"length":15}
>if (obj.z < 10)
>:=> (line 30, col 8) to (line 30, col 23)
--------------------------------
30 > if (obj.z < 10) {
~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (429 to 454) SpanInfo: {"start":437,"length":15}
>if (obj.z < 10)
>:=> (line 30, col 8) to (line 30, col 23)
--------------------------------
31 > obj.z = 12;
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (455 to 478) SpanInfo: {"start":467,"length":10}
>obj.z = 12
>:=> (line 31, col 12) to (line 31, col 22)
--------------------------------
32 > } else {
~~~~~~~~~ => Pos: (479 to 487) SpanInfo: {"start":467,"length":10}
>obj.z = 12
>:=> (line 31, col 12) to (line 31, col 22)
32 > } else {
~~~~~~~~ => Pos: (488 to 495) SpanInfo: {"start":508,"length":13}
>obj.q = "hmm"
>:=> (line 33, col 12) to (line 33, col 25)
--------------------------------
33 > obj.q = "hmm";
~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (496 to 522) SpanInfo: {"start":508,"length":13}
>obj.q = "hmm"
>:=> (line 33, col 12) to (line 33, col 25)
--------------------------------
34 > }
~~~~~~~~~~ => Pos: (523 to 532) SpanInfo: {"start":508,"length":13}
>obj.q = "hmm"
>:=> (line 33, col 12) to (line 33, col 25)
--------------------------------
35 > }
~~~~~~ => Pos: (533 to 538) SpanInfo: {"start":437,"length":15}
>if (obj.z < 10)
>:=> (line 30, col 8) to (line 30, col 23)
--------------------------------
36 > try {
~~~~~~~~~~ => Pos: (539 to 548) SpanInfo: {"start":557,"length":17}
>throw new Error()
>:=> (line 37, col 8) to (line 37, col 25)
--------------------------------
37 > throw new Error();
~~~~~~~~~~~~~ => Pos: (549 to 561) SpanInfo: {"start":557,"length":17}
>throw new Error()
>:=> (line 37, col 8) to (line 37, col 25)
37 > throw new Error();
~~~~~~~~~~~~~~ => Pos: (562 to 575) SpanInfo: {"start":563,"length":11}
>new Error()
>:=> (line 37, col 14) to (line 37, col 25)
--------------------------------
38 > } catch (e1) {
~~~~~ => Pos: (576 to 580) SpanInfo: {"start":557,"length":17}
>throw new Error()
>:=> (line 37, col 8) to (line 37, col 25)
38 > } catch (e1) {
~~~~~~~~~~~~~~ => Pos: (581 to 594) SpanInfo: {"start":603,"length":10}
>var b = e1
>:=> (line 39, col 8) to (line 39, col 18)
--------------------------------
39 > var b = e1;
~~~~~~~~~~~~~~~~~~~~ => Pos: (595 to 614) SpanInfo: {"start":603,"length":10}
>var b = e1
>:=> (line 39, col 8) to (line 39, col 18)
--------------------------------
40 > } finally {
~~~~~ => Pos: (615 to 619) SpanInfo: {"start":603,"length":10}
>var b = e1
>:=> (line 39, col 8) to (line 39, col 18)
40 > } finally {
~~~~~~~~~~~ => Pos: (620 to 630) SpanInfo: {"start":639,"length":6}
>y = 70
>:=> (line 41, col 8) to (line 41, col 14)
--------------------------------
41 > y = 70;
~~~~~~~~~~~~~~~~ => Pos: (631 to 646) SpanInfo: {"start":639,"length":6}
>y = 70
>:=> (line 41, col 8) to (line 41, col 14)
--------------------------------
42 > }
~~~~~~ => Pos: (647 to 652) SpanInfo: {"start":639,"length":6}
>y = 70
>:=> (line 41, col 8) to (line 41, col 14)
--------------------------------
43 > with (obj) {
~~~~~~~~~~~~~~~~~ => Pos: (653 to 669) SpanInfo: {"start":678,"length":5}
>i = 2
>:=> (line 44, col 8) to (line 44, col 13)
--------------------------------
44 > i = 2;
~~~~~~~~~~~~~~~ => Pos: (670 to 684) SpanInfo: {"start":678,"length":5}
>i = 2
>:=> (line 44, col 8) to (line 44, col 13)
--------------------------------
45 > z = 10;
~~~~~~~~~~~~~~~~ => Pos: (685 to 700) SpanInfo: {"start":693,"length":6}
>z = 10
>:=> (line 45, col 8) to (line 45, col 14)
--------------------------------
46 > }
~~~~~~ => Pos: (701 to 706) SpanInfo: {"start":693,"length":6}
>z = 10
>:=> (line 45, col 8) to (line 45, col 14)
--------------------------------
47 > switch (obj.z) {
~~~~~~~~~~~~~~~~~~~~~ => Pos: (707 to 727) SpanInfo: {"start":711,"length":14}
>switch (obj.z)
>:=> (line 47, col 4) to (line 47, col 18)
--------------------------------
48 > case 0: {
~~~~~~~~~~~~~~~~~~ => Pos: (728 to 745) SpanInfo: {"start":758,"length":3}
>x++
>:=> (line 49, col 12) to (line 49, col 15)
--------------------------------
49 > x++;
~~~~~~~~~~~~~~~~~ => Pos: (746 to 762) SpanInfo: {"start":758,"length":3}
>x++
>:=> (line 49, col 12) to (line 49, col 15)
--------------------------------
50 > break;
~~~~~~~~~~~~~~~~~~~ => Pos: (763 to 781) SpanInfo: {"start":775,"length":5}
>break
>:=> (line 50, col 12) to (line 50, col 17)
--------------------------------
51 >
~ => Pos: (782 to 782) SpanInfo: undefined
--------------------------------
52 > }
~~~~~~~~~~ => Pos: (783 to 792) SpanInfo: {"start":775,"length":5}
>break
>:=> (line 50, col 12) to (line 50, col 17)
--------------------------------
53 > case 1: {
~~~~~~~~~~~~~~~~~~ => Pos: (793 to 810) SpanInfo: {"start":823,"length":3}
>x--
>:=> (line 54, col 12) to (line 54, col 15)
--------------------------------
54 > x--;
~~~~~~~~~~~~~~~~~ => Pos: (811 to 827) SpanInfo: {"start":823,"length":3}
>x--
>:=> (line 54, col 12) to (line 54, col 15)
--------------------------------
55 > break;
~~~~~~~~~~~~~~~~~~~ => Pos: (828 to 846) SpanInfo: {"start":840,"length":5}
>break
>:=> (line 55, col 12) to (line 55, col 17)
--------------------------------
56 >
~ => Pos: (847 to 847) SpanInfo: undefined
--------------------------------
57 > }
~~~~~~~~~~ => Pos: (848 to 857) SpanInfo: {"start":840,"length":5}
>break
>:=> (line 55, col 12) to (line 55, col 17)
--------------------------------
58 > default: {
~~~~~~~~~~~~~~~~~~~ => Pos: (858 to 876) SpanInfo: {"start":889,"length":6}
>x *= 2
>:=> (line 59, col 12) to (line 59, col 18)
--------------------------------
59 > x *= 2;
~~~~~~~~~~~~~~~~~~~~ => Pos: (877 to 896) SpanInfo: {"start":889,"length":6}
>x *= 2
>:=> (line 59, col 12) to (line 59, col 18)
--------------------------------
60 > x = 50;
~~~~~~~~~~~~~~~~~~~~ => Pos: (897 to 916) SpanInfo: {"start":909,"length":6}
>x = 50
>:=> (line 60, col 12) to (line 60, col 18)
--------------------------------
61 > break;
~~~~~~~~~~~~~~~~~~~ => Pos: (917 to 935) SpanInfo: {"start":929,"length":5}
>break
>:=> (line 61, col 12) to (line 61, col 17)
--------------------------------
62 >
~ => Pos: (936 to 936) SpanInfo: undefined
--------------------------------
63 > }
~~~~~~~~~~ => Pos: (937 to 946) SpanInfo: {"start":929,"length":5}
>break
>:=> (line 61, col 12) to (line 61, col 17)
--------------------------------
64 > }
~~~~~~ => Pos: (947 to 952) SpanInfo: {"start":889,"length":6}
>x *= 2
>:=> (line 59, col 12) to (line 59, col 18)
--------------------------------
65 > while (x < 10) {
~~~~~~~~~~~~~~~~~~~~~ => Pos: (953 to 973) SpanInfo: {"start":957,"length":14}
>while (x < 10)
>:=> (line 65, col 4) to (line 65, col 18)
--------------------------------
66 > x++;
~~~~~~~~~~~~~ => Pos: (974 to 986) SpanInfo: {"start":982,"length":3}
>x++
>:=> (line 66, col 8) to (line 66, col 11)
--------------------------------
67 > }
~~~~~~ => Pos: (987 to 992) SpanInfo: {"start":982,"length":3}
>x++
>:=> (line 66, col 8) to (line 66, col 11)
--------------------------------
68 > do {
~~~~~~~~~ => Pos: (993 to 1001) SpanInfo: {"start":1010,"length":3}
>x--
>:=> (line 69, col 8) to (line 69, col 11)
--------------------------------
69 > x--;
~~~~~~~~~~~~~ => Pos: (1002 to 1014) SpanInfo: {"start":1010,"length":3}
>x--
>:=> (line 69, col 8) to (line 69, col 11)
--------------------------------
70 > } while (x > 4)
~~~~~ => Pos: (1015 to 1019) SpanInfo: {"start":1010,"length":3}
>x--
>:=> (line 69, col 8) to (line 69, col 11)
70 > } while (x > 4)
~~~~~~~~~~~~~~~ => Pos: (1020 to 1034) SpanInfo: {"start":1021,"length":13}
>while (x > 4)
>:=> (line 70, col 6) to (line 70, col 19)
--------------------------------
71 > x = y;
~~~~~~~~~~~ => Pos: (1035 to 1045) SpanInfo: {"start":1039,"length":5}
>x = y
>:=> (line 71, col 4) to (line 71, col 9)
--------------------------------
72 > var z = (x == 1) ? x + 1 : x - 1;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1046 to 1083) SpanInfo: {"start":1050,"length":32}
>var z = (x == 1) ? x + 1 : x - 1
>:=> (line 72, col 4) to (line 72, col 36)
--------------------------------
73 > (x == 1) ? x + 1 : x - 1;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (1084 to 1113) SpanInfo: {"start":1088,"length":24}
>(x == 1) ? x + 1 : x - 1
>:=> (line 73, col 4) to (line 73, col 28)
--------------------------------
74 > x === 1;
~~~~~~~~~~~~~ => Pos: (1114 to 1126) SpanInfo: {"start":1118,"length":7}
>x === 1
>:=> (line 74, col 4) to (line 74, col 11)
--------------------------------
75 > x = z = 40;
~~~~~~~~~~~~~~~~ => Pos: (1127 to 1142) SpanInfo: {"start":1131,"length":10}
>x = z = 40
>:=> (line 75, col 4) to (line 75, col 14)
--------------------------------
76 > eval("y");
~~~~~~~~~~~~~~~ => Pos: (1143 to 1157) SpanInfo: {"start":1147,"length":9}
>eval("y")
>:=> (line 76, col 4) to (line 76, col 13)
--------------------------------
77 > return;
~~~~~~~~~~~~ => Pos: (1158 to 1169) SpanInfo: {"start":1162,"length":6}
>return
>:=> (line 77, col 4) to (line 77, col 10)
--------------------------------
78 >}
~~ => Pos: (1170 to 1171) SpanInfo: {"start":1170,"length":1}
>}
>:=> (line 78, col 0) to (line 78, col 1)
--------------------------------
79 >var b = function () {
~~~~~~~ => Pos: (1172 to 1178) SpanInfo: {"start":1172,"length":54}
>var b = function () {
> var x = 10;
> x = x + 1;
>}
>:=> (line 79, col 0) to (line 82, col 1)
79 >var b = function () {
~~~~~~~~~~~~~~~ => Pos: (1179 to 1193) SpanInfo: {"start":1198,"length":10}
>var x = 10
>:=> (line 80, col 4) to (line 80, col 14)
--------------------------------
80 > var x = 10;
~~~~~~~~~~~~~~~~ => Pos: (1194 to 1209) SpanInfo: {"start":1198,"length":10}
>var x = 10
>:=> (line 80, col 4) to (line 80, col 14)
--------------------------------
81 > x = x + 1;
~~~~~~~~~~~~~~~ => Pos: (1210 to 1224) SpanInfo: {"start":1214,"length":9}
>x = x + 1
>:=> (line 81, col 4) to (line 81, col 13)
--------------------------------
82 >};
~~~ => Pos: (1225 to 1227) SpanInfo: {"start":1225,"length":1}
>}
>:=> (line 82, col 0) to (line 82, col 1)
--------------------------------
83 >f();
~~~~ => Pos: (1228 to 1231) SpanInfo: {"start":1228,"length":3}
>f()
>:=> (line 83, col 0) to (line 83, col 3)
@@ -0,0 +1,272 @@
1 >var x = 10;
~~~~~~~~~~~~ => Pos: (0 to 11) SpanInfo: {"start":0,"length":10}
>var x = 10
>:=> (line 1, col 0) to (line 1, col 10)
--------------------------------
2 >switch (x) {
~~~~~~~~~~~~~ => Pos: (12 to 24) SpanInfo: {"start":12,"length":10}
>switch (x)
>:=> (line 2, col 0) to (line 2, col 10)
--------------------------------
3 > case 5:
~~~~~~~~~~~~ => Pos: (25 to 36) SpanInfo: {"start":45,"length":3}
>x++
>:=> (line 4, col 8) to (line 4, col 11)
--------------------------------
4 > x++;
~~~~~~~~~~~~~ => Pos: (37 to 49) SpanInfo: {"start":45,"length":3}
>x++
>:=> (line 4, col 8) to (line 4, col 11)
--------------------------------
5 > break;
~~~~~~~~~~~~~~~ => Pos: (50 to 64) SpanInfo: {"start":58,"length":5}
>break
>:=> (line 5, col 8) to (line 5, col 13)
--------------------------------
6 > case 10:
~~~~~~~~~~~~~ => Pos: (65 to 77) SpanInfo: {"start":100,"length":3}
>x--
>:=> (line 8, col 12) to (line 8, col 15)
--------------------------------
7 > {
~~~~~~~~~~ => Pos: (78 to 87) SpanInfo: {"start":100,"length":3}
>x--
>:=> (line 8, col 12) to (line 8, col 15)
--------------------------------
8 > x--;
~~~~~~~~~~~~~~~~~ => Pos: (88 to 104) SpanInfo: {"start":100,"length":3}
>x--
>:=> (line 8, col 12) to (line 8, col 15)
--------------------------------
9 > break;
~~~~~~~~~~~~~~~~~~~ => Pos: (105 to 123) SpanInfo: {"start":117,"length":5}
>break
>:=> (line 9, col 12) to (line 9, col 17)
--------------------------------
10 > }
~~~~~~~~~~ => Pos: (124 to 133) SpanInfo: {"start":117,"length":5}
>break
>:=> (line 9, col 12) to (line 9, col 17)
--------------------------------
11 > default:
~~~~~~~~~~~~~ => Pos: (134 to 146) SpanInfo: {"start":155,"length":9}
>x = x *10
>:=> (line 12, col 8) to (line 12, col 17)
--------------------------------
12 > x = x *10;
~~~~~~~~~~~~~~~~~~~ => Pos: (147 to 165) SpanInfo: {"start":155,"length":9}
>x = x *10
>:=> (line 12, col 8) to (line 12, col 17)
--------------------------------
13 >}
~~ => Pos: (166 to 167) SpanInfo: {"start":155,"length":9}
>x = x *10
>:=> (line 12, col 8) to (line 12, col 17)
--------------------------------
14 >switch (x)
~~~~~~~~~~~ => Pos: (168 to 178) SpanInfo: {"start":168,"length":10}
>switch (x)
>:=> (line 14, col 0) to (line 14, col 10)
--------------------------------
15 >{
~~ => Pos: (179 to 180) SpanInfo: {"start":201,"length":3}
>x++
>:=> (line 17, col 8) to (line 17, col 11)
--------------------------------
16 > case 5:
~~~~~~~~~~~~ => Pos: (181 to 192) SpanInfo: {"start":201,"length":3}
>x++
>:=> (line 17, col 8) to (line 17, col 11)
--------------------------------
17 > x++;
~~~~~~~~~~~~~ => Pos: (193 to 205) SpanInfo: {"start":201,"length":3}
>x++
>:=> (line 17, col 8) to (line 17, col 11)
--------------------------------
18 > break;
~~~~~~~~~~~~~~~ => Pos: (206 to 220) SpanInfo: {"start":214,"length":5}
>break
>:=> (line 18, col 8) to (line 18, col 13)
--------------------------------
19 > case 10:
~~~~~~~~~~~~~ => Pos: (221 to 233) SpanInfo: {"start":256,"length":3}
>x--
>:=> (line 21, col 12) to (line 21, col 15)
--------------------------------
20 > {
~~~~~~~~~~ => Pos: (234 to 243) SpanInfo: {"start":256,"length":3}
>x--
>:=> (line 21, col 12) to (line 21, col 15)
--------------------------------
21 > x--;
~~~~~~~~~~~~~~~~~ => Pos: (244 to 260) SpanInfo: {"start":256,"length":3}
>x--
>:=> (line 21, col 12) to (line 21, col 15)
--------------------------------
22 > break;
~~~~~~~~~~~~~~~~~~~ => Pos: (261 to 279) SpanInfo: {"start":273,"length":5}
>break
>:=> (line 22, col 12) to (line 22, col 17)
--------------------------------
23 > }
~~~~~~~~~~ => Pos: (280 to 289) SpanInfo: {"start":273,"length":5}
>break
>:=> (line 22, col 12) to (line 22, col 17)
--------------------------------
24 > default:
~~~~~~~~~~~~~ => Pos: (290 to 302) SpanInfo: {"start":325,"length":10}
>x = x * 10
>:=> (line 26, col 12) to (line 26, col 22)
--------------------------------
25 > {
~~~~~~~~~~ => Pos: (303 to 312) SpanInfo: {"start":325,"length":10}
>x = x * 10
>:=> (line 26, col 12) to (line 26, col 22)
--------------------------------
26 > x = x * 10;
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (313 to 336) SpanInfo: {"start":325,"length":10}
>x = x * 10
>:=> (line 26, col 12) to (line 26, col 22)
--------------------------------
27 > }
~~~~~~~~~~ => Pos: (337 to 346) SpanInfo: {"start":325,"length":10}
>x = x * 10
>:=> (line 26, col 12) to (line 26, col 22)
--------------------------------
28 >}
~~ => Pos: (347 to 348) SpanInfo: {"start":325,"length":10}
>x = x * 10
>:=> (line 26, col 12) to (line 26, col 22)
--------------------------------
29 >switch ((function foo() {
~~~~~~~~ => Pos: (349 to 356) SpanInfo: {"start":349,"length":50}
>switch ((function foo() {
> return x * 30;
>})())
>:=> (line 29, col 0) to (line 31, col 5)
29 >switch ((function foo() {
~ => Pos: (357 to 357) SpanInfo: {"start":357,"length":41}
>(function foo() {
> return x * 30;
>})()
>:=> (line 29, col 8) to (line 31, col 4)
29 >switch ((function foo() {
~~~~~~~~~~~~~~~~~ => Pos: (358 to 374) SpanInfo: {"start":379,"length":13}
>return x * 30
>:=> (line 30, col 4) to (line 30, col 17)
--------------------------------
30 > return x * 30;
~~~~~~~~~~~~~~~~~~~ => Pos: (375 to 393) SpanInfo: {"start":379,"length":13}
>return x * 30
>:=> (line 30, col 4) to (line 30, col 17)
--------------------------------
31 >})()) {
~ => Pos: (394 to 394) SpanInfo: {"start":394,"length":1}
>}
>:=> (line 31, col 0) to (line 31, col 1)
31 >})()) {
~~~ => Pos: (395 to 397) SpanInfo: {"start":357,"length":41}
>(function foo() {
> return x * 30;
>})()
>:=> (line 29, col 8) to (line 31, col 4)
31 >})()) {
~ => Pos: (398 to 398) SpanInfo: {"start":349,"length":50}
>switch ((function foo() {
> return x * 30;
>})())
>:=> (line 29, col 0) to (line 31, col 5)
31 >})()) {
~~~ => Pos: (399 to 401) SpanInfo: {"start":466,"length":3}
>x++
>:=> (line 35, col 8) to (line 35, col 11)
--------------------------------
32 > case (function bar() {
~~~~~~~~ => Pos: (402 to 409) SpanInfo: {"start":466,"length":3}
>x++
>:=> (line 35, col 8) to (line 35, col 11)
32 > case (function bar() {
~~ => Pos: (410 to 411) SpanInfo: {"start":411,"length":45}
>(function bar() {
> return 30;
> })()
>:=> (line 32, col 9) to (line 34, col 8)
32 > case (function bar() {
~~~~~~~~~~~~~~~~~ => Pos: (412 to 428) SpanInfo: {"start":437,"length":9}
>return 30
>:=> (line 33, col 8) to (line 33, col 17)
--------------------------------
33 > return 30;
~~~~~~~~~~~~~~~~~~~ => Pos: (429 to 447) SpanInfo: {"start":437,"length":9}
>return 30
>:=> (line 33, col 8) to (line 33, col 17)
--------------------------------
34 > })():
~~~~~ => Pos: (448 to 452) SpanInfo: {"start":452,"length":1}
>}
>:=> (line 34, col 4) to (line 34, col 5)
34 > })():
~~~ => Pos: (453 to 455) SpanInfo: {"start":411,"length":45}
>(function bar() {
> return 30;
> })()
>:=> (line 32, col 9) to (line 34, col 8)
34 > })():
~~ => Pos: (456 to 457) SpanInfo: {"start":466,"length":3}
>x++
>:=> (line 35, col 8) to (line 35, col 11)
--------------------------------
35 > x++;
~~~~~~~~~~~~~ => Pos: (458 to 470) SpanInfo: {"start":466,"length":3}
>x++
>:=> (line 35, col 8) to (line 35, col 11)
--------------------------------
36 >}
~ => Pos: (471 to 471) SpanInfo: {"start":466,"length":3}
>x++
>:=> (line 35, col 8) to (line 35, col 11)
@@ -0,0 +1,223 @@
1 >var x = 10;
~~~~~~~~~~~~ => Pos: (0 to 11) SpanInfo: {"start":0,"length":10}
>var x = 10
>:=> (line 1, col 0) to (line 1, col 10)
--------------------------------
2 >try {
~~~~~~ => Pos: (12 to 17) SpanInfo: {"start":22,"length":9}
>x = x + 1
>:=> (line 3, col 4) to (line 3, col 13)
--------------------------------
3 > x = x + 1;
~~~~~~~~~~~~~~~ => Pos: (18 to 32) SpanInfo: {"start":22,"length":9}
>x = x + 1
>:=> (line 3, col 4) to (line 3, col 13)
--------------------------------
4 >} catch (e) {
~ => Pos: (33 to 33) SpanInfo: {"start":22,"length":9}
>x = x + 1
>:=> (line 3, col 4) to (line 3, col 13)
4 >} catch (e) {
~~~~~~~~~~~~~ => Pos: (34 to 46) SpanInfo: {"start":51,"length":9}
>x = x - 1
>:=> (line 5, col 4) to (line 5, col 13)
--------------------------------
5 > x = x - 1;
~~~~~~~~~~~~~~~ => Pos: (47 to 61) SpanInfo: {"start":51,"length":9}
>x = x - 1
>:=> (line 5, col 4) to (line 5, col 13)
--------------------------------
6 >} finally {
~ => Pos: (62 to 62) SpanInfo: {"start":51,"length":9}
>x = x - 1
>:=> (line 5, col 4) to (line 5, col 13)
6 >} finally {
~~~~~~~~~~~ => Pos: (63 to 73) SpanInfo: {"start":78,"length":10}
>x = x * 10
>:=> (line 7, col 4) to (line 7, col 14)
--------------------------------
7 > x = x * 10;
~~~~~~~~~~~~~~~~ => Pos: (74 to 89) SpanInfo: {"start":78,"length":10}
>x = x * 10
>:=> (line 7, col 4) to (line 7, col 14)
--------------------------------
8 >}
~~ => Pos: (90 to 91) SpanInfo: {"start":78,"length":10}
>x = x * 10
>:=> (line 7, col 4) to (line 7, col 14)
--------------------------------
9 >try
~~~~ => Pos: (92 to 95) SpanInfo: {"start":102,"length":9}
>x = x + 1
>:=> (line 11, col 4) to (line 11, col 13)
--------------------------------
10 >{
~~ => Pos: (96 to 97) SpanInfo: {"start":102,"length":9}
>x = x + 1
>:=> (line 11, col 4) to (line 11, col 13)
--------------------------------
11 > x = x + 1;
~~~~~~~~~~~~~~~ => Pos: (98 to 112) SpanInfo: {"start":102,"length":9}
>x = x + 1
>:=> (line 11, col 4) to (line 11, col 13)
--------------------------------
12 > throw new Error();
~~~~~~~~~ => Pos: (113 to 121) SpanInfo: {"start":117,"length":17}
>throw new Error()
>:=> (line 12, col 4) to (line 12, col 21)
12 > throw new Error();
~~~~~~~~~~~~~~ => Pos: (122 to 135) SpanInfo: {"start":123,"length":11}
>new Error()
>:=> (line 12, col 10) to (line 12, col 21)
--------------------------------
13 >}
~~ => Pos: (136 to 137) SpanInfo: {"start":117,"length":17}
>throw new Error()
>:=> (line 12, col 4) to (line 12, col 21)
--------------------------------
14 >catch (e)
~~~~~~~~~~ => Pos: (138 to 147) SpanInfo: {"start":154,"length":9}
>x = x - 1
>:=> (line 16, col 4) to (line 16, col 13)
--------------------------------
15 >{
~~ => Pos: (148 to 149) SpanInfo: {"start":154,"length":9}
>x = x - 1
>:=> (line 16, col 4) to (line 16, col 13)
--------------------------------
16 > x = x - 1;
~~~~~~~~~~~~~~~ => Pos: (150 to 164) SpanInfo: {"start":154,"length":9}
>x = x - 1
>:=> (line 16, col 4) to (line 16, col 13)
--------------------------------
17 >}
~~ => Pos: (165 to 166) SpanInfo: {"start":154,"length":9}
>x = x - 1
>:=> (line 16, col 4) to (line 16, col 13)
--------------------------------
18 >finally
~~~~~~~~ => Pos: (167 to 174) SpanInfo: {"start":181,"length":10}
>x = x * 10
>:=> (line 20, col 4) to (line 20, col 14)
--------------------------------
19 >{
~~ => Pos: (175 to 176) SpanInfo: {"start":181,"length":10}
>x = x * 10
>:=> (line 20, col 4) to (line 20, col 14)
--------------------------------
20 > x = x * 10;
~~~~~~~~~~~~~~~~ => Pos: (177 to 192) SpanInfo: {"start":181,"length":10}
>x = x * 10
>:=> (line 20, col 4) to (line 20, col 14)
--------------------------------
21 >}
~~ => Pos: (193 to 194) SpanInfo: {"start":181,"length":10}
>x = x * 10
>:=> (line 20, col 4) to (line 20, col 14)
--------------------------------
22 >try {
~~~~~~ => Pos: (195 to 200) SpanInfo: {"start":205,"length":65}
>throw (function foo() {
> new Error(x.toString());
> })()
>:=> (line 23, col 4) to (line 25, col 8)
--------------------------------
23 > throw (function foo() {
~~~~~~~~~ => Pos: (201 to 209) SpanInfo: {"start":205,"length":65}
>throw (function foo() {
> new Error(x.toString());
> })()
>:=> (line 23, col 4) to (line 25, col 8)
23 > throw (function foo() {
~~ => Pos: (210 to 211) SpanInfo: {"start":211,"length":59}
>(function foo() {
> new Error(x.toString());
> })()
>:=> (line 23, col 10) to (line 25, col 8)
23 > throw (function foo() {
~~~~~~~~~~~~~~~~~ => Pos: (212 to 228) SpanInfo: {"start":237,"length":23}
>new Error(x.toString())
>:=> (line 24, col 8) to (line 24, col 31)
--------------------------------
24 > new Error(x.toString());
~~~~~~~~~~~~~~~~~~ => Pos: (229 to 246) SpanInfo: {"start":237,"length":23}
>new Error(x.toString())
>:=> (line 24, col 8) to (line 24, col 31)
24 > new Error(x.toString());
~~~~~~~~~~~~ => Pos: (247 to 258) SpanInfo: {"start":247,"length":12}
>x.toString()
>:=> (line 24, col 18) to (line 24, col 30)
24 > new Error(x.toString());
~~~ => Pos: (259 to 261) SpanInfo: {"start":237,"length":23}
>new Error(x.toString())
>:=> (line 24, col 8) to (line 24, col 31)
--------------------------------
25 > })();
~~~~~ => Pos: (262 to 266) SpanInfo: {"start":266,"length":1}
>}
>:=> (line 25, col 4) to (line 25, col 5)
25 > })();
~~~~~ => Pos: (267 to 271) SpanInfo: {"start":211,"length":59}
>(function foo() {
> new Error(x.toString());
> })()
>:=> (line 23, col 10) to (line 25, col 8)
--------------------------------
26 >}
~~ => Pos: (272 to 273) SpanInfo: {"start":205,"length":65}
>throw (function foo() {
> new Error(x.toString());
> })()
>:=> (line 23, col 4) to (line 25, col 8)
--------------------------------
27 >finally {
~~~~~~~~~~ => Pos: (274 to 283) SpanInfo: {"start":288,"length":3}
>x++
>:=> (line 28, col 4) to (line 28, col 7)
--------------------------------
28 > x++;
~~~~~~~~~ => Pos: (284 to 292) SpanInfo: {"start":288,"length":3}
>x++
>:=> (line 28, col 4) to (line 28, col 7)
--------------------------------
29 >}
~ => Pos: (293 to 293) SpanInfo: {"start":288,"length":3}
>x++
>:=> (line 28, col 4) to (line 28, col 7)
@@ -0,0 +1,82 @@
1 >class Greeter {
~~~~~~~~~~~~~~~~ => Pos: (0 to 15) SpanInfo: {"start":0,"length":17}
>class Greeter {
>}
>:=> (line 1, col 0) to (line 2, col 1)
--------------------------------
2 >}
~~ => Pos: (16 to 17) SpanInfo: {"start":16,"length":1}
>}
>:=> (line 2, col 0) to (line 2, col 1)
--------------------------------
3 >var a = <Greeter>new Greeter();
~~~~~~~ => Pos: (18 to 24) SpanInfo: {"start":18,"length":30}
>var a = <Greeter>new Greeter()
>:=> (line 3, col 0) to (line 3, col 30)
3 >var a = <Greeter>new Greeter();
~~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (25 to 49) SpanInfo: {"start":35,"length":13}
>new Greeter()
>:=> (line 3, col 17) to (line 3, col 30)
--------------------------------
4 >a = (<Greeter> new Greeter());
~~~~~ => Pos: (50 to 54) SpanInfo: {"start":50,"length":29}
>a = (<Greeter> new Greeter())
>:=> (line 4, col 0) to (line 4, col 29)
4 >a = (<Greeter> new Greeter());
~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (55 to 77) SpanInfo: {"start":65,"length":13}
>new Greeter()
>:=> (line 4, col 15) to (line 4, col 28)
4 >a = (<Greeter> new Greeter());
~~~ => Pos: (78 to 80) SpanInfo: {"start":50,"length":29}
>a = (<Greeter> new Greeter())
>:=> (line 4, col 0) to (line 4, col 29)
--------------------------------
5 >a = <Greeter>(function foo() {
~~~ => Pos: (81 to 83) SpanInfo: {"start":81,"length":61}
>a = <Greeter>(function foo() {
> return new Greeter();
>})()
>:=> (line 5, col 0) to (line 7, col 4)
5 >a = <Greeter>(function foo() {
~~~~~~~~~~~ => Pos: (84 to 94) SpanInfo: {"start":94,"length":48}
>(function foo() {
> return new Greeter();
>})()
>:=> (line 5, col 13) to (line 7, col 4)
5 >a = <Greeter>(function foo() {
~~~~~~~~~~~~~~~~~ => Pos: (95 to 111) SpanInfo: {"start":116,"length":20}
>return new Greeter()
>:=> (line 6, col 4) to (line 6, col 24)
--------------------------------
6 > return new Greeter();
~~~~~~~~~~ => Pos: (112 to 121) SpanInfo: {"start":116,"length":20}
>return new Greeter()
>:=> (line 6, col 4) to (line 6, col 24)
6 > return new Greeter();
~~~~~~~~~~~~~~~~ => Pos: (122 to 137) SpanInfo: {"start":123,"length":13}
>new Greeter()
>:=> (line 6, col 11) to (line 6, col 24)
--------------------------------
7 >})();
~ => Pos: (138 to 138) SpanInfo: {"start":138,"length":1}
>}
>:=> (line 7, col 0) to (line 7, col 1)
7 >})();
~~~~ => Pos: (139 to 142) SpanInfo: {"start":94,"length":48}
>(function foo() {
> return new Greeter();
>})()
>:=> (line 5, col 13) to (line 7, col 4)
@@ -0,0 +1,74 @@
1 >var x = 10;
~~~~~~~~~~~~ => Pos: (0 to 11) SpanInfo: {"start":0,"length":10}
>var x = 10
>:=> (line 1, col 0) to (line 1, col 10)
--------------------------------
2 >var y = 20;
~~~~~~~~~~~~ => Pos: (12 to 23) SpanInfo: {"start":12,"length":10}
>var y = 20
>:=> (line 2, col 0) to (line 2, col 10)
--------------------------------
3 >x++;
~~~~~ => Pos: (24 to 28) SpanInfo: {"start":24,"length":3}
>x++
>:=> (line 3, col 0) to (line 3, col 3)
--------------------------------
4 >y--;
~~~~~ => Pos: (29 to 33) SpanInfo: {"start":29,"length":3}
>y--
>:=> (line 4, col 0) to (line 4, col 3)
--------------------------------
5 >typeof (function foo() {
~~~~~~ => Pos: (34 to 39) SpanInfo: {"start":34,"length":43}
>typeof (function foo() {
> return y;
>})()
>:=> (line 5, col 0) to (line 7, col 4)
5 >typeof (function foo() {
~~ => Pos: (40 to 41) SpanInfo: {"start":41,"length":36}
>(function foo() {
> return y;
>})()
>:=> (line 5, col 7) to (line 7, col 4)
5 >typeof (function foo() {
~~~~~~~~~~~~~~~~~ => Pos: (42 to 58) SpanInfo: {"start":63,"length":8}
>return y
>:=> (line 6, col 4) to (line 6, col 12)
--------------------------------
6 > return y;
~~~~~~~~~~~~~~ => Pos: (59 to 72) SpanInfo: {"start":63,"length":8}
>return y
>:=> (line 6, col 4) to (line 6, col 12)
--------------------------------
7 >})();
~ => Pos: (73 to 73) SpanInfo: {"start":73,"length":1}
>}
>:=> (line 7, col 0) to (line 7, col 1)
7 >})();
~~~~~ => Pos: (74 to 78) SpanInfo: {"start":41,"length":36}
>(function foo() {
> return y;
>})()
>:=> (line 5, col 7) to (line 7, col 4)
--------------------------------
8 >++x;
~~~~~ => Pos: (79 to 83) SpanInfo: {"start":79,"length":3}
>++x
>:=> (line 8, col 0) to (line 8, col 3)
--------------------------------
9 >++y;
~~~~ => Pos: (84 to 87) SpanInfo: {"start":84,"length":3}
>++y
>:=> (line 9, col 0) to (line 9, col 3)
@@ -0,0 +1,90 @@
1 >var a = 10;
~~~~~~~~~~~~ => Pos: (0 to 11) SpanInfo: {"start":0,"length":10}
>var a = 10
>:=> (line 1, col 0) to (line 1, col 10)
--------------------------------
2 >var b;
~~~~~~~ => Pos: (12 to 18) SpanInfo: undefined
--------------------------------
3 >var c = 10, d, e;
~~~~~~~~~~~~~~~~~~ => Pos: (19 to 36) SpanInfo: {"start":19,"length":10}
>var c = 10
>:=> (line 3, col 0) to (line 3, col 10)
--------------------------------
4 >var c2, d2 = 10;
~~~~~~~ => Pos: (37 to 43) SpanInfo: undefined
4 >var c2, d2 = 10;
~~~~~~~~~~ => Pos: (44 to 53) SpanInfo: {"start":45,"length":7}
>d2 = 10
>:=> (line 4, col 8) to (line 4, col 15)
--------------------------------
5 >module m {
~~~~~~~~~~~ => Pos: (54 to 64) SpanInfo: {"start":54,"length":146}
>module m {
> var x1;
> var x2 = 10, x3 = 10;
> var x4, x5;
> export var xx1;
> export var xx2 = 10, xx3 = 10;
> export var xx4, xx5;
>}
>:=> (line 5, col 0) to (line 12, col 1)
--------------------------------
6 > var x1;
~~~~~~~~~~~~ => Pos: (65 to 76) SpanInfo: undefined
--------------------------------
7 > var x2 = 10, x3 = 10;
~~~~~~~~~~~~~~~~ => Pos: (77 to 92) SpanInfo: {"start":81,"length":11}
>var x2 = 10
>:=> (line 7, col 4) to (line 7, col 15)
7 > var x2 = 10, x3 = 10;
~~~~~~~~~~ => Pos: (93 to 102) SpanInfo: {"start":94,"length":7}
>x3 = 10
>:=> (line 7, col 17) to (line 7, col 24)
--------------------------------
8 > var x4, x5;
~~~~~~~~~~~~~~~~ => Pos: (103 to 118) SpanInfo: undefined
--------------------------------
9 > export var xx1;
~~~~~~~~~~~~~~~~~~~~ => Pos: (119 to 138) SpanInfo: {"start":123,"length":14}
>export var xx1
>:=> (line 9, col 4) to (line 9, col 18)
--------------------------------
10 > export var xx2 = 10, xx3 = 10;
~~~~~~~~~~~~~~~~~~~~~~~~ => Pos: (139 to 162) SpanInfo: {"start":143,"length":19}
>export var xx2 = 10
>:=> (line 10, col 4) to (line 10, col 23)
10 > export var xx2 = 10, xx3 = 10;
~~~~~~~~~~~ => Pos: (163 to 173) SpanInfo: {"start":164,"length":8}
>xx3 = 10
>:=> (line 10, col 25) to (line 10, col 33)
--------------------------------
11 > export var xx4, xx5;
~~~~~~~~~~~~~~~~~~~ => Pos: (174 to 192) SpanInfo: {"start":178,"length":14}
>export var xx4
>:=> (line 11, col 4) to (line 11, col 18)
11 > export var xx4, xx5;
~~~~~~ => Pos: (193 to 198) SpanInfo: {"start":194,"length":3}
>xx5
>:=> (line 11, col 20) to (line 11, col 23)
--------------------------------
12 >}
~ => Pos: (199 to 199) SpanInfo: {"start":199,"length":1}
>}
>:=> (line 12, col 0) to (line 12, col 1)
@@ -0,0 +1,133 @@
1 >var a = 10;
~~~~~~~~~~~~ => Pos: (0 to 11) SpanInfo: {"start":0,"length":10}
>var a = 10
>:=> (line 1, col 0) to (line 1, col 10)
--------------------------------
2 >while (a == 10) {
~~~~~~~~~~~~~~~~~~ => Pos: (12 to 29) SpanInfo: {"start":12,"length":15}
>while (a == 10)
>:=> (line 2, col 0) to (line 2, col 15)
--------------------------------
3 > a++;
~~~~~~~~~ => Pos: (30 to 38) SpanInfo: {"start":34,"length":3}
>a++
>:=> (line 3, col 4) to (line 3, col 7)
--------------------------------
4 >}
~~ => Pos: (39 to 40) SpanInfo: {"start":34,"length":3}
>a++
>:=> (line 3, col 4) to (line 3, col 7)
--------------------------------
5 >while (a == 10)
~~~~~~~~~~~~~~~~~ => Pos: (41 to 57) SpanInfo: {"start":41,"length":15}
>while (a == 10)
>:=> (line 5, col 0) to (line 5, col 15)
--------------------------------
6 >{
~~ => Pos: (58 to 59) SpanInfo: {"start":64,"length":3}
>a++
>:=> (line 7, col 4) to (line 7, col 7)
--------------------------------
7 > a++;
~~~~~~~~~ => Pos: (60 to 68) SpanInfo: {"start":64,"length":3}
>a++
>:=> (line 7, col 4) to (line 7, col 7)
--------------------------------
8 >}
~~ => Pos: (69 to 70) SpanInfo: {"start":64,"length":3}
>a++
>:=> (line 7, col 4) to (line 7, col 7)
--------------------------------
9 >while (a == 10) a++;
~~~~~~~~~~~~~~~ => Pos: (71 to 85) SpanInfo: {"start":71,"length":15}
>while (a == 10)
>:=> (line 9, col 0) to (line 9, col 15)
9 >while (a == 10) a++;
~~~~~~~ => Pos: (86 to 92) SpanInfo: {"start":88,"length":3}
>a++
>:=> (line 9, col 17) to (line 9, col 20)
--------------------------------
10 >while (a == 10)
~~~~~~~~~~~~~~~~~ => Pos: (93 to 109) SpanInfo: {"start":93,"length":15}
>while (a == 10)
>:=> (line 10, col 0) to (line 10, col 15)
--------------------------------
11 > a++;
~~~~~~~~~ => Pos: (110 to 118) SpanInfo: {"start":114,"length":3}
>a++
>:=> (line 11, col 4) to (line 11, col 7)
--------------------------------
12 >while ((function () {
~~~~~~~ => Pos: (119 to 125) SpanInfo: {"start":119,"length":52}
>while ((function () {
> return 30 * a;
>})() !== a)
>:=> (line 12, col 0) to (line 14, col 11)
12 >while ((function () {
~ => Pos: (126 to 126) SpanInfo: {"start":126,"length":38}
>(function () {
> return 30 * a;
>})()
>:=> (line 12, col 7) to (line 14, col 4)
12 >while ((function () {
~~~~~~~~~~~~~~ => Pos: (127 to 140) SpanInfo: {"start":145,"length":13}
>return 30 * a
>:=> (line 13, col 4) to (line 13, col 17)
--------------------------------
13 > return 30 * a;
~~~~~~~~~~~~~~~~~~~ => Pos: (141 to 159) SpanInfo: {"start":145,"length":13}
>return 30 * a
>:=> (line 13, col 4) to (line 13, col 17)
--------------------------------
14 >})() !== a) {
~ => Pos: (160 to 160) SpanInfo: {"start":160,"length":1}
>}
>:=> (line 14, col 0) to (line 14, col 1)
14 >})() !== a) {
~~~ => Pos: (161 to 163) SpanInfo: {"start":126,"length":38}
>(function () {
> return 30 * a;
>})()
>:=> (line 12, col 7) to (line 14, col 4)
14 >})() !== a) {
~~~~~~~ => Pos: (164 to 170) SpanInfo: {"start":119,"length":52}
>while ((function () {
> return 30 * a;
>})() !== a)
>:=> (line 12, col 0) to (line 14, col 11)
14 >})() !== a) {
~~~ => Pos: (171 to 173) SpanInfo: {"start":178,"length":3}
>a--
>:=> (line 15, col 4) to (line 15, col 7)
--------------------------------
15 > a--;
~~~~~~~~~ => Pos: (174 to 182) SpanInfo: {"start":178,"length":3}
>a--
>:=> (line 15, col 4) to (line 15, col 7)
--------------------------------
16 >}
~ => Pos: (183 to 183) SpanInfo: {"start":178,"length":3}
>a--
>:=> (line 15, col 4) to (line 15, col 7)
@@ -0,0 +1,21 @@
1 >var obj: string;
~~~~~~~~~~~~~~~~~ => Pos: (0 to 16) SpanInfo: undefined
--------------------------------
2 >with (obj) {
~~~~~~~~~~~~~ => Pos: (17 to 29) SpanInfo: {"start":34,"length":6}
>x = 10
>:=> (line 3, col 4) to (line 3, col 10)
--------------------------------
3 > x = 10;
~~~~~~~~~~~~ => Pos: (30 to 41) SpanInfo: {"start":34,"length":6}
>x = 10
>:=> (line 3, col 4) to (line 3, col 10)
--------------------------------
4 >}
~ => Pos: (42 to 42) SpanInfo: {"start":34,"length":6}
>x = 10
>:=> (line 3, col 4) to (line 3, col 10)
@@ -1,215 +0,0 @@
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts(32,12): error TS2365: Operator '<' cannot be applied to types '{ fn<T>(x: T): T; }' and '{ fn(x: string, y: number): string; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts(40,12): error TS2365: Operator '<' cannot be applied to types '{ fn(x: string, y: number): string; }' and '{ fn<T>(x: T): T; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts(49,12): error TS2365: Operator '>' cannot be applied to types '{ fn<T>(x: T): T; }' and '{ fn(x: string, y: number): string; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts(57,12): error TS2365: Operator '>' cannot be applied to types '{ fn(x: string, y: number): string; }' and '{ fn<T>(x: T): T; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts(66,12): error TS2365: Operator '<=' cannot be applied to types '{ fn<T>(x: T): T; }' and '{ fn(x: string, y: number): string; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts(74,12): error TS2365: Operator '<=' cannot be applied to types '{ fn(x: string, y: number): string; }' and '{ fn<T>(x: T): T; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts(83,12): error TS2365: Operator '>=' cannot be applied to types '{ fn<T>(x: T): T; }' and '{ fn(x: string, y: number): string; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts(91,12): error TS2365: Operator '>=' cannot be applied to types '{ fn(x: string, y: number): string; }' and '{ fn<T>(x: T): T; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts(100,12): error TS2365: Operator '==' cannot be applied to types '{ fn<T>(x: T): T; }' and '{ fn(x: string, y: number): string; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts(108,12): error TS2365: Operator '==' cannot be applied to types '{ fn(x: string, y: number): string; }' and '{ fn<T>(x: T): T; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts(117,12): error TS2365: Operator '!=' cannot be applied to types '{ fn<T>(x: T): T; }' and '{ fn(x: string, y: number): string; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts(125,12): error TS2365: Operator '!=' cannot be applied to types '{ fn(x: string, y: number): string; }' and '{ fn<T>(x: T): T; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts(134,12): error TS2365: Operator '===' cannot be applied to types '{ fn<T>(x: T): T; }' and '{ fn(x: string, y: number): string; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts(142,12): error TS2365: Operator '===' cannot be applied to types '{ fn(x: string, y: number): string; }' and '{ fn<T>(x: T): T; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts(151,12): error TS2365: Operator '!==' cannot be applied to types '{ fn<T>(x: T): T; }' and '{ fn(x: string, y: number): string; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts(159,12): error TS2365: Operator '!==' cannot be applied to types '{ fn(x: string, y: number): string; }' and '{ fn<T>(x: T): T; }'.
==== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts (16 errors) ====
class Base {
public a: string;
}
class Derived extends Base {
public b: string;
}
var a1: { fn<T>(x: T): T };
var b1: { fn(x: string): string };
var a2: { fn<T>(x: T): T };
var b2: { fn(x: string, y: number): string };
var a3: { fn<T, U>(x: T, y: U): T };
var b3: { fn(x: string, y: number): string };
var a4: { fn<T>(x?: T): T };
var b4: { fn(x?: string): string };
var a5: { fn<T>(...x: T[]): T };
var b5: { fn(...x: string[]): string };
var a6: { fn<T>(x: T, y: T): T };
var b6: { fn(x: string, y: number): {} };
//var a7: { fn<T, U extends T>(x: T, y: U): T };
var b7: { fn(x: Base, y: Derived): Base };
// operator <
var r1a1 = a1 < b1;
var r1a2 = a2 < b2;
~~~~~~~
!!! error TS2365: Operator '<' cannot be applied to types '{ fn<T>(x: T): T; }' and '{ fn(x: string, y: number): string; }'.
var r1a3 = a3 < b3;
var r1a4 = a4 < b4;
var r1a5 = a5 < b5;
var r1a6 = a6 < b6;
//var r1a7 = a7 < b7;
var r1b1 = b1 < a1;
var r1b2 = b2 < a2;
~~~~~~~
!!! error TS2365: Operator '<' cannot be applied to types '{ fn(x: string, y: number): string; }' and '{ fn<T>(x: T): T; }'.
var r1b3 = b3 < a3;
var r1b4 = b4 < a4;
var r1b5 = b5 < a5;
var r1b6 = b6 < a6;
//var r1b7 = b7 < a7;
// operator >
var r2a1 = a1 > b1;
var r2a2 = a2 > b2;
~~~~~~~
!!! error TS2365: Operator '>' cannot be applied to types '{ fn<T>(x: T): T; }' and '{ fn(x: string, y: number): string; }'.
var r2a3 = a3 > b3;
var r2a4 = a4 > b4;
var r2a5 = a5 > b5;
var r2a6 = a6 > b6;
//var r2a7 = a7 > b7;
var r2b1 = b1 > a1;
var r2b2 = b2 > a2;
~~~~~~~
!!! error TS2365: Operator '>' cannot be applied to types '{ fn(x: string, y: number): string; }' and '{ fn<T>(x: T): T; }'.
var r2b3 = b3 > a3;
var r2b4 = b4 > a4;
var r2b5 = b5 > a5;
var r2b6 = b6 > a6;
//var r2b7 = b7 > a7;
// operator <=
var r3a1 = a1 <= b1;
var r3a2 = a2 <= b2;
~~~~~~~~
!!! error TS2365: Operator '<=' cannot be applied to types '{ fn<T>(x: T): T; }' and '{ fn(x: string, y: number): string; }'.
var r3a3 = a3 <= b3;
var r3a4 = a4 <= b4;
var r3a5 = a5 <= b5;
var r3a6 = a6 <= b6;
//var r3a7 = a7 <= b7;
var r3b1 = b1 <= a1;
var r3b2 = b2 <= a2;
~~~~~~~~
!!! error TS2365: Operator '<=' cannot be applied to types '{ fn(x: string, y: number): string; }' and '{ fn<T>(x: T): T; }'.
var r3b3 = b3 <= a3;
var r3b4 = b4 <= a4;
var r3b5 = b5 <= a5;
var r3b6 = b6 <= a6;
//var r3b7 = b7 <= a7;
// operator >=
var r4a1 = a1 >= b1;
var r4a2 = a2 >= b2;
~~~~~~~~
!!! error TS2365: Operator '>=' cannot be applied to types '{ fn<T>(x: T): T; }' and '{ fn(x: string, y: number): string; }'.
var r4a3 = a3 >= b3;
var r4a4 = a4 >= b4;
var r4a5 = a5 >= b5;
var r4a6 = a6 >= b6;
//var r4a7 = a7 >= b7;
var r4b1 = b1 >= a1;
var r4b2 = b2 >= a2;
~~~~~~~~
!!! error TS2365: Operator '>=' cannot be applied to types '{ fn(x: string, y: number): string; }' and '{ fn<T>(x: T): T; }'.
var r4b3 = b3 >= a3;
var r4b4 = b4 >= a4;
var r4b5 = b5 >= a5;
var r4b6 = b6 >= a6;
//var r4b7 = b7 >= a7;
// operator ==
var r5a1 = a1 == b1;
var r5a2 = a2 == b2;
~~~~~~~~
!!! error TS2365: Operator '==' cannot be applied to types '{ fn<T>(x: T): T; }' and '{ fn(x: string, y: number): string; }'.
var r5a3 = a3 == b3;
var r5a4 = a4 == b4;
var r5a5 = a5 == b5;
var r5a6 = a6 == b6;
//var r5a7 = a7 == b7;
var r5b1 = b1 == a1;
var r5b2 = b2 == a2;
~~~~~~~~
!!! error TS2365: Operator '==' cannot be applied to types '{ fn(x: string, y: number): string; }' and '{ fn<T>(x: T): T; }'.
var r5b3 = b3 == a3;
var r5b4 = b4 == a4;
var r5b5 = b5 == a5;
var r5b6 = b6 == a6;
//var r5b7 = b7 == a7;
// operator !=
var r6a1 = a1 != b1;
var r6a2 = a2 != b2;
~~~~~~~~
!!! error TS2365: Operator '!=' cannot be applied to types '{ fn<T>(x: T): T; }' and '{ fn(x: string, y: number): string; }'.
var r6a3 = a3 != b3;
var r6a4 = a4 != b4;
var r6a5 = a5 != b5;
var r6a6 = a6 != b6;
//var r6a7 = a7 != b7;
var r6b1 = b1 != a1;
var r6b2 = b2 != a2;
~~~~~~~~
!!! error TS2365: Operator '!=' cannot be applied to types '{ fn(x: string, y: number): string; }' and '{ fn<T>(x: T): T; }'.
var r6b3 = b3 != a3;
var r6b4 = b4 != a4;
var r6b5 = b5 != a5;
var r6b6 = b6 != a6;
//var r6b7 = b7 != a7;
// operator ===
var r7a1 = a1 === b1;
var r7a2 = a2 === b2;
~~~~~~~~~
!!! error TS2365: Operator '===' cannot be applied to types '{ fn<T>(x: T): T; }' and '{ fn(x: string, y: number): string; }'.
var r7a3 = a3 === b3;
var r7a4 = a4 === b4;
var r7a5 = a5 === b5;
var r7a6 = a6 === b6;
//var r7a7 = a7 === b7;
var r7b1 = b1 === a1;
var r7b2 = b2 === a2;
~~~~~~~~~
!!! error TS2365: Operator '===' cannot be applied to types '{ fn(x: string, y: number): string; }' and '{ fn<T>(x: T): T; }'.
var r7b3 = b3 === a3;
var r7b4 = b4 === a4;
var r7b5 = b5 === a5;
var r7b6 = b6 === a6;
//var r7b7 = b7 === a7;
// operator !==
var r8a1 = a1 !== b1;
var r8a2 = a2 !== b2;
~~~~~~~~~
!!! error TS2365: Operator '!==' cannot be applied to types '{ fn<T>(x: T): T; }' and '{ fn(x: string, y: number): string; }'.
var r8a3 = a3 !== b3;
var r8a4 = a4 !== b4;
var r8a5 = a5 !== b5;
var r8a6 = a6 !== b6;
//var r8a7 = a7 !== b7;
var r8b1 = b1 !== a1;
var r8b2 = b2 !== a2;
~~~~~~~~~
!!! error TS2365: Operator '!==' cannot be applied to types '{ fn(x: string, y: number): string; }' and '{ fn<T>(x: T): T; }'.
var r8b3 = b3 !== a3;
var r8b4 = b4 !== a4;
var r8b5 = b5 !== a5;
var r8b6 = b6 !== a6;
//var r8b7 = b7 !== a7;
@@ -0,0 +1,727 @@
=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.ts ===
class Base {
>Base : Base
public a: string;
>a : string
}
class Derived extends Base {
>Derived : Derived
>Base : Base
public b: string;
>b : string
}
var a1: { fn<T>(x: T): T };
>a1 : { fn<T>(x: T): T; }
>fn : <T>(x: T) => T
>T : T
>x : T
>T : T
>T : T
var b1: { fn(x: string): string };
>b1 : { fn(x: string): string; }
>fn : (x: string) => string
>x : string
var a2: { fn<T>(x: T): T };
>a2 : { fn<T>(x: T): T; }
>fn : <T>(x: T) => T
>T : T
>x : T
>T : T
>T : T
var b2: { fn(x: string, y: number): string };
>b2 : { fn(x: string, y: number): string; }
>fn : (x: string, y: number) => string
>x : string
>y : number
var a3: { fn<T, U>(x: T, y: U): T };
>a3 : { fn<T, U>(x: T, y: U): T; }
>fn : <T, U>(x: T, y: U) => T
>T : T
>U : U
>x : T
>T : T
>y : U
>U : U
>T : T
var b3: { fn(x: string, y: number): string };
>b3 : { fn(x: string, y: number): string; }
>fn : (x: string, y: number) => string
>x : string
>y : number
var a4: { fn<T>(x?: T): T };
>a4 : { fn<T>(x?: T): T; }
>fn : <T>(x?: T) => T
>T : T
>x : T
>T : T
>T : T
var b4: { fn(x?: string): string };
>b4 : { fn(x?: string): string; }
>fn : (x?: string) => string
>x : string
var a5: { fn<T>(...x: T[]): T };
>a5 : { fn<T>(...x: T[]): T; }
>fn : <T>(...x: T[]) => T
>T : T
>x : T[]
>T : T
>T : T
var b5: { fn(...x: string[]): string };
>b5 : { fn(...x: string[]): string; }
>fn : (...x: string[]) => string
>x : string[]
var a6: { fn<T>(x: T, y: T): T };
>a6 : { fn<T>(x: T, y: T): T; }
>fn : <T>(x: T, y: T) => T
>T : T
>x : T
>T : T
>y : T
>T : T
>T : T
var b6: { fn(x: string, y: number): {} };
>b6 : { fn(x: string, y: number): {}; }
>fn : (x: string, y: number) => {}
>x : string
>y : number
//var a7: { fn<T, U extends T>(x: T, y: U): T };
var b7: { fn(x: Base, y: Derived): Base };
>b7 : { fn(x: Base, y: Derived): Base; }
>fn : (x: Base, y: Derived) => Base
>x : Base
>Base : Base
>y : Derived
>Derived : Derived
>Base : Base
// operator <
var r1a1 = a1 < b1;
>r1a1 : boolean
>a1 < b1 : boolean
>a1 : { fn<T>(x: T): T; }
>b1 : { fn(x: string): string; }
var r1a2 = a2 < b2;
>r1a2 : boolean
>a2 < b2 : boolean
>a2 : { fn<T>(x: T): T; }
>b2 : { fn(x: string, y: number): string; }
var r1a3 = a3 < b3;
>r1a3 : boolean
>a3 < b3 : boolean
>a3 : { fn<T, U>(x: T, y: U): T; }
>b3 : { fn(x: string, y: number): string; }
var r1a4 = a4 < b4;
>r1a4 : boolean
>a4 < b4 : boolean
>a4 : { fn<T>(x?: T): T; }
>b4 : { fn(x?: string): string; }
var r1a5 = a5 < b5;
>r1a5 : boolean
>a5 < b5 : boolean
>a5 : { fn<T>(...x: T[]): T; }
>b5 : { fn(...x: string[]): string; }
var r1a6 = a6 < b6;
>r1a6 : boolean
>a6 < b6 : boolean
>a6 : { fn<T>(x: T, y: T): T; }
>b6 : { fn(x: string, y: number): {}; }
//var r1a7 = a7 < b7;
var r1b1 = b1 < a1;
>r1b1 : boolean
>b1 < a1 : boolean
>b1 : { fn(x: string): string; }
>a1 : { fn<T>(x: T): T; }
var r1b2 = b2 < a2;
>r1b2 : boolean
>b2 < a2 : boolean
>b2 : { fn(x: string, y: number): string; }
>a2 : { fn<T>(x: T): T; }
var r1b3 = b3 < a3;
>r1b3 : boolean
>b3 < a3 : boolean
>b3 : { fn(x: string, y: number): string; }
>a3 : { fn<T, U>(x: T, y: U): T; }
var r1b4 = b4 < a4;
>r1b4 : boolean
>b4 < a4 : boolean
>b4 : { fn(x?: string): string; }
>a4 : { fn<T>(x?: T): T; }
var r1b5 = b5 < a5;
>r1b5 : boolean
>b5 < a5 : boolean
>b5 : { fn(...x: string[]): string; }
>a5 : { fn<T>(...x: T[]): T; }
var r1b6 = b6 < a6;
>r1b6 : boolean
>b6 < a6 : boolean
>b6 : { fn(x: string, y: number): {}; }
>a6 : { fn<T>(x: T, y: T): T; }
//var r1b7 = b7 < a7;
// operator >
var r2a1 = a1 > b1;
>r2a1 : boolean
>a1 > b1 : boolean
>a1 : { fn<T>(x: T): T; }
>b1 : { fn(x: string): string; }
var r2a2 = a2 > b2;
>r2a2 : boolean
>a2 > b2 : boolean
>a2 : { fn<T>(x: T): T; }
>b2 : { fn(x: string, y: number): string; }
var r2a3 = a3 > b3;
>r2a3 : boolean
>a3 > b3 : boolean
>a3 : { fn<T, U>(x: T, y: U): T; }
>b3 : { fn(x: string, y: number): string; }
var r2a4 = a4 > b4;
>r2a4 : boolean
>a4 > b4 : boolean
>a4 : { fn<T>(x?: T): T; }
>b4 : { fn(x?: string): string; }
var r2a5 = a5 > b5;
>r2a5 : boolean
>a5 > b5 : boolean
>a5 : { fn<T>(...x: T[]): T; }
>b5 : { fn(...x: string[]): string; }
var r2a6 = a6 > b6;
>r2a6 : boolean
>a6 > b6 : boolean
>a6 : { fn<T>(x: T, y: T): T; }
>b6 : { fn(x: string, y: number): {}; }
//var r2a7 = a7 > b7;
var r2b1 = b1 > a1;
>r2b1 : boolean
>b1 > a1 : boolean
>b1 : { fn(x: string): string; }
>a1 : { fn<T>(x: T): T; }
var r2b2 = b2 > a2;
>r2b2 : boolean
>b2 > a2 : boolean
>b2 : { fn(x: string, y: number): string; }
>a2 : { fn<T>(x: T): T; }
var r2b3 = b3 > a3;
>r2b3 : boolean
>b3 > a3 : boolean
>b3 : { fn(x: string, y: number): string; }
>a3 : { fn<T, U>(x: T, y: U): T; }
var r2b4 = b4 > a4;
>r2b4 : boolean
>b4 > a4 : boolean
>b4 : { fn(x?: string): string; }
>a4 : { fn<T>(x?: T): T; }
var r2b5 = b5 > a5;
>r2b5 : boolean
>b5 > a5 : boolean
>b5 : { fn(...x: string[]): string; }
>a5 : { fn<T>(...x: T[]): T; }
var r2b6 = b6 > a6;
>r2b6 : boolean
>b6 > a6 : boolean
>b6 : { fn(x: string, y: number): {}; }
>a6 : { fn<T>(x: T, y: T): T; }
//var r2b7 = b7 > a7;
// operator <=
var r3a1 = a1 <= b1;
>r3a1 : boolean
>a1 <= b1 : boolean
>a1 : { fn<T>(x: T): T; }
>b1 : { fn(x: string): string; }
var r3a2 = a2 <= b2;
>r3a2 : boolean
>a2 <= b2 : boolean
>a2 : { fn<T>(x: T): T; }
>b2 : { fn(x: string, y: number): string; }
var r3a3 = a3 <= b3;
>r3a3 : boolean
>a3 <= b3 : boolean
>a3 : { fn<T, U>(x: T, y: U): T; }
>b3 : { fn(x: string, y: number): string; }
var r3a4 = a4 <= b4;
>r3a4 : boolean
>a4 <= b4 : boolean
>a4 : { fn<T>(x?: T): T; }
>b4 : { fn(x?: string): string; }
var r3a5 = a5 <= b5;
>r3a5 : boolean
>a5 <= b5 : boolean
>a5 : { fn<T>(...x: T[]): T; }
>b5 : { fn(...x: string[]): string; }
var r3a6 = a6 <= b6;
>r3a6 : boolean
>a6 <= b6 : boolean
>a6 : { fn<T>(x: T, y: T): T; }
>b6 : { fn(x: string, y: number): {}; }
//var r3a7 = a7 <= b7;
var r3b1 = b1 <= a1;
>r3b1 : boolean
>b1 <= a1 : boolean
>b1 : { fn(x: string): string; }
>a1 : { fn<T>(x: T): T; }
var r3b2 = b2 <= a2;
>r3b2 : boolean
>b2 <= a2 : boolean
>b2 : { fn(x: string, y: number): string; }
>a2 : { fn<T>(x: T): T; }
var r3b3 = b3 <= a3;
>r3b3 : boolean
>b3 <= a3 : boolean
>b3 : { fn(x: string, y: number): string; }
>a3 : { fn<T, U>(x: T, y: U): T; }
var r3b4 = b4 <= a4;
>r3b4 : boolean
>b4 <= a4 : boolean
>b4 : { fn(x?: string): string; }
>a4 : { fn<T>(x?: T): T; }
var r3b5 = b5 <= a5;
>r3b5 : boolean
>b5 <= a5 : boolean
>b5 : { fn(...x: string[]): string; }
>a5 : { fn<T>(...x: T[]): T; }
var r3b6 = b6 <= a6;
>r3b6 : boolean
>b6 <= a6 : boolean
>b6 : { fn(x: string, y: number): {}; }
>a6 : { fn<T>(x: T, y: T): T; }
//var r3b7 = b7 <= a7;
// operator >=
var r4a1 = a1 >= b1;
>r4a1 : boolean
>a1 >= b1 : boolean
>a1 : { fn<T>(x: T): T; }
>b1 : { fn(x: string): string; }
var r4a2 = a2 >= b2;
>r4a2 : boolean
>a2 >= b2 : boolean
>a2 : { fn<T>(x: T): T; }
>b2 : { fn(x: string, y: number): string; }
var r4a3 = a3 >= b3;
>r4a3 : boolean
>a3 >= b3 : boolean
>a3 : { fn<T, U>(x: T, y: U): T; }
>b3 : { fn(x: string, y: number): string; }
var r4a4 = a4 >= b4;
>r4a4 : boolean
>a4 >= b4 : boolean
>a4 : { fn<T>(x?: T): T; }
>b4 : { fn(x?: string): string; }
var r4a5 = a5 >= b5;
>r4a5 : boolean
>a5 >= b5 : boolean
>a5 : { fn<T>(...x: T[]): T; }
>b5 : { fn(...x: string[]): string; }
var r4a6 = a6 >= b6;
>r4a6 : boolean
>a6 >= b6 : boolean
>a6 : { fn<T>(x: T, y: T): T; }
>b6 : { fn(x: string, y: number): {}; }
//var r4a7 = a7 >= b7;
var r4b1 = b1 >= a1;
>r4b1 : boolean
>b1 >= a1 : boolean
>b1 : { fn(x: string): string; }
>a1 : { fn<T>(x: T): T; }
var r4b2 = b2 >= a2;
>r4b2 : boolean
>b2 >= a2 : boolean
>b2 : { fn(x: string, y: number): string; }
>a2 : { fn<T>(x: T): T; }
var r4b3 = b3 >= a3;
>r4b3 : boolean
>b3 >= a3 : boolean
>b3 : { fn(x: string, y: number): string; }
>a3 : { fn<T, U>(x: T, y: U): T; }
var r4b4 = b4 >= a4;
>r4b4 : boolean
>b4 >= a4 : boolean
>b4 : { fn(x?: string): string; }
>a4 : { fn<T>(x?: T): T; }
var r4b5 = b5 >= a5;
>r4b5 : boolean
>b5 >= a5 : boolean
>b5 : { fn(...x: string[]): string; }
>a5 : { fn<T>(...x: T[]): T; }
var r4b6 = b6 >= a6;
>r4b6 : boolean
>b6 >= a6 : boolean
>b6 : { fn(x: string, y: number): {}; }
>a6 : { fn<T>(x: T, y: T): T; }
//var r4b7 = b7 >= a7;
// operator ==
var r5a1 = a1 == b1;
>r5a1 : boolean
>a1 == b1 : boolean
>a1 : { fn<T>(x: T): T; }
>b1 : { fn(x: string): string; }
var r5a2 = a2 == b2;
>r5a2 : boolean
>a2 == b2 : boolean
>a2 : { fn<T>(x: T): T; }
>b2 : { fn(x: string, y: number): string; }
var r5a3 = a3 == b3;
>r5a3 : boolean
>a3 == b3 : boolean
>a3 : { fn<T, U>(x: T, y: U): T; }
>b3 : { fn(x: string, y: number): string; }
var r5a4 = a4 == b4;
>r5a4 : boolean
>a4 == b4 : boolean
>a4 : { fn<T>(x?: T): T; }
>b4 : { fn(x?: string): string; }
var r5a5 = a5 == b5;
>r5a5 : boolean
>a5 == b5 : boolean
>a5 : { fn<T>(...x: T[]): T; }
>b5 : { fn(...x: string[]): string; }
var r5a6 = a6 == b6;
>r5a6 : boolean
>a6 == b6 : boolean
>a6 : { fn<T>(x: T, y: T): T; }
>b6 : { fn(x: string, y: number): {}; }
//var r5a7 = a7 == b7;
var r5b1 = b1 == a1;
>r5b1 : boolean
>b1 == a1 : boolean
>b1 : { fn(x: string): string; }
>a1 : { fn<T>(x: T): T; }
var r5b2 = b2 == a2;
>r5b2 : boolean
>b2 == a2 : boolean
>b2 : { fn(x: string, y: number): string; }
>a2 : { fn<T>(x: T): T; }
var r5b3 = b3 == a3;
>r5b3 : boolean
>b3 == a3 : boolean
>b3 : { fn(x: string, y: number): string; }
>a3 : { fn<T, U>(x: T, y: U): T; }
var r5b4 = b4 == a4;
>r5b4 : boolean
>b4 == a4 : boolean
>b4 : { fn(x?: string): string; }
>a4 : { fn<T>(x?: T): T; }
var r5b5 = b5 == a5;
>r5b5 : boolean
>b5 == a5 : boolean
>b5 : { fn(...x: string[]): string; }
>a5 : { fn<T>(...x: T[]): T; }
var r5b6 = b6 == a6;
>r5b6 : boolean
>b6 == a6 : boolean
>b6 : { fn(x: string, y: number): {}; }
>a6 : { fn<T>(x: T, y: T): T; }
//var r5b7 = b7 == a7;
// operator !=
var r6a1 = a1 != b1;
>r6a1 : boolean
>a1 != b1 : boolean
>a1 : { fn<T>(x: T): T; }
>b1 : { fn(x: string): string; }
var r6a2 = a2 != b2;
>r6a2 : boolean
>a2 != b2 : boolean
>a2 : { fn<T>(x: T): T; }
>b2 : { fn(x: string, y: number): string; }
var r6a3 = a3 != b3;
>r6a3 : boolean
>a3 != b3 : boolean
>a3 : { fn<T, U>(x: T, y: U): T; }
>b3 : { fn(x: string, y: number): string; }
var r6a4 = a4 != b4;
>r6a4 : boolean
>a4 != b4 : boolean
>a4 : { fn<T>(x?: T): T; }
>b4 : { fn(x?: string): string; }
var r6a5 = a5 != b5;
>r6a5 : boolean
>a5 != b5 : boolean
>a5 : { fn<T>(...x: T[]): T; }
>b5 : { fn(...x: string[]): string; }
var r6a6 = a6 != b6;
>r6a6 : boolean
>a6 != b6 : boolean
>a6 : { fn<T>(x: T, y: T): T; }
>b6 : { fn(x: string, y: number): {}; }
//var r6a7 = a7 != b7;
var r6b1 = b1 != a1;
>r6b1 : boolean
>b1 != a1 : boolean
>b1 : { fn(x: string): string; }
>a1 : { fn<T>(x: T): T; }
var r6b2 = b2 != a2;
>r6b2 : boolean
>b2 != a2 : boolean
>b2 : { fn(x: string, y: number): string; }
>a2 : { fn<T>(x: T): T; }
var r6b3 = b3 != a3;
>r6b3 : boolean
>b3 != a3 : boolean
>b3 : { fn(x: string, y: number): string; }
>a3 : { fn<T, U>(x: T, y: U): T; }
var r6b4 = b4 != a4;
>r6b4 : boolean
>b4 != a4 : boolean
>b4 : { fn(x?: string): string; }
>a4 : { fn<T>(x?: T): T; }
var r6b5 = b5 != a5;
>r6b5 : boolean
>b5 != a5 : boolean
>b5 : { fn(...x: string[]): string; }
>a5 : { fn<T>(...x: T[]): T; }
var r6b6 = b6 != a6;
>r6b6 : boolean
>b6 != a6 : boolean
>b6 : { fn(x: string, y: number): {}; }
>a6 : { fn<T>(x: T, y: T): T; }
//var r6b7 = b7 != a7;
// operator ===
var r7a1 = a1 === b1;
>r7a1 : boolean
>a1 === b1 : boolean
>a1 : { fn<T>(x: T): T; }
>b1 : { fn(x: string): string; }
var r7a2 = a2 === b2;
>r7a2 : boolean
>a2 === b2 : boolean
>a2 : { fn<T>(x: T): T; }
>b2 : { fn(x: string, y: number): string; }
var r7a3 = a3 === b3;
>r7a3 : boolean
>a3 === b3 : boolean
>a3 : { fn<T, U>(x: T, y: U): T; }
>b3 : { fn(x: string, y: number): string; }
var r7a4 = a4 === b4;
>r7a4 : boolean
>a4 === b4 : boolean
>a4 : { fn<T>(x?: T): T; }
>b4 : { fn(x?: string): string; }
var r7a5 = a5 === b5;
>r7a5 : boolean
>a5 === b5 : boolean
>a5 : { fn<T>(...x: T[]): T; }
>b5 : { fn(...x: string[]): string; }
var r7a6 = a6 === b6;
>r7a6 : boolean
>a6 === b6 : boolean
>a6 : { fn<T>(x: T, y: T): T; }
>b6 : { fn(x: string, y: number): {}; }
//var r7a7 = a7 === b7;
var r7b1 = b1 === a1;
>r7b1 : boolean
>b1 === a1 : boolean
>b1 : { fn(x: string): string; }
>a1 : { fn<T>(x: T): T; }
var r7b2 = b2 === a2;
>r7b2 : boolean
>b2 === a2 : boolean
>b2 : { fn(x: string, y: number): string; }
>a2 : { fn<T>(x: T): T; }
var r7b3 = b3 === a3;
>r7b3 : boolean
>b3 === a3 : boolean
>b3 : { fn(x: string, y: number): string; }
>a3 : { fn<T, U>(x: T, y: U): T; }
var r7b4 = b4 === a4;
>r7b4 : boolean
>b4 === a4 : boolean
>b4 : { fn(x?: string): string; }
>a4 : { fn<T>(x?: T): T; }
var r7b5 = b5 === a5;
>r7b5 : boolean
>b5 === a5 : boolean
>b5 : { fn(...x: string[]): string; }
>a5 : { fn<T>(...x: T[]): T; }
var r7b6 = b6 === a6;
>r7b6 : boolean
>b6 === a6 : boolean
>b6 : { fn(x: string, y: number): {}; }
>a6 : { fn<T>(x: T, y: T): T; }
//var r7b7 = b7 === a7;
// operator !==
var r8a1 = a1 !== b1;
>r8a1 : boolean
>a1 !== b1 : boolean
>a1 : { fn<T>(x: T): T; }
>b1 : { fn(x: string): string; }
var r8a2 = a2 !== b2;
>r8a2 : boolean
>a2 !== b2 : boolean
>a2 : { fn<T>(x: T): T; }
>b2 : { fn(x: string, y: number): string; }
var r8a3 = a3 !== b3;
>r8a3 : boolean
>a3 !== b3 : boolean
>a3 : { fn<T, U>(x: T, y: U): T; }
>b3 : { fn(x: string, y: number): string; }
var r8a4 = a4 !== b4;
>r8a4 : boolean
>a4 !== b4 : boolean
>a4 : { fn<T>(x?: T): T; }
>b4 : { fn(x?: string): string; }
var r8a5 = a5 !== b5;
>r8a5 : boolean
>a5 !== b5 : boolean
>a5 : { fn<T>(...x: T[]): T; }
>b5 : { fn(...x: string[]): string; }
var r8a6 = a6 !== b6;
>r8a6 : boolean
>a6 !== b6 : boolean
>a6 : { fn<T>(x: T, y: T): T; }
>b6 : { fn(x: string, y: number): {}; }
//var r8a7 = a7 !== b7;
var r8b1 = b1 !== a1;
>r8b1 : boolean
>b1 !== a1 : boolean
>b1 : { fn(x: string): string; }
>a1 : { fn<T>(x: T): T; }
var r8b2 = b2 !== a2;
>r8b2 : boolean
>b2 !== a2 : boolean
>b2 : { fn(x: string, y: number): string; }
>a2 : { fn<T>(x: T): T; }
var r8b3 = b3 !== a3;
>r8b3 : boolean
>b3 !== a3 : boolean
>b3 : { fn(x: string, y: number): string; }
>a3 : { fn<T, U>(x: T, y: U): T; }
var r8b4 = b4 !== a4;
>r8b4 : boolean
>b4 !== a4 : boolean
>b4 : { fn(x?: string): string; }
>a4 : { fn<T>(x?: T): T; }
var r8b5 = b5 !== a5;
>r8b5 : boolean
>b5 !== a5 : boolean
>b5 : { fn(...x: string[]): string; }
>a5 : { fn<T>(...x: T[]): T; }
var r8b6 = b6 !== a6;
>r8b6 : boolean
>b6 !== a6 : boolean
>b6 : { fn(x: string, y: number): {}; }
>a6 : { fn<T>(x: T, y: T): T; }
//var r8b7 = b7 !== a7;
@@ -1,215 +0,0 @@
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts(32,12): error TS2365: Operator '<' cannot be applied to types 'new <T>(x: T) => T' and 'new (x: string, y: number) => string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts(40,12): error TS2365: Operator '<' cannot be applied to types 'new (x: string, y: number) => string' and 'new <T>(x: T) => T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts(49,12): error TS2365: Operator '>' cannot be applied to types 'new <T>(x: T) => T' and 'new (x: string, y: number) => string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts(57,12): error TS2365: Operator '>' cannot be applied to types 'new (x: string, y: number) => string' and 'new <T>(x: T) => T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts(66,12): error TS2365: Operator '<=' cannot be applied to types 'new <T>(x: T) => T' and 'new (x: string, y: number) => string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts(74,12): error TS2365: Operator '<=' cannot be applied to types 'new (x: string, y: number) => string' and 'new <T>(x: T) => T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts(83,12): error TS2365: Operator '>=' cannot be applied to types 'new <T>(x: T) => T' and 'new (x: string, y: number) => string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts(91,12): error TS2365: Operator '>=' cannot be applied to types 'new (x: string, y: number) => string' and 'new <T>(x: T) => T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts(100,12): error TS2365: Operator '==' cannot be applied to types 'new <T>(x: T) => T' and 'new (x: string, y: number) => string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts(108,12): error TS2365: Operator '==' cannot be applied to types 'new (x: string, y: number) => string' and 'new <T>(x: T) => T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts(117,12): error TS2365: Operator '!=' cannot be applied to types 'new <T>(x: T) => T' and 'new (x: string, y: number) => string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts(125,12): error TS2365: Operator '!=' cannot be applied to types 'new (x: string, y: number) => string' and 'new <T>(x: T) => T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts(134,12): error TS2365: Operator '===' cannot be applied to types 'new <T>(x: T) => T' and 'new (x: string, y: number) => string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts(142,12): error TS2365: Operator '===' cannot be applied to types 'new (x: string, y: number) => string' and 'new <T>(x: T) => T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts(151,12): error TS2365: Operator '!==' cannot be applied to types 'new <T>(x: T) => T' and 'new (x: string, y: number) => string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts(159,12): error TS2365: Operator '!==' cannot be applied to types 'new (x: string, y: number) => string' and 'new <T>(x: T) => T'.
==== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts (16 errors) ====
class Base {
public a: string;
}
class Derived extends Base {
public b: string;
}
var a1: { new <T>(x: T): T };
var b1: { new (x: string): string };
var a2: { new <T>(x: T): T };
var b2: { new (x: string, y: number): string };
var a3: { new <T, U>(x: T, y: U): T };
var b3: { new (x: string, y: number): string };
var a4: { new <T>(x?: T): T };
var b4: { new (x?: string): string };
var a5: { new <T>(...x: T[]): T };
var b5: { new (...x: string[]): string };
var a6: { new <T>(x: T, y: T): T };
var b6: { new (x: string, y: number): {} };
//var a7: { new <T, U extends T>(x: T, y: U): T };
var b7: { new (x: Base, y: Derived): Base };
// operator <
var r1a1 = a1 < b1;
var r1a2 = a2 < b2;
~~~~~~~
!!! error TS2365: Operator '<' cannot be applied to types 'new <T>(x: T) => T' and 'new (x: string, y: number) => string'.
var r1a3 = a3 < b3;
var r1a4 = a4 < b4;
var r1a5 = a5 < b5;
var r1a6 = a6 < b6;
//var r1a7 = a7 < b7;
var r1b1 = b1 < a1;
var r1b2 = b2 < a2;
~~~~~~~
!!! error TS2365: Operator '<' cannot be applied to types 'new (x: string, y: number) => string' and 'new <T>(x: T) => T'.
var r1b3 = b3 < a3;
var r1b4 = b4 < a4;
var r1b5 = b5 < a5;
var r1b6 = b6 < a6;
//var r1b7 = b7 < a7;
// operator >
var r2a1 = a1 > b1;
var r2a2 = a2 > b2;
~~~~~~~
!!! error TS2365: Operator '>' cannot be applied to types 'new <T>(x: T) => T' and 'new (x: string, y: number) => string'.
var r2a3 = a3 > b3;
var r2a4 = a4 > b4;
var r2a5 = a5 > b5;
var r2a6 = a6 > b6;
//var r2a7 = a7 > b7;
var r2b1 = b1 > a1;
var r2b2 = b2 > a2;
~~~~~~~
!!! error TS2365: Operator '>' cannot be applied to types 'new (x: string, y: number) => string' and 'new <T>(x: T) => T'.
var r2b3 = b3 > a3;
var r2b4 = b4 > a4;
var r2b5 = b5 > a5;
var r2b6 = b6 > a6;
//var r2b7 = b7 > a7;
// operator <=
var r3a1 = a1 <= b1;
var r3a2 = a2 <= b2;
~~~~~~~~
!!! error TS2365: Operator '<=' cannot be applied to types 'new <T>(x: T) => T' and 'new (x: string, y: number) => string'.
var r3a3 = a3 <= b3;
var r3a4 = a4 <= b4;
var r3a5 = a5 <= b5;
var r3a6 = a6 <= b6;
//var r3a7 = a7 <= b7;
var r3b1 = b1 <= a1;
var r3b2 = b2 <= a2;
~~~~~~~~
!!! error TS2365: Operator '<=' cannot be applied to types 'new (x: string, y: number) => string' and 'new <T>(x: T) => T'.
var r3b3 = b3 <= a3;
var r3b4 = b4 <= a4;
var r3b5 = b5 <= a5;
var r3b6 = b6 <= a6;
//var r3b7 = b7 <= a7;
// operator >=
var r4a1 = a1 >= b1;
var r4a2 = a2 >= b2;
~~~~~~~~
!!! error TS2365: Operator '>=' cannot be applied to types 'new <T>(x: T) => T' and 'new (x: string, y: number) => string'.
var r4a3 = a3 >= b3;
var r4a4 = a4 >= b4;
var r4a5 = a5 >= b5;
var r4a6 = a6 >= b6;
//var r4a7 = a7 >= b7;
var r4b1 = b1 >= a1;
var r4b2 = b2 >= a2;
~~~~~~~~
!!! error TS2365: Operator '>=' cannot be applied to types 'new (x: string, y: number) => string' and 'new <T>(x: T) => T'.
var r4b3 = b3 >= a3;
var r4b4 = b4 >= a4;
var r4b5 = b5 >= a5;
var r4b6 = b6 >= a6;
//var r4b7 = b7 >= a7;
// operator ==
var r5a1 = a1 == b1;
var r5a2 = a2 == b2;
~~~~~~~~
!!! error TS2365: Operator '==' cannot be applied to types 'new <T>(x: T) => T' and 'new (x: string, y: number) => string'.
var r5a3 = a3 == b3;
var r5a4 = a4 == b4;
var r5a5 = a5 == b5;
var r5a6 = a6 == b6;
//var r5a7 = a7 == b7;
var r5b1 = b1 == a1;
var r5b2 = b2 == a2;
~~~~~~~~
!!! error TS2365: Operator '==' cannot be applied to types 'new (x: string, y: number) => string' and 'new <T>(x: T) => T'.
var r5b3 = b3 == a3;
var r5b4 = b4 == a4;
var r5b5 = b5 == a5;
var r5b6 = b6 == a6;
//var r5b7 = b7 == a7;
// operator !=
var r6a1 = a1 != b1;
var r6a2 = a2 != b2;
~~~~~~~~
!!! error TS2365: Operator '!=' cannot be applied to types 'new <T>(x: T) => T' and 'new (x: string, y: number) => string'.
var r6a3 = a3 != b3;
var r6a4 = a4 != b4;
var r6a5 = a5 != b5;
var r6a6 = a6 != b6;
//var r6a7 = a7 != b7;
var r6b1 = b1 != a1;
var r6b2 = b2 != a2;
~~~~~~~~
!!! error TS2365: Operator '!=' cannot be applied to types 'new (x: string, y: number) => string' and 'new <T>(x: T) => T'.
var r6b3 = b3 != a3;
var r6b4 = b4 != a4;
var r6b5 = b5 != a5;
var r6b6 = b6 != a6;
//var r6b7 = b7 != a7;
// operator ===
var r7a1 = a1 === b1;
var r7a2 = a2 === b2;
~~~~~~~~~
!!! error TS2365: Operator '===' cannot be applied to types 'new <T>(x: T) => T' and 'new (x: string, y: number) => string'.
var r7a3 = a3 === b3;
var r7a4 = a4 === b4;
var r7a5 = a5 === b5;
var r7a6 = a6 === b6;
//var r7a7 = a7 === b7;
var r7b1 = b1 === a1;
var r7b2 = b2 === a2;
~~~~~~~~~
!!! error TS2365: Operator '===' cannot be applied to types 'new (x: string, y: number) => string' and 'new <T>(x: T) => T'.
var r7b3 = b3 === a3;
var r7b4 = b4 === a4;
var r7b5 = b5 === a5;
var r7b6 = b6 === a6;
//var r7b7 = b7 === a7;
// operator !==
var r8a1 = a1 !== b1;
var r8a2 = a2 !== b2;
~~~~~~~~~
!!! error TS2365: Operator '!==' cannot be applied to types 'new <T>(x: T) => T' and 'new (x: string, y: number) => string'.
var r8a3 = a3 !== b3;
var r8a4 = a4 !== b4;
var r8a5 = a5 !== b5;
var r8a6 = a6 !== b6;
//var r8a7 = a7 !== b7;
var r8b1 = b1 !== a1;
var r8b2 = b2 !== a2;
~~~~~~~~~
!!! error TS2365: Operator '!==' cannot be applied to types 'new (x: string, y: number) => string' and 'new <T>(x: T) => T'.
var r8b3 = b3 !== a3;
var r8b4 = b4 !== a4;
var r8b5 = b5 !== a5;
var r8b6 = b6 !== a6;
//var r8b7 = b7 !== a7;
@@ -0,0 +1,714 @@
=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.ts ===
class Base {
>Base : Base
public a: string;
>a : string
}
class Derived extends Base {
>Derived : Derived
>Base : Base
public b: string;
>b : string
}
var a1: { new <T>(x: T): T };
>a1 : new <T>(x: T) => T
>T : T
>x : T
>T : T
>T : T
var b1: { new (x: string): string };
>b1 : new (x: string) => string
>x : string
var a2: { new <T>(x: T): T };
>a2 : new <T>(x: T) => T
>T : T
>x : T
>T : T
>T : T
var b2: { new (x: string, y: number): string };
>b2 : new (x: string, y: number) => string
>x : string
>y : number
var a3: { new <T, U>(x: T, y: U): T };
>a3 : new <T, U>(x: T, y: U) => T
>T : T
>U : U
>x : T
>T : T
>y : U
>U : U
>T : T
var b3: { new (x: string, y: number): string };
>b3 : new (x: string, y: number) => string
>x : string
>y : number
var a4: { new <T>(x?: T): T };
>a4 : new <T>(x?: T) => T
>T : T
>x : T
>T : T
>T : T
var b4: { new (x?: string): string };
>b4 : new (x?: string) => string
>x : string
var a5: { new <T>(...x: T[]): T };
>a5 : new <T>(...x: T[]) => T
>T : T
>x : T[]
>T : T
>T : T
var b5: { new (...x: string[]): string };
>b5 : new (...x: string[]) => string
>x : string[]
var a6: { new <T>(x: T, y: T): T };
>a6 : new <T>(x: T, y: T) => T
>T : T
>x : T
>T : T
>y : T
>T : T
>T : T
var b6: { new (x: string, y: number): {} };
>b6 : new (x: string, y: number) => {}
>x : string
>y : number
//var a7: { new <T, U extends T>(x: T, y: U): T };
var b7: { new (x: Base, y: Derived): Base };
>b7 : new (x: Base, y: Derived) => Base
>x : Base
>Base : Base
>y : Derived
>Derived : Derived
>Base : Base
// operator <
var r1a1 = a1 < b1;
>r1a1 : boolean
>a1 < b1 : boolean
>a1 : new <T>(x: T) => T
>b1 : new (x: string) => string
var r1a2 = a2 < b2;
>r1a2 : boolean
>a2 < b2 : boolean
>a2 : new <T>(x: T) => T
>b2 : new (x: string, y: number) => string
var r1a3 = a3 < b3;
>r1a3 : boolean
>a3 < b3 : boolean
>a3 : new <T, U>(x: T, y: U) => T
>b3 : new (x: string, y: number) => string
var r1a4 = a4 < b4;
>r1a4 : boolean
>a4 < b4 : boolean
>a4 : new <T>(x?: T) => T
>b4 : new (x?: string) => string
var r1a5 = a5 < b5;
>r1a5 : boolean
>a5 < b5 : boolean
>a5 : new <T>(...x: T[]) => T
>b5 : new (...x: string[]) => string
var r1a6 = a6 < b6;
>r1a6 : boolean
>a6 < b6 : boolean
>a6 : new <T>(x: T, y: T) => T
>b6 : new (x: string, y: number) => {}
//var r1a7 = a7 < b7;
var r1b1 = b1 < a1;
>r1b1 : boolean
>b1 < a1 : boolean
>b1 : new (x: string) => string
>a1 : new <T>(x: T) => T
var r1b2 = b2 < a2;
>r1b2 : boolean
>b2 < a2 : boolean
>b2 : new (x: string, y: number) => string
>a2 : new <T>(x: T) => T
var r1b3 = b3 < a3;
>r1b3 : boolean
>b3 < a3 : boolean
>b3 : new (x: string, y: number) => string
>a3 : new <T, U>(x: T, y: U) => T
var r1b4 = b4 < a4;
>r1b4 : boolean
>b4 < a4 : boolean
>b4 : new (x?: string) => string
>a4 : new <T>(x?: T) => T
var r1b5 = b5 < a5;
>r1b5 : boolean
>b5 < a5 : boolean
>b5 : new (...x: string[]) => string
>a5 : new <T>(...x: T[]) => T
var r1b6 = b6 < a6;
>r1b6 : boolean
>b6 < a6 : boolean
>b6 : new (x: string, y: number) => {}
>a6 : new <T>(x: T, y: T) => T
//var r1b7 = b7 < a7;
// operator >
var r2a1 = a1 > b1;
>r2a1 : boolean
>a1 > b1 : boolean
>a1 : new <T>(x: T) => T
>b1 : new (x: string) => string
var r2a2 = a2 > b2;
>r2a2 : boolean
>a2 > b2 : boolean
>a2 : new <T>(x: T) => T
>b2 : new (x: string, y: number) => string
var r2a3 = a3 > b3;
>r2a3 : boolean
>a3 > b3 : boolean
>a3 : new <T, U>(x: T, y: U) => T
>b3 : new (x: string, y: number) => string
var r2a4 = a4 > b4;
>r2a4 : boolean
>a4 > b4 : boolean
>a4 : new <T>(x?: T) => T
>b4 : new (x?: string) => string
var r2a5 = a5 > b5;
>r2a5 : boolean
>a5 > b5 : boolean
>a5 : new <T>(...x: T[]) => T
>b5 : new (...x: string[]) => string
var r2a6 = a6 > b6;
>r2a6 : boolean
>a6 > b6 : boolean
>a6 : new <T>(x: T, y: T) => T
>b6 : new (x: string, y: number) => {}
//var r2a7 = a7 > b7;
var r2b1 = b1 > a1;
>r2b1 : boolean
>b1 > a1 : boolean
>b1 : new (x: string) => string
>a1 : new <T>(x: T) => T
var r2b2 = b2 > a2;
>r2b2 : boolean
>b2 > a2 : boolean
>b2 : new (x: string, y: number) => string
>a2 : new <T>(x: T) => T
var r2b3 = b3 > a3;
>r2b3 : boolean
>b3 > a3 : boolean
>b3 : new (x: string, y: number) => string
>a3 : new <T, U>(x: T, y: U) => T
var r2b4 = b4 > a4;
>r2b4 : boolean
>b4 > a4 : boolean
>b4 : new (x?: string) => string
>a4 : new <T>(x?: T) => T
var r2b5 = b5 > a5;
>r2b5 : boolean
>b5 > a5 : boolean
>b5 : new (...x: string[]) => string
>a5 : new <T>(...x: T[]) => T
var r2b6 = b6 > a6;
>r2b6 : boolean
>b6 > a6 : boolean
>b6 : new (x: string, y: number) => {}
>a6 : new <T>(x: T, y: T) => T
//var r2b7 = b7 > a7;
// operator <=
var r3a1 = a1 <= b1;
>r3a1 : boolean
>a1 <= b1 : boolean
>a1 : new <T>(x: T) => T
>b1 : new (x: string) => string
var r3a2 = a2 <= b2;
>r3a2 : boolean
>a2 <= b2 : boolean
>a2 : new <T>(x: T) => T
>b2 : new (x: string, y: number) => string
var r3a3 = a3 <= b3;
>r3a3 : boolean
>a3 <= b3 : boolean
>a3 : new <T, U>(x: T, y: U) => T
>b3 : new (x: string, y: number) => string
var r3a4 = a4 <= b4;
>r3a4 : boolean
>a4 <= b4 : boolean
>a4 : new <T>(x?: T) => T
>b4 : new (x?: string) => string
var r3a5 = a5 <= b5;
>r3a5 : boolean
>a5 <= b5 : boolean
>a5 : new <T>(...x: T[]) => T
>b5 : new (...x: string[]) => string
var r3a6 = a6 <= b6;
>r3a6 : boolean
>a6 <= b6 : boolean
>a6 : new <T>(x: T, y: T) => T
>b6 : new (x: string, y: number) => {}
//var r3a7 = a7 <= b7;
var r3b1 = b1 <= a1;
>r3b1 : boolean
>b1 <= a1 : boolean
>b1 : new (x: string) => string
>a1 : new <T>(x: T) => T
var r3b2 = b2 <= a2;
>r3b2 : boolean
>b2 <= a2 : boolean
>b2 : new (x: string, y: number) => string
>a2 : new <T>(x: T) => T
var r3b3 = b3 <= a3;
>r3b3 : boolean
>b3 <= a3 : boolean
>b3 : new (x: string, y: number) => string
>a3 : new <T, U>(x: T, y: U) => T
var r3b4 = b4 <= a4;
>r3b4 : boolean
>b4 <= a4 : boolean
>b4 : new (x?: string) => string
>a4 : new <T>(x?: T) => T
var r3b5 = b5 <= a5;
>r3b5 : boolean
>b5 <= a5 : boolean
>b5 : new (...x: string[]) => string
>a5 : new <T>(...x: T[]) => T
var r3b6 = b6 <= a6;
>r3b6 : boolean
>b6 <= a6 : boolean
>b6 : new (x: string, y: number) => {}
>a6 : new <T>(x: T, y: T) => T
//var r3b7 = b7 <= a7;
// operator >=
var r4a1 = a1 >= b1;
>r4a1 : boolean
>a1 >= b1 : boolean
>a1 : new <T>(x: T) => T
>b1 : new (x: string) => string
var r4a2 = a2 >= b2;
>r4a2 : boolean
>a2 >= b2 : boolean
>a2 : new <T>(x: T) => T
>b2 : new (x: string, y: number) => string
var r4a3 = a3 >= b3;
>r4a3 : boolean
>a3 >= b3 : boolean
>a3 : new <T, U>(x: T, y: U) => T
>b3 : new (x: string, y: number) => string
var r4a4 = a4 >= b4;
>r4a4 : boolean
>a4 >= b4 : boolean
>a4 : new <T>(x?: T) => T
>b4 : new (x?: string) => string
var r4a5 = a5 >= b5;
>r4a5 : boolean
>a5 >= b5 : boolean
>a5 : new <T>(...x: T[]) => T
>b5 : new (...x: string[]) => string
var r4a6 = a6 >= b6;
>r4a6 : boolean
>a6 >= b6 : boolean
>a6 : new <T>(x: T, y: T) => T
>b6 : new (x: string, y: number) => {}
//var r4a7 = a7 >= b7;
var r4b1 = b1 >= a1;
>r4b1 : boolean
>b1 >= a1 : boolean
>b1 : new (x: string) => string
>a1 : new <T>(x: T) => T
var r4b2 = b2 >= a2;
>r4b2 : boolean
>b2 >= a2 : boolean
>b2 : new (x: string, y: number) => string
>a2 : new <T>(x: T) => T
var r4b3 = b3 >= a3;
>r4b3 : boolean
>b3 >= a3 : boolean
>b3 : new (x: string, y: number) => string
>a3 : new <T, U>(x: T, y: U) => T
var r4b4 = b4 >= a4;
>r4b4 : boolean
>b4 >= a4 : boolean
>b4 : new (x?: string) => string
>a4 : new <T>(x?: T) => T
var r4b5 = b5 >= a5;
>r4b5 : boolean
>b5 >= a5 : boolean
>b5 : new (...x: string[]) => string
>a5 : new <T>(...x: T[]) => T
var r4b6 = b6 >= a6;
>r4b6 : boolean
>b6 >= a6 : boolean
>b6 : new (x: string, y: number) => {}
>a6 : new <T>(x: T, y: T) => T
//var r4b7 = b7 >= a7;
// operator ==
var r5a1 = a1 == b1;
>r5a1 : boolean
>a1 == b1 : boolean
>a1 : new <T>(x: T) => T
>b1 : new (x: string) => string
var r5a2 = a2 == b2;
>r5a2 : boolean
>a2 == b2 : boolean
>a2 : new <T>(x: T) => T
>b2 : new (x: string, y: number) => string
var r5a3 = a3 == b3;
>r5a3 : boolean
>a3 == b3 : boolean
>a3 : new <T, U>(x: T, y: U) => T
>b3 : new (x: string, y: number) => string
var r5a4 = a4 == b4;
>r5a4 : boolean
>a4 == b4 : boolean
>a4 : new <T>(x?: T) => T
>b4 : new (x?: string) => string
var r5a5 = a5 == b5;
>r5a5 : boolean
>a5 == b5 : boolean
>a5 : new <T>(...x: T[]) => T
>b5 : new (...x: string[]) => string
var r5a6 = a6 == b6;
>r5a6 : boolean
>a6 == b6 : boolean
>a6 : new <T>(x: T, y: T) => T
>b6 : new (x: string, y: number) => {}
//var r5a7 = a7 == b7;
var r5b1 = b1 == a1;
>r5b1 : boolean
>b1 == a1 : boolean
>b1 : new (x: string) => string
>a1 : new <T>(x: T) => T
var r5b2 = b2 == a2;
>r5b2 : boolean
>b2 == a2 : boolean
>b2 : new (x: string, y: number) => string
>a2 : new <T>(x: T) => T
var r5b3 = b3 == a3;
>r5b3 : boolean
>b3 == a3 : boolean
>b3 : new (x: string, y: number) => string
>a3 : new <T, U>(x: T, y: U) => T
var r5b4 = b4 == a4;
>r5b4 : boolean
>b4 == a4 : boolean
>b4 : new (x?: string) => string
>a4 : new <T>(x?: T) => T
var r5b5 = b5 == a5;
>r5b5 : boolean
>b5 == a5 : boolean
>b5 : new (...x: string[]) => string
>a5 : new <T>(...x: T[]) => T
var r5b6 = b6 == a6;
>r5b6 : boolean
>b6 == a6 : boolean
>b6 : new (x: string, y: number) => {}
>a6 : new <T>(x: T, y: T) => T
//var r5b7 = b7 == a7;
// operator !=
var r6a1 = a1 != b1;
>r6a1 : boolean
>a1 != b1 : boolean
>a1 : new <T>(x: T) => T
>b1 : new (x: string) => string
var r6a2 = a2 != b2;
>r6a2 : boolean
>a2 != b2 : boolean
>a2 : new <T>(x: T) => T
>b2 : new (x: string, y: number) => string
var r6a3 = a3 != b3;
>r6a3 : boolean
>a3 != b3 : boolean
>a3 : new <T, U>(x: T, y: U) => T
>b3 : new (x: string, y: number) => string
var r6a4 = a4 != b4;
>r6a4 : boolean
>a4 != b4 : boolean
>a4 : new <T>(x?: T) => T
>b4 : new (x?: string) => string
var r6a5 = a5 != b5;
>r6a5 : boolean
>a5 != b5 : boolean
>a5 : new <T>(...x: T[]) => T
>b5 : new (...x: string[]) => string
var r6a6 = a6 != b6;
>r6a6 : boolean
>a6 != b6 : boolean
>a6 : new <T>(x: T, y: T) => T
>b6 : new (x: string, y: number) => {}
//var r6a7 = a7 != b7;
var r6b1 = b1 != a1;
>r6b1 : boolean
>b1 != a1 : boolean
>b1 : new (x: string) => string
>a1 : new <T>(x: T) => T
var r6b2 = b2 != a2;
>r6b2 : boolean
>b2 != a2 : boolean
>b2 : new (x: string, y: number) => string
>a2 : new <T>(x: T) => T
var r6b3 = b3 != a3;
>r6b3 : boolean
>b3 != a3 : boolean
>b3 : new (x: string, y: number) => string
>a3 : new <T, U>(x: T, y: U) => T
var r6b4 = b4 != a4;
>r6b4 : boolean
>b4 != a4 : boolean
>b4 : new (x?: string) => string
>a4 : new <T>(x?: T) => T
var r6b5 = b5 != a5;
>r6b5 : boolean
>b5 != a5 : boolean
>b5 : new (...x: string[]) => string
>a5 : new <T>(...x: T[]) => T
var r6b6 = b6 != a6;
>r6b6 : boolean
>b6 != a6 : boolean
>b6 : new (x: string, y: number) => {}
>a6 : new <T>(x: T, y: T) => T
//var r6b7 = b7 != a7;
// operator ===
var r7a1 = a1 === b1;
>r7a1 : boolean
>a1 === b1 : boolean
>a1 : new <T>(x: T) => T
>b1 : new (x: string) => string
var r7a2 = a2 === b2;
>r7a2 : boolean
>a2 === b2 : boolean
>a2 : new <T>(x: T) => T
>b2 : new (x: string, y: number) => string
var r7a3 = a3 === b3;
>r7a3 : boolean
>a3 === b3 : boolean
>a3 : new <T, U>(x: T, y: U) => T
>b3 : new (x: string, y: number) => string
var r7a4 = a4 === b4;
>r7a4 : boolean
>a4 === b4 : boolean
>a4 : new <T>(x?: T) => T
>b4 : new (x?: string) => string
var r7a5 = a5 === b5;
>r7a5 : boolean
>a5 === b5 : boolean
>a5 : new <T>(...x: T[]) => T
>b5 : new (...x: string[]) => string
var r7a6 = a6 === b6;
>r7a6 : boolean
>a6 === b6 : boolean
>a6 : new <T>(x: T, y: T) => T
>b6 : new (x: string, y: number) => {}
//var r7a7 = a7 === b7;
var r7b1 = b1 === a1;
>r7b1 : boolean
>b1 === a1 : boolean
>b1 : new (x: string) => string
>a1 : new <T>(x: T) => T
var r7b2 = b2 === a2;
>r7b2 : boolean
>b2 === a2 : boolean
>b2 : new (x: string, y: number) => string
>a2 : new <T>(x: T) => T
var r7b3 = b3 === a3;
>r7b3 : boolean
>b3 === a3 : boolean
>b3 : new (x: string, y: number) => string
>a3 : new <T, U>(x: T, y: U) => T
var r7b4 = b4 === a4;
>r7b4 : boolean
>b4 === a4 : boolean
>b4 : new (x?: string) => string
>a4 : new <T>(x?: T) => T
var r7b5 = b5 === a5;
>r7b5 : boolean
>b5 === a5 : boolean
>b5 : new (...x: string[]) => string
>a5 : new <T>(...x: T[]) => T
var r7b6 = b6 === a6;
>r7b6 : boolean
>b6 === a6 : boolean
>b6 : new (x: string, y: number) => {}
>a6 : new <T>(x: T, y: T) => T
//var r7b7 = b7 === a7;
// operator !==
var r8a1 = a1 !== b1;
>r8a1 : boolean
>a1 !== b1 : boolean
>a1 : new <T>(x: T) => T
>b1 : new (x: string) => string
var r8a2 = a2 !== b2;
>r8a2 : boolean
>a2 !== b2 : boolean
>a2 : new <T>(x: T) => T
>b2 : new (x: string, y: number) => string
var r8a3 = a3 !== b3;
>r8a3 : boolean
>a3 !== b3 : boolean
>a3 : new <T, U>(x: T, y: U) => T
>b3 : new (x: string, y: number) => string
var r8a4 = a4 !== b4;
>r8a4 : boolean
>a4 !== b4 : boolean
>a4 : new <T>(x?: T) => T
>b4 : new (x?: string) => string
var r8a5 = a5 !== b5;
>r8a5 : boolean
>a5 !== b5 : boolean
>a5 : new <T>(...x: T[]) => T
>b5 : new (...x: string[]) => string
var r8a6 = a6 !== b6;
>r8a6 : boolean
>a6 !== b6 : boolean
>a6 : new <T>(x: T, y: T) => T
>b6 : new (x: string, y: number) => {}
//var r8a7 = a7 !== b7;
var r8b1 = b1 !== a1;
>r8b1 : boolean
>b1 !== a1 : boolean
>b1 : new (x: string) => string
>a1 : new <T>(x: T) => T
var r8b2 = b2 !== a2;
>r8b2 : boolean
>b2 !== a2 : boolean
>b2 : new (x: string, y: number) => string
>a2 : new <T>(x: T) => T
var r8b3 = b3 !== a3;
>r8b3 : boolean
>b3 !== a3 : boolean
>b3 : new (x: string, y: number) => string
>a3 : new <T, U>(x: T, y: U) => T
var r8b4 = b4 !== a4;
>r8b4 : boolean
>b4 !== a4 : boolean
>b4 : new (x?: string) => string
>a4 : new <T>(x?: T) => T
var r8b5 = b5 !== a5;
>r8b5 : boolean
>b5 !== a5 : boolean
>b5 : new (...x: string[]) => string
>a5 : new <T>(...x: T[]) => T
var r8b6 = b6 !== a6;
>r8b6 : boolean
>b6 !== a6 : boolean
>b6 : new (x: string, y: number) => {}
>a6 : new <T>(x: T, y: T) => T
//var r8b7 = b7 !== a7;
@@ -169,7 +169,7 @@ var result10: (t: X) => any = true ? (m) => m.propertyX1 : (n) => n.propertyX2;
>result10 : (t: X) => any
>t : X
>X : X
>true ? (m) => m.propertyX1 : (n) => n.propertyX2 : { (m: X): number; } | { (n: X): string; }
>true ? (m) => m.propertyX1 : (n) => n.propertyX2 : ((m: X) => number) | ((n: X) => string)
>(m) => m.propertyX1 : (m: X) => number
>m : X
>m.propertyX1 : number
@@ -4,13 +4,13 @@ tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithou
tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(16,5): error TS2322: Type 'A | B' is not assignable to type 'B':
Type 'A' is not assignable to type 'B':
Property 'propertyB' is missing in type 'A'.
tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(18,5): error TS2322: Type '{ (m: X): number; } | { (n: X): string; }' is not assignable to type '(t: X) => number':
tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(18,5): error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => number':
Type '(n: X) => string' is not assignable to type '(t: X) => number':
Type 'string' is not assignable to type 'number'.
tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(19,5): error TS2322: Type '{ (m: X): number; } | { (n: X): string; }' is not assignable to type '(t: X) => string':
tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(19,5): error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => string':
Type '(m: X) => number' is not assignable to type '(t: X) => string':
Type 'number' is not assignable to type 'string'.
tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(20,5): error TS2322: Type '{ (m: X): number; } | { (n: X): string; }' is not assignable to type '(t: X) => boolean':
tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithoutIdenticalBCT.ts(20,5): error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => boolean':
Type '(m: X) => number' is not assignable to type '(t: X) => boolean':
Type 'number' is not assignable to type 'boolean'.
@@ -43,16 +43,16 @@ tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorWithou
var result4: (t: X) => number = true ? (m) => m.propertyX1 : (n) => n.propertyX2;
~~~~~~~
!!! error TS2322: Type '{ (m: X): number; } | { (n: X): string; }' is not assignable to type '(t: X) => number':
!!! error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => number':
!!! error TS2322: Type '(n: X) => string' is not assignable to type '(t: X) => number':
!!! error TS2322: Type 'string' is not assignable to type 'number'.
var result5: (t: X) => string = true ? (m) => m.propertyX1 : (n) => n.propertyX2;
~~~~~~~
!!! error TS2322: Type '{ (m: X): number; } | { (n: X): string; }' is not assignable to type '(t: X) => string':
!!! error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => string':
!!! error TS2322: Type '(m: X) => number' is not assignable to type '(t: X) => string':
!!! error TS2322: Type 'number' is not assignable to type 'string'.
var result6: (t: X) => boolean = true ? (m) => m.propertyX1 : (n) => n.propertyX2;
~~~~~~~
!!! error TS2322: Type '{ (m: X): number; } | { (n: X): string; }' is not assignable to type '(t: X) => boolean':
!!! error TS2322: Type '((m: X) => number) | ((n: X) => string)' is not assignable to type '(t: X) => boolean':
!!! error TS2322: Type '(m: X) => number' is not assignable to type '(t: X) => boolean':
!!! error TS2322: Type 'number' is not assignable to type 'boolean'.
@@ -0,0 +1,35 @@
tests/cases/compiler/constDeclarationShadowedByVarDeclaration.ts(7,9): error TS2451: Cannot redeclare block-scoped variable 'x'.
tests/cases/compiler/constDeclarationShadowedByVarDeclaration.ts(15,13): error TS2451: Cannot redeclare block-scoped variable 'y'.
tests/cases/compiler/constDeclarationShadowedByVarDeclaration.ts(22,7): error TS2451: Cannot redeclare block-scoped variable 'z'.
==== tests/cases/compiler/constDeclarationShadowedByVarDeclaration.ts (3 errors) ====
// Error as declaration of var would cause a write to the const value
var x = 0;
{
const x = 0;
var x = 0;
~
!!! error TS2451: Cannot redeclare block-scoped variable 'x'.
}
var y = 0;
{
const y = 0;
{
var y = 0;
~
!!! error TS2451: Cannot redeclare block-scoped variable 'y'.
}
}
{
const z = 0;
var z = 0
~
!!! error TS2451: Cannot redeclare block-scoped variable 'z'.
}
@@ -0,0 +1,18 @@
//// [constDeclarationShadowedByVarDeclaration2.ts]
// No errors, const declaration is not shadowed
function outer() {
const x = 0;
function inner() {
var x = "inner";
}
}
//// [constDeclarationShadowedByVarDeclaration2.js]
// No errors, const declaration is not shadowed
function outer() {
const x = 0;
function inner() {
var x = "inner";
}
}
@@ -0,0 +1,16 @@
=== tests/cases/compiler/constDeclarationShadowedByVarDeclaration2.ts ===
// No errors, const declaration is not shadowed
function outer() {
>outer : () => void
const x = 0;
>x : number
function inner() {
>inner : () => void
var x = "inner";
>x : string
}
}
@@ -0,0 +1,21 @@
//// [constDeclarationShadowedByVarDeclaration3.ts]
// Ensure only checking for const declarations shadowed by vars
class Rule {
public regex: RegExp = new RegExp('');
public name: string = '';
constructor(name: string) {
this.name = name;
}
}
//// [constDeclarationShadowedByVarDeclaration3.js]
// Ensure only checking for const declarations shadowed by vars
var Rule = (function () {
function Rule(name) {
this.regex = new RegExp('');
this.name = '';
this.name = name;
}
return Rule;
})();
@@ -0,0 +1,25 @@
=== tests/cases/compiler/constDeclarationShadowedByVarDeclaration3.ts ===
// Ensure only checking for const declarations shadowed by vars
class Rule {
>Rule : Rule
public regex: RegExp = new RegExp('');
>regex : RegExp
>RegExp : RegExp
>new RegExp('') : RegExp
>RegExp : { (pattern: string, flags?: string): RegExp; new (pattern: string, flags?: string): RegExp; $1: string; $2: string; $3: string; $4: string; $5: string; $6: string; $7: string; $8: string; $9: string; lastMatch: string; }
public name: string = '';
>name : string
constructor(name: string) {
>name : string
this.name = name;
>this.name = name : string
>this.name : string
>this : Rule
>name : string
>name : string
}
}
@@ -0,0 +1,11 @@
tests/cases/compiler/file2.ts(1,1): error TS2449: The operand of an increment or decrement operator cannot be a constant.
==== tests/cases/compiler/file1.ts (0 errors) ====
const x = 0
==== tests/cases/compiler/file2.ts (1 errors) ====
x++;
~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
@@ -0,0 +1,94 @@
tests/cases/compiler/constDeclarations-access2.ts(5,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access2.ts(6,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access2.ts(7,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access2.ts(8,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access2.ts(9,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access2.ts(10,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access2.ts(11,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access2.ts(12,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access2.ts(13,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access2.ts(14,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access2.ts(15,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access2.ts(16,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access2.ts(18,1): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations-access2.ts(19,1): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations-access2.ts(20,3): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations-access2.ts(21,3): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations-access2.ts(23,3): error TS2449: The operand of an increment or decrement operator cannot be a constant.
==== tests/cases/compiler/constDeclarations-access2.ts (17 errors) ====
const x = 0
// Errors
x = 1;
~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
x += 2;
~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
x -= 3;
~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
x *= 4;
~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
x /= 5;
~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
x %= 6;
~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
x <<= 7;
~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
x >>= 8;
~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
x >>>= 9;
~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
x &= 10;
~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
x |= 11;
~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
x ^= 12;
~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
x++;
~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
x--;
~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
++x;
~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
--x;
~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
++((x));
~~~~~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
// OK
var a = x + 1;
function f(v: number) { }
f(x);
if (x) { }
x;
(x);
-x;
+x;
x.toString();
@@ -0,0 +1,102 @@
tests/cases/compiler/constDeclarations-access3.ts(8,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access3.ts(9,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access3.ts(10,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access3.ts(11,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access3.ts(12,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access3.ts(13,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access3.ts(14,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access3.ts(15,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access3.ts(16,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access3.ts(17,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access3.ts(18,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access3.ts(19,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access3.ts(21,1): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations-access3.ts(22,1): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations-access3.ts(23,3): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations-access3.ts(24,3): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations-access3.ts(26,3): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations-access3.ts(28,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
==== tests/cases/compiler/constDeclarations-access3.ts (18 errors) ====
module M {
export const x = 0;
}
// Errors
M.x = 1;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x += 2;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x -= 3;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x *= 4;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x /= 5;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x %= 6;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x <<= 7;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x >>= 8;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x >>>= 9;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x &= 10;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x |= 11;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x ^= 12;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x++;
~~~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
M.x--;
~~~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
++M.x;
~~~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
--M.x;
~~~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
++((M.x));
~~~~~~~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
M["x"] = 0;
~~~~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
// OK
var a = M.x + 1;
function f(v: number) { }
f(M.x);
if (M.x) { }
M.x;
(M.x);
-M.x;
+M.x;
M.x.toString();
@@ -0,0 +1,102 @@
tests/cases/compiler/constDeclarations-access4.ts(8,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access4.ts(9,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access4.ts(10,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access4.ts(11,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access4.ts(12,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access4.ts(13,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access4.ts(14,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access4.ts(15,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access4.ts(16,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access4.ts(17,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access4.ts(18,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access4.ts(19,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations-access4.ts(21,1): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations-access4.ts(22,1): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations-access4.ts(23,3): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations-access4.ts(24,3): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations-access4.ts(26,3): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations-access4.ts(28,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
==== tests/cases/compiler/constDeclarations-access4.ts (18 errors) ====
declare module M {
const x: number;
}
// Errors
M.x = 1;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x += 2;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x -= 3;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x *= 4;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x /= 5;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x %= 6;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x <<= 7;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x >>= 8;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x >>>= 9;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x &= 10;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x |= 11;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x ^= 12;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
M.x++;
~~~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
M.x--;
~~~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
++M.x;
~~~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
--M.x;
~~~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
++((M.x));
~~~~~~~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
M["x"] = 0;
~~~~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
// OK
var a = M.x + 1;
function f(v: number) { }
f(M.x);
if (M.x) { }
M.x;
(M.x);
-M.x;
+M.x;
M.x.toString();
@@ -0,0 +1,103 @@
tests/cases/compiler/constDeclarations_access_2.ts(4,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations_access_2.ts(5,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations_access_2.ts(6,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations_access_2.ts(7,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations_access_2.ts(8,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations_access_2.ts(9,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations_access_2.ts(10,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations_access_2.ts(11,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations_access_2.ts(12,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations_access_2.ts(13,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations_access_2.ts(14,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations_access_2.ts(15,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
tests/cases/compiler/constDeclarations_access_2.ts(17,1): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations_access_2.ts(18,1): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations_access_2.ts(19,3): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations_access_2.ts(20,3): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations_access_2.ts(22,3): error TS2449: The operand of an increment or decrement operator cannot be a constant.
tests/cases/compiler/constDeclarations_access_2.ts(24,1): error TS2450: Left-hand side of assignment expression cannot be a constant.
==== tests/cases/compiler/constDeclarations_access_2.ts (18 errors) ====
///<reference path='constDeclarations_access_1.ts'/>
import m = require('constDeclarations_access_1');
// Errors
m.x = 1;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
m.x += 2;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
m.x -= 3;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
m.x *= 4;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
m.x /= 5;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
m.x %= 6;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
m.x <<= 7;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
m.x >>= 8;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
m.x >>>= 9;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
m.x &= 10;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
m.x |= 11;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
m.x ^= 12;
~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
m
m.x++;
~~~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
m.x--;
~~~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
++m.x;
~~~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
--m.x;
~~~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
++((m.x));
~~~~~~~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
m["x"] = 0;
~~~~~~
!!! error TS2450: Left-hand side of assignment expression cannot be a constant.
// OK
var a = m.x + 1;
function f(v: number) { }
f(m.x);
if (m.x) { }
m.x;
(m.x);
-m.x;
+m.x;
m.x.toString();
==== tests/cases/compiler/constDeclarations_access_1.ts (0 errors) ====
export const x = 0;
@@ -0,0 +1,34 @@
tests/cases/compiler/constDeclarations-ambient-errors.ts(3,27): error TS1039: Initializers are not allowed in ambient contexts.
tests/cases/compiler/constDeclarations-ambient-errors.ts(4,26): error TS1039: Initializers are not allowed in ambient contexts.
tests/cases/compiler/constDeclarations-ambient-errors.ts(5,18): error TS1039: Initializers are not allowed in ambient contexts.
tests/cases/compiler/constDeclarations-ambient-errors.ts(5,37): error TS1039: Initializers are not allowed in ambient contexts.
tests/cases/compiler/constDeclarations-ambient-errors.ts(5,51): error TS1039: Initializers are not allowed in ambient contexts.
tests/cases/compiler/constDeclarations-ambient-errors.ts(8,14): error TS1039: Initializers are not allowed in ambient contexts.
tests/cases/compiler/constDeclarations-ambient-errors.ts(9,22): error TS1039: Initializers are not allowed in ambient contexts.
==== tests/cases/compiler/constDeclarations-ambient-errors.ts (7 errors) ====
// error: no intialization expected in ambient declarations
declare const c1: boolean = true;
~
!!! error TS1039: Initializers are not allowed in ambient contexts.
declare const c2: number = 0;
~
!!! error TS1039: Initializers are not allowed in ambient contexts.
declare const c3 = null, c4 :string = "", c5: any = 0;
~
!!! error TS1039: Initializers are not allowed in ambient contexts.
~
!!! error TS1039: Initializers are not allowed in ambient contexts.
~
!!! error TS1039: Initializers are not allowed in ambient contexts.
declare module M {
const c6 = 0;
~
!!! error TS1039: Initializers are not allowed in ambient contexts.
const c7: number = 7;
~
!!! error TS1039: Initializers are not allowed in ambient contexts.
}
@@ -0,0 +1,13 @@
//// [constDeclarations-ambient.ts]
// No error
declare const c1: boolean;
declare const c2: number;
declare const c3, c4 :string, c5: any;
declare module M {
const c6;
const c7: number;
}
//// [constDeclarations-ambient.js]
@@ -0,0 +1,23 @@
=== tests/cases/compiler/constDeclarations-ambient.ts ===
// No error
declare const c1: boolean;
>c1 : boolean
declare const c2: number;
>c2 : number
declare const c3, c4 :string, c5: any;
>c3 : any
>c4 : string
>c5 : any
declare module M {
>M : typeof M
const c6;
>c6 : any
const c7: number;
>c7 : number
}
@@ -0,0 +1,50 @@
tests/cases/compiler/constDeclarations-errors.ts(3,7): error TS1155: 'const' declarations must be initialized
tests/cases/compiler/constDeclarations-errors.ts(4,7): error TS1155: 'const' declarations must be initialized
tests/cases/compiler/constDeclarations-errors.ts(5,7): error TS1155: 'const' declarations must be initialized
tests/cases/compiler/constDeclarations-errors.ts(5,11): error TS1155: 'const' declarations must be initialized
tests/cases/compiler/constDeclarations-errors.ts(5,15): error TS1155: 'const' declarations must be initialized
tests/cases/compiler/constDeclarations-errors.ts(5,27): error TS1155: 'const' declarations must be initialized
tests/cases/compiler/constDeclarations-errors.ts(8,11): error TS1155: 'const' declarations must be initialized
tests/cases/compiler/constDeclarations-errors.ts(14,11): error TS1155: 'const' declarations must be initialized
tests/cases/compiler/constDeclarations-errors.ts(17,20): error TS1155: 'const' declarations must be initialized
tests/cases/compiler/constDeclarations-errors.ts(11,27): error TS2449: The operand of an increment or decrement operator cannot be a constant.
==== tests/cases/compiler/constDeclarations-errors.ts (10 errors) ====
// error, missing intialicer
const c1;
~~
!!! error TS1155: 'const' declarations must be initialized
const c2: number;
~~
!!! error TS1155: 'const' declarations must be initialized
const c3, c4, c5 :string, c6; // error, missing initialicer
~~
!!! error TS1155: 'const' declarations must be initialized
~~
!!! error TS1155: 'const' declarations must be initialized
~~
!!! error TS1155: 'const' declarations must be initialized
~~
!!! error TS1155: 'const' declarations must be initialized
// error, can not be unintalized
for(const c in {}) { }
~
!!! error TS1155: 'const' declarations must be initialized
// error, assigning to a const
for(const c8 = 0; c8 < 1; c8++) { }
~~
!!! error TS2449: The operand of an increment or decrement operator cannot be a constant.
// error, can not be unintalized
for(const c9; c9 < 1;) { }
~~
!!! error TS1155: 'const' declarations must be initialized
// error, can not be unintalized
for(const c10 = 0, c11; c10 < 1;) { }
~~~
!!! error TS1155: 'const' declarations must be initialized
@@ -0,0 +1,17 @@
tests/cases/compiler/constDeclarations-es5.ts(2,1): error TS1154: 'const' declarations are only available when targeting ECMAScript 6 and higher.
tests/cases/compiler/constDeclarations-es5.ts(3,1): error TS1154: 'const' declarations are only available when targeting ECMAScript 6 and higher.
tests/cases/compiler/constDeclarations-es5.ts(4,1): error TS1154: 'const' declarations are only available when targeting ECMAScript 6 and higher.
==== tests/cases/compiler/constDeclarations-es5.ts (3 errors) ====
const z7 = false;
~~~~~~~~~~~~~~~~~
!!! error TS1154: 'const' declarations are only available when targeting ECMAScript 6 and higher.
const z8: number = 23;
~~~~~~~~~~~~~~~~~~~~~~
!!! error TS1154: 'const' declarations are only available when targeting ECMAScript 6 and higher.
const z9 = 0, z10 :string = "", z11 = null;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS1154: 'const' declarations are only available when targeting ECMAScript 6 and higher.
@@ -0,0 +1,66 @@
tests/cases/compiler/constDeclarations-invalidContexts.ts(4,5): error TS1156: 'const' declarations can only be declared inside a block.
tests/cases/compiler/constDeclarations-invalidContexts.ts(6,5): error TS1156: 'const' declarations can only be declared inside a block.
tests/cases/compiler/constDeclarations-invalidContexts.ts(9,5): error TS1156: 'const' declarations can only be declared inside a block.
tests/cases/compiler/constDeclarations-invalidContexts.ts(12,5): error TS1156: 'const' declarations can only be declared inside a block.
tests/cases/compiler/constDeclarations-invalidContexts.ts(17,5): error TS1156: 'const' declarations can only be declared inside a block.
tests/cases/compiler/constDeclarations-invalidContexts.ts(20,5): error TS1156: 'const' declarations can only be declared inside a block.
tests/cases/compiler/constDeclarations-invalidContexts.ts(23,5): error TS1156: 'const' declarations can only be declared inside a block.
tests/cases/compiler/constDeclarations-invalidContexts.ts(26,12): error TS1156: 'const' declarations can only be declared inside a block.
tests/cases/compiler/constDeclarations-invalidContexts.ts(29,29): error TS1156: 'const' declarations can only be declared inside a block.
tests/cases/compiler/constDeclarations-invalidContexts.ts(16,7): error TS2410: All symbols within a 'with' block will be resolved to 'any'.
==== tests/cases/compiler/constDeclarations-invalidContexts.ts (10 errors) ====
// Errors, const must be defined inside a block
if (true)
const c1 = 0;
~~~~~~~~~~~~~
!!! error TS1156: 'const' declarations can only be declared inside a block.
else
const c2 = 0;
~~~~~~~~~~~~~
!!! error TS1156: 'const' declarations can only be declared inside a block.
while (true)
const c3 = 0;
~~~~~~~~~~~~~
!!! error TS1156: 'const' declarations can only be declared inside a block.
do
const c4 = 0;
~~~~~~~~~~~~~
!!! error TS1156: 'const' declarations can only be declared inside a block.
while (true);
var obj;
with (obj)
~~~
!!! error TS2410: All symbols within a 'with' block will be resolved to 'any'.
const c5 = 0;
~~~~~~~~~~~~~
!!! error TS1156: 'const' declarations can only be declared inside a block.
for (var i = 0; i < 10; i++)
const c6 = 0;
~~~~~~~~~~~~~
!!! error TS1156: 'const' declarations can only be declared inside a block.
for (var i2 in {})
const c7 = 0;
~~~~~~~~~~~~~
!!! error TS1156: 'const' declarations can only be declared inside a block.
if (true)
label: const c8 = 0;
~~~~~~~~~~~~~
!!! error TS1156: 'const' declarations can only be declared inside a block.
while (false)
label2: label3: label4: const c9 = 0;
~~~~~~~~~~~~~
!!! error TS1156: 'const' declarations can only be declared inside a block.
@@ -0,0 +1,153 @@
tests/cases/compiler/constDeclarations-scopes.ts(28,7): error TS2410: All symbols within a 'with' block will be resolved to 'any'.
==== tests/cases/compiler/constDeclarations-scopes.ts (1 errors) ====
// global
const c = "string";
var n: number;
// Control flow statements with blocks
if (true) {
const c = 0;
n = c;
}
else {
const c = 0;
n = c;
}
while (true) {
const c = 0;
n = c;
}
do {
const c = 0;
n = c;
} while (true);
var obj;
with (obj) {
~~~
!!! error TS2410: All symbols within a 'with' block will be resolved to 'any'.
const c = 0;
n = c;
}
for (var i = 0; i < 10; i++) {
const c = 0;
n = c;
}
for (var i2 in {}) {
const c = 0;
n = c;
}
if (true) {
label: const c = 0;
n = c;
}
while (false) {
label2: label3: label4: const c = 0;
n = c;
}
// Try/catch/finally
try {
const c = 0;
n = c;
}
catch (e) {
const c = 0;
n = c;
}
finally {
const c = 0;
n = c;
}
// Switch
switch (0) {
case 0:
const c = 0;
n = c;
break;
}
// blocks
{
const c = 0;
n = c;
{
const c = false;
var b: boolean = c;
}
}
// functions
function F() {
const c = 0;
n = c;
}
var F2 = () => {
const c = 0;
n = c;
};
var F3 = function () {
const c = 0;
n = c;
};
// modules
module m {
const c = 0;
n = c;
{
const c = false;
var b2: boolean = c;
}
}
// methods
class C {
constructor() {
const c = 0;
n = c;
}
method() {
const c = 0;
n = c;
}
get v() {
const c = 0;
n = c;
return n;
}
set v(value) {
const c = 0;
n = c;
}
}
// object literals
var o = {
f() {
const c = 0;
n = c;
},
f2: () => {
const c = 0;
n = c;
}
}
@@ -0,0 +1,276 @@
//// [constDeclarations-scopes.ts]
// global
const c = "string";
var n: number;
// Control flow statements with blocks
if (true) {
const c = 0;
n = c;
}
else {
const c = 0;
n = c;
}
while (true) {
const c = 0;
n = c;
}
do {
const c = 0;
n = c;
} while (true);
var obj;
with (obj) {
const c = 0;
n = c;
}
for (var i = 0; i < 10; i++) {
const c = 0;
n = c;
}
for (var i2 in {}) {
const c = 0;
n = c;
}
if (true) {
label: const c = 0;
n = c;
}
while (false) {
label2: label3: label4: const c = 0;
n = c;
}
// Try/catch/finally
try {
const c = 0;
n = c;
}
catch (e) {
const c = 0;
n = c;
}
finally {
const c = 0;
n = c;
}
// Switch
switch (0) {
case 0:
const c = 0;
n = c;
break;
}
// blocks
{
const c = 0;
n = c;
{
const c = false;
var b: boolean = c;
}
}
// functions
function F() {
const c = 0;
n = c;
}
var F2 = () => {
const c = 0;
n = c;
};
var F3 = function () {
const c = 0;
n = c;
};
// modules
module m {
const c = 0;
n = c;
{
const c = false;
var b2: boolean = c;
}
}
// methods
class C {
constructor() {
const c = 0;
n = c;
}
method() {
const c = 0;
n = c;
}
get v() {
const c = 0;
n = c;
return n;
}
set v(value) {
const c = 0;
n = c;
}
}
// object literals
var o = {
f() {
const c = 0;
n = c;
},
f2: () => {
const c = 0;
n = c;
}
}
//// [constDeclarations-scopes.js]
// global
const c = "string";
var n;
// Control flow statements with blocks
if (true) {
const c = 0;
n = c;
}
else {
const c = 0;
n = c;
}
while (true) {
const c = 0;
n = c;
}
do {
const c = 0;
n = c;
} while (true);
var obj;
with (obj) {
const c = 0;
n = c;
}
for (var i = 0; i < 10; i++) {
const c = 0;
n = c;
}
for (var i2 in {}) {
const c = 0;
n = c;
}
if (true) {
label: const c = 0;
n = c;
}
while (false) {
label2: label3: label4: const c = 0;
n = c;
}
try {
const c = 0;
n = c;
}
catch (e) {
const c = 0;
n = c;
}
finally {
const c = 0;
n = c;
}
switch (0) {
case 0:
const c = 0;
n = c;
break;
}
{
const c = 0;
n = c;
{
const c = false;
var b = c;
}
}
// functions
function F() {
const c = 0;
n = c;
}
var F2 = function () {
const c = 0;
n = c;
};
var F3 = function () {
const c = 0;
n = c;
};
// modules
var m;
(function (m) {
const c = 0;
n = c;
{
const c = false;
var b2 = c;
}
})(m || (m = {}));
// methods
var C = (function () {
function C() {
const c = 0;
n = c;
}
C.prototype.method = function () {
const c = 0;
n = c;
};
Object.defineProperty(C.prototype, "v", {
get: function () {
const c = 0;
n = c;
return n;
},
set: function (value) {
const c = 0;
n = c;
},
enumerable: true,
configurable: true
});
return C;
})();
// object literals
var o = {
f: function () {
const c = 0;
n = c;
},
f2: function () {
const c = 0;
n = c;
}
};
@@ -0,0 +1,27 @@
//// [constDeclarations-scopes2.ts]
// global
const c = "string";
var n: number;
var b: boolean;
// for scope
for (const c = 0; c < 10; n = c ) {
// for block
const c = false;
b = c;
}
//// [constDeclarations-scopes2.js]
// global
const c = "string";
var n;
var b;
for (const c = 0; c < 10; n = c) {
// for block
const c = false;
b = c;
}
@@ -0,0 +1,32 @@
=== tests/cases/compiler/constDeclarations-scopes2.ts ===
// global
const c = "string";
>c : string
var n: number;
>n : number
var b: boolean;
>b : boolean
// for scope
for (const c = 0; c < 10; n = c ) {
>c : number
>c < 10 : boolean
>c : number
>n = c : number
>n : number
>c : number
// for block
const c = false;
>c : boolean
b = c;
>b = c : boolean
>b : boolean
>c : boolean
}
@@ -0,0 +1,21 @@
tests/cases/compiler/constDeclarations-useBeforeDefinition.ts(3,5): error TS2448: Block-scoped variable 'c1' used before its declaration.
tests/cases/compiler/constDeclarations-useBeforeDefinition.ts(9,5): error TS2448: Block-scoped variable 'v1' used before its declaration.
==== tests/cases/compiler/constDeclarations-useBeforeDefinition.ts (2 errors) ====
{
c1;
~~
!!! error TS2448: Block-scoped variable 'c1' used before its declaration.
const c1 = 0;
}
var v1;
{
v1;
~~
!!! error TS2448: Block-scoped variable 'v1' used before its declaration.
const v1 = 0;
}
@@ -0,0 +1,11 @@
tests/cases/compiler/file1.ts(2,1): error TS2448: Block-scoped variable 'c' used before its declaration.
==== tests/cases/compiler/file1.ts (1 errors) ====
c;
~
!!! error TS2448: Block-scoped variable 'c' used before its declaration.
==== tests/cases/compiler/file2.ts (0 errors) ====
const c = 0;
@@ -0,0 +1,129 @@
tests/cases/compiler/constDeclarations-validContexts.ts(20,7): error TS2410: All symbols within a 'with' block will be resolved to 'any'.
==== tests/cases/compiler/constDeclarations-validContexts.ts (1 errors) ====
// Control flow statements with blocks
if (true) {
const c1 = 0;
}
else {
const c2 = 0;
}
while (true) {
const c3 = 0;
}
do {
const c4 = 0;
} while (true);
var obj;
with (obj) {
~~~
!!! error TS2410: All symbols within a 'with' block will be resolved to 'any'.
const c5 = 0;
}
for (var i = 0; i < 10; i++) {
const c6 = 0;
}
for (var i2 in {}) {
const c7 = 0;
}
if (true) {
label: const c8 = 0;
}
while (false) {
label2: label3: label4: const c9 = 0;
}
// Try/catch/finally
try {
const c10 = 0;
}
catch (e) {
const c11 = 0;
}
finally {
const c12 = 0;
}
// Switch
switch (0) {
case 0:
const c13 = 0;
break;
default:
const c14 = 0;
break;
}
// blocks
{
const c15 = 0;
{
const c16 = 0
label17: const c17 = 0;
}
}
// global
const c18 = 0;
// functions
function F() {
const c19 = 0;
}
var F2 = () => {
const c20 = 0;
};
var F3 = function () {
const c21 = 0;
};
// modules
module m {
const c22 = 0;
{
const c23 = 0;
}
}
// methods
class C {
constructor() {
const c24 = 0;
}
method() {
const c25 = 0;
}
get v() {
const c26 = 0;
return c26;
}
set v(value) {
const c27 = value;
}
}
// object literals
var o = {
f() {
const c28 = 0;
},
f2: () => {
const c29 = 0;
}
}
@@ -0,0 +1,229 @@
//// [constDeclarations-validContexts.ts]
// Control flow statements with blocks
if (true) {
const c1 = 0;
}
else {
const c2 = 0;
}
while (true) {
const c3 = 0;
}
do {
const c4 = 0;
} while (true);
var obj;
with (obj) {
const c5 = 0;
}
for (var i = 0; i < 10; i++) {
const c6 = 0;
}
for (var i2 in {}) {
const c7 = 0;
}
if (true) {
label: const c8 = 0;
}
while (false) {
label2: label3: label4: const c9 = 0;
}
// Try/catch/finally
try {
const c10 = 0;
}
catch (e) {
const c11 = 0;
}
finally {
const c12 = 0;
}
// Switch
switch (0) {
case 0:
const c13 = 0;
break;
default:
const c14 = 0;
break;
}
// blocks
{
const c15 = 0;
{
const c16 = 0
label17: const c17 = 0;
}
}
// global
const c18 = 0;
// functions
function F() {
const c19 = 0;
}
var F2 = () => {
const c20 = 0;
};
var F3 = function () {
const c21 = 0;
};
// modules
module m {
const c22 = 0;
{
const c23 = 0;
}
}
// methods
class C {
constructor() {
const c24 = 0;
}
method() {
const c25 = 0;
}
get v() {
const c26 = 0;
return c26;
}
set v(value) {
const c27 = value;
}
}
// object literals
var o = {
f() {
const c28 = 0;
},
f2: () => {
const c29 = 0;
}
}
//// [constDeclarations-validContexts.js]
// Control flow statements with blocks
if (true) {
const c1 = 0;
}
else {
const c2 = 0;
}
while (true) {
const c3 = 0;
}
do {
const c4 = 0;
} while (true);
var obj;
with (obj) {
const c5 = 0;
}
for (var i = 0; i < 10; i++) {
const c6 = 0;
}
for (var i2 in {}) {
const c7 = 0;
}
if (true) {
label: const c8 = 0;
}
while (false) {
label2: label3: label4: const c9 = 0;
}
try {
const c10 = 0;
}
catch (e) {
const c11 = 0;
}
finally {
const c12 = 0;
}
switch (0) {
case 0:
const c13 = 0;
break;
default:
const c14 = 0;
break;
}
{
const c15 = 0;
{
const c16 = 0;
label17: const c17 = 0;
}
}
// global
const c18 = 0;
// functions
function F() {
const c19 = 0;
}
var F2 = function () {
const c20 = 0;
};
var F3 = function () {
const c21 = 0;
};
// modules
var m;
(function (m) {
const c22 = 0;
{
const c23 = 0;
}
})(m || (m = {}));
// methods
var C = (function () {
function C() {
const c24 = 0;
}
C.prototype.method = function () {
const c25 = 0;
};
Object.defineProperty(C.prototype, "v", {
get: function () {
const c26 = 0;
return c26;
},
set: function (value) {
const c27 = value;
},
enumerable: true,
configurable: true
});
return C;
})();
// object literals
var o = {
f: function () {
const c28 = 0;
},
f2: function () {
const c29 = 0;
}
};
@@ -0,0 +1,30 @@
//// [constDeclarations.ts]
// No error
const c1 = false;
const c2: number = 23;
const c3 = 0, c4 :string = "", c5 = null;
for(const c4 = 0; c4 < 9; ) { break; }
for(const c5 = 0, c6 = 0; c5 < c6; ) { break; }
//// [constDeclarations.js]
// No error
const c1 = false;
const c2 = 23;
const c3 = 0, c4 = "", c5 = null;
for (const c4 = 0; c4 < 9;) {
break;
}
for (const c5 = 0, c6 = 0; c5 < c6;) {
break;
}
//// [constDeclarations.d.ts]
declare const c1: boolean;
declare const c2: number;
declare const c3: number, c4: string, c5: any;
@@ -0,0 +1,28 @@
=== tests/cases/compiler/constDeclarations.ts ===
// No error
const c1 = false;
>c1 : boolean
const c2: number = 23;
>c2 : number
const c3 = 0, c4 :string = "", c5 = null;
>c3 : number
>c4 : string
>c5 : any
for(const c4 = 0; c4 < 9; ) { break; }
>c4 : number
>c4 < 9 : boolean
>c4 : number
for(const c5 = 0, c6 = 0; c5 < c6; ) { break; }
>c5 : number
>c6 : number
>c5 < c6 : boolean
>c5 : number
>c6 : number
@@ -0,0 +1,26 @@
//// [constDeclarations2.ts]
// No error
module M {
export const c1 = false;
export const c2: number = 23;
export const c3 = 0, c4 :string = "", c5 = null;
}
//// [constDeclarations2.js]
// No error
var M;
(function (M) {
M.c1 = false;
M.c2 = 23;
M.c3 = 0, M.c4 = "", M.c5 = null;
})(M || (M = {}));
//// [constDeclarations2.d.ts]
declare module M {
const c1: boolean;
const c2: number;
const c3: number, c4: string, c5: any;
}
@@ -0,0 +1,18 @@
=== tests/cases/compiler/constDeclarations2.ts ===
// No error
module M {
>M : typeof M
export const c1 = false;
>c1 : boolean
export const c2: number = 23;
>c2 : number
export const c3 = 0, c4 :string = "", c5 = null;
>c3 : number
>c4 : string
>c5 : any
}
@@ -0,0 +1,50 @@
//// [contextualSignatureInstantiation.ts]
// TypeScript Spec, section 4.12.2:
// If e is an expression of a function type that contains exactly one generic call signature and no other members,
// and T is a function type with exactly one non - generic call signature and no other members, then any inferences
// made for type parameters referenced by the parameters of T's call signature are fixed, and e's type is changed
// to a function type with e's call signature instantiated in the context of T's call signature (section 3.8.5).
declare function foo<T>(cb: (x: number, y: string) => T): T;
declare function bar<T, U, V>(x: T, y: U, cb: (x: T, y: U) => V): V;
declare function baz<T, U>(x: T, y: T, cb: (x: T, y: T) => U): U;
declare function g<T>(x: T, y: T): T;
declare function h<T, U>(x: T, y: U): T[] | U[];
var a: number;
var a = bar(1, 1, g); // Should be number
var a = baz(1, 1, g); // Should be number
var b: number | string;
var b = foo(g); // Should be number | string
var b = bar(1, "one", g); // Should be number | string
var b = bar("one", 1, g); // Should be number | string
var b = baz(b, b, g); // Should be number | string
var d: number[] | string[];
var d = foo(h); // Should be number[] | string[]
var d = bar(1, "one", h); // Should be number[] | string[]
var d = bar("one", 1, h); // Should be number[] | string[]
var d = baz(d, d, g); // Should be number[] | string[]
//// [contextualSignatureInstantiation.js]
// TypeScript Spec, section 4.12.2:
// If e is an expression of a function type that contains exactly one generic call signature and no other members,
// and T is a function type with exactly one non - generic call signature and no other members, then any inferences
// made for type parameters referenced by the parameters of T's call signature are fixed, and e's type is changed
// to a function type with e's call signature instantiated in the context of T's call signature (section 3.8.5).
var a;
var a = bar(1, 1, g); // Should be number
var a = baz(1, 1, g); // Should be number
var b;
var b = foo(g); // Should be number | string
var b = bar(1, "one", g); // Should be number | string
var b = bar("one", 1, g); // Should be number | string
var b = baz(b, b, g); // Should be number | string
var d;
var d = foo(h); // Should be number[] | string[]
var d = bar(1, "one", h); // Should be number[] | string[]
var d = bar("one", 1, h); // Should be number[] | string[]
var d = baz(d, d, g); // Should be number[] | string[]
@@ -0,0 +1,142 @@
=== tests/cases/conformance/types/typeRelationships/typeInference/contextualSignatureInstantiation.ts ===
// TypeScript Spec, section 4.12.2:
// If e is an expression of a function type that contains exactly one generic call signature and no other members,
// and T is a function type with exactly one non - generic call signature and no other members, then any inferences
// made for type parameters referenced by the parameters of T's call signature are fixed, and e's type is changed
// to a function type with e's call signature instantiated in the context of T's call signature (section 3.8.5).
declare function foo<T>(cb: (x: number, y: string) => T): T;
>foo : <T>(cb: (x: number, y: string) => T) => T
>T : T
>cb : (x: number, y: string) => T
>x : number
>y : string
>T : T
>T : T
declare function bar<T, U, V>(x: T, y: U, cb: (x: T, y: U) => V): V;
>bar : <T, U, V>(x: T, y: U, cb: (x: T, y: U) => V) => V
>T : T
>U : U
>V : V
>x : T
>T : T
>y : U
>U : U
>cb : (x: T, y: U) => V
>x : T
>T : T
>y : U
>U : U
>V : V
>V : V
declare function baz<T, U>(x: T, y: T, cb: (x: T, y: T) => U): U;
>baz : <T, U>(x: T, y: T, cb: (x: T, y: T) => U) => U
>T : T
>U : U
>x : T
>T : T
>y : T
>T : T
>cb : (x: T, y: T) => U
>x : T
>T : T
>y : T
>T : T
>U : U
>U : U
declare function g<T>(x: T, y: T): T;
>g : <T>(x: T, y: T) => T
>T : T
>x : T
>T : T
>y : T
>T : T
>T : T
declare function h<T, U>(x: T, y: U): T[] | U[];
>h : <T, U>(x: T, y: U) => T[] | U[]
>T : T
>U : U
>x : T
>T : T
>y : U
>U : U
>T : T
>U : U
var a: number;
>a : number
var a = bar(1, 1, g); // Should be number
>a : number
>bar(1, 1, g) : number
>bar : <T, U, V>(x: T, y: U, cb: (x: T, y: U) => V) => V
>g : <T>(x: T, y: T) => T
var a = baz(1, 1, g); // Should be number
>a : number
>baz(1, 1, g) : number
>baz : <T, U>(x: T, y: T, cb: (x: T, y: T) => U) => U
>g : <T>(x: T, y: T) => T
var b: number | string;
>b : string | number
var b = foo(g); // Should be number | string
>b : string | number
>foo(g) : string | number
>foo : <T>(cb: (x: number, y: string) => T) => T
>g : <T>(x: T, y: T) => T
var b = bar(1, "one", g); // Should be number | string
>b : string | number
>bar(1, "one", g) : string | number
>bar : <T, U, V>(x: T, y: U, cb: (x: T, y: U) => V) => V
>g : <T>(x: T, y: T) => T
var b = bar("one", 1, g); // Should be number | string
>b : string | number
>bar("one", 1, g) : string | number
>bar : <T, U, V>(x: T, y: U, cb: (x: T, y: U) => V) => V
>g : <T>(x: T, y: T) => T
var b = baz(b, b, g); // Should be number | string
>b : string | number
>baz(b, b, g) : string | number
>baz : <T, U>(x: T, y: T, cb: (x: T, y: T) => U) => U
>b : string | number
>b : string | number
>g : <T>(x: T, y: T) => T
var d: number[] | string[];
>d : string[] | number[]
var d = foo(h); // Should be number[] | string[]
>d : string[] | number[]
>foo(h) : string[] | number[]
>foo : <T>(cb: (x: number, y: string) => T) => T
>h : <T, U>(x: T, y: U) => T[] | U[]
var d = bar(1, "one", h); // Should be number[] | string[]
>d : string[] | number[]
>bar(1, "one", h) : string[] | number[]
>bar : <T, U, V>(x: T, y: U, cb: (x: T, y: U) => V) => V
>h : <T, U>(x: T, y: U) => T[] | U[]
var d = bar("one", 1, h); // Should be number[] | string[]
>d : string[] | number[]
>bar("one", 1, h) : string[] | number[]
>bar : <T, U, V>(x: T, y: U, cb: (x: T, y: U) => V) => V
>h : <T, U>(x: T, y: U) => T[] | U[]
var d = baz(d, d, g); // Should be number[] | string[]
>d : string[] | number[]
>baz(d, d, g) : string[] | number[]
>baz : <T, U>(x: T, y: T, cb: (x: T, y: T) => U) => U
>d : string[] | number[]
>d : string[] | number[]
>g : <T>(x: T, y: T) => T
@@ -1,4 +1,4 @@
tests/cases/compiler/contextualTyping21.ts(1,36): error TS2322: Type 'Array<number | { id: number; }>' is not assignable to type '{ id: number; }[]':
tests/cases/compiler/contextualTyping21.ts(1,36): error TS2322: Type '(number | { id: number; })[]' is not assignable to type '{ id: number; }[]':
Type 'number | { id: number; }' is not assignable to type '{ id: number; }':
Type 'number' is not assignable to type '{ id: number; }':
Property 'id' is missing in type 'Number'.
@@ -7,7 +7,7 @@ tests/cases/compiler/contextualTyping21.ts(1,36): error TS2322: Type 'Array<numb
==== tests/cases/compiler/contextualTyping21.ts (1 errors) ====
var foo:{id:number;}[] = [{id:1}]; foo = [{id:1}, 1];
~~~
!!! error TS2322: Type 'Array<number | { id: number; }>' is not assignable to type '{ id: number; }[]':
!!! error TS2322: Type '(number | { id: number; })[]' is not assignable to type '{ id: number; }[]':
!!! error TS2322: Type 'number | { id: number; }' is not assignable to type '{ id: number; }':
!!! error TS2322: Type 'number' is not assignable to type '{ id: number; }':
!!! error TS2322: Property 'id' is missing in type 'Number'.
@@ -1,4 +1,4 @@
tests/cases/compiler/contextualTyping30.ts(1,37): error TS2345: Argument of type 'Array<string | number>' is not assignable to parameter of type 'number[]'.
tests/cases/compiler/contextualTyping30.ts(1,37): error TS2345: Argument of type '(string | number)[]' is not assignable to parameter of type 'number[]'.
Type 'string | number' is not assignable to type 'number':
Type 'string' is not assignable to type 'number'.
@@ -6,6 +6,6 @@ tests/cases/compiler/contextualTyping30.ts(1,37): error TS2345: Argument of type
==== tests/cases/compiler/contextualTyping30.ts (1 errors) ====
function foo(param:number[]){}; foo([1, "a"]);
~~~~~~~~
!!! error TS2345: Argument of type 'Array<string | number>' is not assignable to parameter of type 'number[]'.
!!! error TS2345: Argument of type '(string | number)[]' is not assignable to parameter of type 'number[]'.
!!! error TS2345: Type 'string | number' is not assignable to type 'number':
!!! error TS2345: Type 'string' is not assignable to type 'number'.
@@ -5,7 +5,7 @@ function foo(param: {():number; (i:number):number; }[]) { }; foo([function(){ret
>i : number
>foo([function(){return 1;}, function(){return 4}]) : void
>foo : (param: { (): number; (i: number): number; }[]) => void
>[function(){return 1;}, function(){return 4}] : { (): number; }[]
>[function(){return 1;}, function(){return 4}] : (() => number)[]
>function(){return 1;} : () => number
>function(){return 4} : () => number
@@ -1,11 +1,11 @@
tests/cases/compiler/contextualTyping33.ts(1,66): error TS2345: Argument of type 'Array<{ (): number; } | { (): string; }>' is not assignable to parameter of type '{ (): number; (i: number): number; }[]'.
Type '{ (): number; } | { (): string; }' is not assignable to type '{ (): number; (i: number): number; }':
tests/cases/compiler/contextualTyping33.ts(1,66): error TS2345: Argument of type '((() => number) | (() => string))[]' is not assignable to parameter of type '{ (): number; (i: number): number; }[]'.
Type '(() => number) | (() => string)' is not assignable to type '{ (): number; (i: number): number; }':
Type '() => string' is not assignable to type '{ (): number; (i: number): number; }'.
==== tests/cases/compiler/contextualTyping33.ts (1 errors) ====
function foo(param: {():number; (i:number):number; }[]) { }; foo([function(){return 1;}, function(){return "foo"}]);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2345: Argument of type 'Array<{ (): number; } | { (): string; }>' is not assignable to parameter of type '{ (): number; (i: number): number; }[]'.
!!! error TS2345: Type '{ (): number; } | { (): string; }' is not assignable to type '{ (): number; (i: number): number; }':
!!! error TS2345: Argument of type '((() => number) | (() => string))[]' is not assignable to parameter of type '{ (): number; (i: number): number; }[]'.
!!! error TS2345: Type '(() => number) | (() => string)' is not assignable to type '{ (): number; (i: number): number; }':
!!! error TS2345: Type '() => string' is not assignable to type '{ (): number; (i: number): number; }'.
@@ -23,8 +23,8 @@ class C extends A {
}
var xs = [(x: A) => { }, (x: B) => { }, (x: C) => { }];
>xs : { (x: A): void; }[]
>[(x: A) => { }, (x: B) => { }, (x: C) => { }] : { (x: A): void; }[]
>xs : ((x: A) => void)[]
>[(x: A) => { }, (x: B) => { }, (x: C) => { }] : ((x: A) => void)[]
>(x: A) => { } : (x: A) => void
>x : A
>A : A
@@ -1,4 +1,4 @@
tests/cases/compiler/contextualTypingOfArrayLiterals1.ts(5,5): error TS2322: Type 'Array<number | Date>' is not assignable to type 'I':
tests/cases/compiler/contextualTypingOfArrayLiterals1.ts(5,5): error TS2322: Type '(number | Date)[]' is not assignable to type 'I':
Index signatures are incompatible:
Type 'number | Date' is not assignable to type 'Date':
Type 'number' is not assignable to type 'Date':
@@ -12,7 +12,7 @@ tests/cases/compiler/contextualTypingOfArrayLiterals1.ts(5,5): error TS2322: Typ
var x3: I = [new Date(), 1];
~~
!!! error TS2322: Type 'Array<number | Date>' is not assignable to type 'I':
!!! error TS2322: Type '(number | Date)[]' is not assignable to type 'I':
!!! error TS2322: Index signatures are incompatible:
!!! error TS2322: Type 'number | Date' is not assignable to type 'Date':
!!! error TS2322: Type 'number' is not assignable to type 'Date':
@@ -1,4 +1,4 @@
tests/cases/compiler/contextualTypingOfConditionalExpression2.ts(11,5): error TS2322: Type '{ (a: C): number; } | { (b: number): void; }' is not assignable to type '(a: A) => void':
tests/cases/compiler/contextualTypingOfConditionalExpression2.ts(11,5): error TS2322: Type '((a: C) => number) | ((b: number) => void)' is not assignable to type '(a: A) => void':
Type '(b: number) => void' is not assignable to type '(a: A) => void':
Types of parameters 'b' and 'a' are incompatible:
Type 'number' is not assignable to type 'A':
@@ -18,7 +18,7 @@ tests/cases/compiler/contextualTypingOfConditionalExpression2.ts(11,5): error TS
var x2: (a: A) => void = true ? (a: C) => a.foo : (b: number) => { };
~~
!!! error TS2322: Type '{ (a: C): number; } | { (b: number): void; }' is not assignable to type '(a: A) => void':
!!! error TS2322: Type '((a: C) => number) | ((b: number) => void)' is not assignable to type '(a: A) => void':
!!! error TS2322: Type '(b: number) => void' is not assignable to type '(a: A) => void':
!!! error TS2322: Types of parameters 'b' and 'a' are incompatible:
!!! error TS2322: Type 'number' is not assignable to type 'A':
@@ -17,10 +17,10 @@ var v: { a: (_: string) => number } = { a: s => s.length } || { a: s => 1 };
>s : string
var v2 = (s: string) => s.length || function (s) { s.length };
>v2 : (s: string) => number | { (s: any): void; }
>(s: string) => s.length || function (s) { s.length } : (s: string) => number | { (s: any): void; }
>v2 : (s: string) => number | ((s: any) => void)
>(s: string) => s.length || function (s) { s.length } : (s: string) => number | ((s: any) => void)
>s : string
>s.length || function (s) { s.length } : number | { (s: any): void; }
>s.length || function (s) { s.length } : number | ((s: any) => void)
>s.length : number
>s : string
>length : number
@@ -31,10 +31,10 @@ var v2 = (s: string) => s.length || function (s) { s.length };
>length : any
var v3 = (s: string) => s.length || function (s: number) { return 1 };
>v3 : (s: string) => number | { (s: number): number; }
>(s: string) => s.length || function (s: number) { return 1 } : (s: string) => number | { (s: number): number; }
>v3 : (s: string) => number | ((s: number) => number)
>(s: string) => s.length || function (s: number) { return 1 } : (s: string) => number | ((s: number) => number)
>s : string
>s.length || function (s: number) { return 1 } : number | { (s: number): number; }
>s.length || function (s: number) { return 1 } : number | ((s: number) => number)
>s.length : number
>s : string
>length : number
@@ -42,10 +42,10 @@ var v3 = (s: string) => s.length || function (s: number) { return 1 };
>s : number
var v4 = (s: number) => 1 || function (s: string) { return s.length };
>v4 : (s: number) => number | { (s: string): number; }
>(s: number) => 1 || function (s: string) { return s.length } : (s: number) => number | { (s: string): number; }
>v4 : (s: number) => number | ((s: string) => number)
>(s: number) => 1 || function (s: string) { return s.length } : (s: number) => number | ((s: string) => number)
>s : number
>1 || function (s: string) { return s.length } : number | { (s: string): number; }
>1 || function (s: string) { return s.length } : number | ((s: string) => number)
>function (s: string) { return s.length } : (s: string) => number
>s : string
>s.length : number
@@ -17,10 +17,10 @@ var v: { a: (_: string) => number } = { a: s => s.length } || { a: s => 1 };
>s : string
var v2 = (s: string) => s.length || function (s) { s.aaa };
>v2 : (s: string) => number | { (s: any): void; }
>(s: string) => s.length || function (s) { s.aaa } : (s: string) => number | { (s: any): void; }
>v2 : (s: string) => number | ((s: any) => void)
>(s: string) => s.length || function (s) { s.aaa } : (s: string) => number | ((s: any) => void)
>s : string
>s.length || function (s) { s.aaa } : number | { (s: any): void; }
>s.length || function (s) { s.aaa } : number | ((s: any) => void)
>s.length : number
>s : string
>length : number
@@ -49,7 +49,7 @@ b = d2;
var r: Base[] = [d1, d2];
>r : Base[]
>Base : Base
>[d1, d2] : Array<Derived | Derived2>
>[d1, d2] : (Derived | Derived2)[]
>d1 : Derived
>d2 : Derived2
+4 -4
View File
@@ -157,8 +157,8 @@ enum E9 {
// (refer to .js to validate)
// Enum constant members are propagated
var doNotPropagate = [
>doNotPropagate : Array<E3 | E4 | E7 | E8>
>[ E8.B, E7.A, E4.Z, E3.X, E3.Y, E3.Z] : Array<E3 | E4 | E7 | E8>
>doNotPropagate : (E3 | E4 | E7 | E8)[]
>[ E8.B, E7.A, E4.Z, E3.X, E3.Y, E3.Z] : (E3 | E4 | E7 | E8)[]
E8.B, E7.A, E4.Z, E3.X, E3.Y, E3.Z
>E8.B : E8
@@ -183,8 +183,8 @@ var doNotPropagate = [
];
// Enum computed members are not propagated
var doPropagate = [
>doPropagate : Array<E5 | E6 | E9>
>[ E9.A, E9.B, E6.B, E6.C, E6.A, E5.A, E5.B, E5.C] : Array<E5 | E6 | E9>
>doPropagate : (E5 | E6 | E9)[]
>[ E9.A, E9.B, E6.B, E6.C, E6.A, E5.A, E5.B, E5.C] : (E5 | E6 | E9)[]
E9.A, E9.B, E6.B, E6.C, E6.A, E5.A, E5.B, E5.C
>E9.A : E9
@@ -1,25 +1,22 @@
tests/cases/compiler/enumIdentifierLiterals.ts(2,5): error TS1151: An enum member cannot have a numeric name.
tests/cases/compiler/enumIdentifierLiterals.ts(3,5): error TS1151: An enum member cannot have a numeric name.
tests/cases/compiler/enumIdentifierLiterals.ts(4,5): error TS1151: An enum member cannot have a numeric name.
tests/cases/compiler/enumIdentifierLiterals.ts(5,5): error TS1151: An enum member cannot have a numeric name.
tests/cases/compiler/enumIdentifierLiterals.ts(6,5): error TS1151: An enum member cannot have a numeric name.
tests/cases/compiler/enumIdentifierLiterals.ts(2,5): error TS2452: An enum member cannot have a numeric name.
tests/cases/compiler/enumIdentifierLiterals.ts(3,5): error TS2452: An enum member cannot have a numeric name.
tests/cases/compiler/enumIdentifierLiterals.ts(4,5): error TS2452: An enum member cannot have a numeric name.
tests/cases/compiler/enumIdentifierLiterals.ts(6,5): error TS2452: An enum member cannot have a numeric name.
==== tests/cases/compiler/enumIdentifierLiterals.ts (5 errors) ====
==== tests/cases/compiler/enumIdentifierLiterals.ts (4 errors) ====
enum Nums {
1.0,
~~~
!!! error TS1151: An enum member cannot have a numeric name.
!!! error TS2452: An enum member cannot have a numeric name.
11e-1,
~~~~~
!!! error TS1151: An enum member cannot have a numeric name.
!!! error TS2452: An enum member cannot have a numeric name.
0.12e1,
~~~~~~
!!! error TS1151: An enum member cannot have a numeric name.
!!! error TS2452: An enum member cannot have a numeric name.
"13e-1",
~~~~~~~
!!! error TS1151: An enum member cannot have a numeric name.
0xF00D
~~~~~~
!!! error TS1151: An enum member cannot have a numeric name.
!!! error TS2452: An enum member cannot have a numeric name.
}
+31
View File
@@ -0,0 +1,31 @@
//// [es6-amd.ts]
class A
{
constructor ()
{
}
public B()
{
return 42;
}
}
//// [es6-amd.js]
var A = (function () {
function A() {
}
A.prototype.B = function () {
return 42;
};
return A;
})();
//# sourceMappingURL=es6-amd.js.map
//// [es6-amd.d.ts]
declare class A {
constructor();
B(): number;
}
+2
View File
@@ -0,0 +1,2 @@
//// [es6-amd.js.map]
{"version":3,"file":"es6-amd.js","sourceRoot":"","sources":["es6-amd.ts"],"names":["A","A.constructor","A.B"],"mappings":"AACA,IAAM,CAAC;IAEHA,SAFEA,CAACA;IAKHC,CAACA;IAEMD,aAACA,GAARA;QAEIE,MAAMA,CAACA,EAAEA,CAACA;IACdA,CAACA;IACLF,QAACA;AAADA,CAACA,AAXD,IAWC"}
@@ -0,0 +1,128 @@
===================================================================
JsFile: es6-amd.js
mapUrl: es6-amd.js.map
sourceRoot:
sources: es6-amd.ts
===================================================================
-------------------------------------------------------------------
emittedFile:tests/cases/compiler/es6-amd.js
sourceFile:es6-amd.ts
-------------------------------------------------------------------
>>>var A = (function () {
1 >
2 >^^^^
3 > ^
4 > ^^^^^^^^^^^^^^->
1 >
>
2 >class
3 > A
1 >Emitted(1, 1) Source(2, 1) + SourceIndex(0)
2 >Emitted(1, 5) Source(2, 7) + SourceIndex(0)
3 >Emitted(1, 6) Source(2, 8) + SourceIndex(0)
---
>>> function A() {
1->^^^^
2 > ^^^^^^^^^
3 > ^
1->
>{
>
2 >
3 > A
1->Emitted(2, 5) Source(4, 5) + SourceIndex(0) name (A)
2 >Emitted(2, 14) Source(2, 7) + SourceIndex(0) name (A)
3 >Emitted(2, 15) Source(2, 8) + SourceIndex(0) name (A)
---
>>> }
1 >^^^^
2 > ^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
>{
> constructor ()
> {
>
>
2 > }
1 >Emitted(3, 5) Source(7, 5) + SourceIndex(0) name (A.constructor)
2 >Emitted(3, 6) Source(7, 6) + SourceIndex(0) name (A.constructor)
---
>>> A.prototype.B = function () {
1->^^^^
2 > ^^^^^^^^^^^^^
3 > ^^^
1->
>
> public
2 > B
3 >
1->Emitted(4, 5) Source(9, 12) + SourceIndex(0) name (A)
2 >Emitted(4, 18) Source(9, 13) + SourceIndex(0) name (A)
3 >Emitted(4, 21) Source(9, 5) + SourceIndex(0) name (A)
---
>>> return 42;
1 >^^^^^^^^
2 > ^^^^^^
3 > ^
4 > ^^
5 > ^
1 >public B()
> {
>
2 > return
3 >
4 > 42
5 > ;
1 >Emitted(5, 9) Source(11, 9) + SourceIndex(0) name (A.B)
2 >Emitted(5, 15) Source(11, 15) + SourceIndex(0) name (A.B)
3 >Emitted(5, 16) Source(11, 16) + SourceIndex(0) name (A.B)
4 >Emitted(5, 18) Source(11, 18) + SourceIndex(0) name (A.B)
5 >Emitted(5, 19) Source(11, 19) + SourceIndex(0) name (A.B)
---
>>> };
1 >^^^^
2 > ^
3 > ^^^^^^^^^->
1 >
>
2 > }
1 >Emitted(6, 5) Source(12, 5) + SourceIndex(0) name (A.B)
2 >Emitted(6, 6) Source(12, 6) + SourceIndex(0) name (A.B)
---
>>> return A;
1->^^^^
2 > ^^^^^^^^
1->
>
2 > }
1->Emitted(7, 5) Source(13, 1) + SourceIndex(0) name (A)
2 >Emitted(7, 13) Source(13, 2) + SourceIndex(0) name (A)
---
>>>})();
1 >
2 >^
3 >
4 > ^^^^
5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
2 >}
3 >
4 > class A
> {
> constructor ()
> {
>
> }
>
> public B()
> {
> return 42;
> }
> }
1 >Emitted(8, 1) Source(13, 1) + SourceIndex(0) name (A)
2 >Emitted(8, 2) Source(13, 2) + SourceIndex(0) name (A)
3 >Emitted(8, 2) Source(2, 1) + SourceIndex(0)
4 >Emitted(8, 6) Source(13, 2) + SourceIndex(0)
---
>>>//# sourceMappingURL=es6-amd.js.map
+16
View File
@@ -0,0 +1,16 @@
=== tests/cases/compiler/es6-amd.ts ===
class A
>A : A
{
constructor ()
{
}
public B()
>B : () => number
{
return 42;
}
}
@@ -0,0 +1,31 @@
//// [es6-declaration-amd.ts]
class A
{
constructor ()
{
}
public B()
{
return 42;
}
}
//// [es6-declaration-amd.js]
var A = (function () {
function A() {
}
A.prototype.B = function () {
return 42;
};
return A;
})();
//# sourceMappingURL=es6-declaration-amd.js.map
//// [es6-declaration-amd.d.ts]
declare class A {
constructor();
B(): number;
}
@@ -0,0 +1,2 @@
//// [es6-declaration-amd.js.map]
{"version":3,"file":"es6-declaration-amd.js","sourceRoot":"","sources":["es6-declaration-amd.ts"],"names":["A","A.constructor","A.B"],"mappings":"AACA,IAAM,CAAC;IAEHA,SAFEA,CAACA;IAKHC,CAACA;IAEMD,aAACA,GAARA;QAEIE,MAAMA,CAACA,EAAEA,CAACA;IACdA,CAACA;IACLF,QAACA;AAADA,CAACA,AAXD,IAWC"}
@@ -0,0 +1,128 @@
===================================================================
JsFile: es6-declaration-amd.js
mapUrl: es6-declaration-amd.js.map
sourceRoot:
sources: es6-declaration-amd.ts
===================================================================
-------------------------------------------------------------------
emittedFile:tests/cases/compiler/es6-declaration-amd.js
sourceFile:es6-declaration-amd.ts
-------------------------------------------------------------------
>>>var A = (function () {
1 >
2 >^^^^
3 > ^
4 > ^^^^^^^^^^^^^^->
1 >
>
2 >class
3 > A
1 >Emitted(1, 1) Source(2, 1) + SourceIndex(0)
2 >Emitted(1, 5) Source(2, 7) + SourceIndex(0)
3 >Emitted(1, 6) Source(2, 8) + SourceIndex(0)
---
>>> function A() {
1->^^^^
2 > ^^^^^^^^^
3 > ^
1->
>{
>
2 >
3 > A
1->Emitted(2, 5) Source(4, 5) + SourceIndex(0) name (A)
2 >Emitted(2, 14) Source(2, 7) + SourceIndex(0) name (A)
3 >Emitted(2, 15) Source(2, 8) + SourceIndex(0) name (A)
---
>>> }
1 >^^^^
2 > ^
3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
>{
> constructor ()
> {
>
>
2 > }
1 >Emitted(3, 5) Source(7, 5) + SourceIndex(0) name (A.constructor)
2 >Emitted(3, 6) Source(7, 6) + SourceIndex(0) name (A.constructor)
---
>>> A.prototype.B = function () {
1->^^^^
2 > ^^^^^^^^^^^^^
3 > ^^^
1->
>
> public
2 > B
3 >
1->Emitted(4, 5) Source(9, 12) + SourceIndex(0) name (A)
2 >Emitted(4, 18) Source(9, 13) + SourceIndex(0) name (A)
3 >Emitted(4, 21) Source(9, 5) + SourceIndex(0) name (A)
---
>>> return 42;
1 >^^^^^^^^
2 > ^^^^^^
3 > ^
4 > ^^
5 > ^
1 >public B()
> {
>
2 > return
3 >
4 > 42
5 > ;
1 >Emitted(5, 9) Source(11, 9) + SourceIndex(0) name (A.B)
2 >Emitted(5, 15) Source(11, 15) + SourceIndex(0) name (A.B)
3 >Emitted(5, 16) Source(11, 16) + SourceIndex(0) name (A.B)
4 >Emitted(5, 18) Source(11, 18) + SourceIndex(0) name (A.B)
5 >Emitted(5, 19) Source(11, 19) + SourceIndex(0) name (A.B)
---
>>> };
1 >^^^^
2 > ^
3 > ^^^^^^^^^->
1 >
>
2 > }
1 >Emitted(6, 5) Source(12, 5) + SourceIndex(0) name (A.B)
2 >Emitted(6, 6) Source(12, 6) + SourceIndex(0) name (A.B)
---
>>> return A;
1->^^^^
2 > ^^^^^^^^
1->
>
2 > }
1->Emitted(7, 5) Source(13, 1) + SourceIndex(0) name (A)
2 >Emitted(7, 13) Source(13, 2) + SourceIndex(0) name (A)
---
>>>})();
1 >
2 >^
3 >
4 > ^^^^
5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^->
1 >
2 >}
3 >
4 > class A
> {
> constructor ()
> {
>
> }
>
> public B()
> {
> return 42;
> }
> }
1 >Emitted(8, 1) Source(13, 1) + SourceIndex(0) name (A)
2 >Emitted(8, 2) Source(13, 2) + SourceIndex(0) name (A)
3 >Emitted(8, 2) Source(2, 1) + SourceIndex(0)
4 >Emitted(8, 6) Source(13, 2) + SourceIndex(0)
---
>>>//# sourceMappingURL=es6-declaration-amd.js.map
@@ -0,0 +1,16 @@
=== tests/cases/compiler/es6-declaration-amd.ts ===
class A
>A : A
{
constructor ()
{
}
public B()
>B : () => number
{
return 42;
}
}
@@ -0,0 +1,25 @@
//// [es6-sourcemap-amd.ts]
class A
{
constructor ()
{
}
public B()
{
return 42;
}
}
//// [es6-sourcemap-amd.js]
var A = (function () {
function A() {
}
A.prototype.B = function () {
return 42;
};
return A;
})();
//# sourceMappingURL=es6-sourcemap-amd.js.map

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