(4, 5, 6);
//// [parserX_TypeArgumentList1.js]
-Foo(4, 5, 6);
+Foo < A, B, ;
+C > (4, 5, 6);
diff --git a/tests/baselines/reference/tsxCorrectlyParseLessThanComparison1.js b/tests/baselines/reference/tsxCorrectlyParseLessThanComparison1.js
new file mode 100644
index 00000000000..d466bb3ea3f
--- /dev/null
+++ b/tests/baselines/reference/tsxCorrectlyParseLessThanComparison1.js
@@ -0,0 +1,41 @@
+//// [tsxCorrectlyParseLessThanComparison1.tsx]
+declare module JSX {
+ interface Element {
+ div: string;
+ }
+}
+declare namespace React {
+ class Component {
+ constructor(props?: P, context?: any);
+ props: P;
+ }
+}
+
+export class ShortDetails extends React.Component<{ id: number }, {}> {
+ public render(): JSX.Element {
+ if (this.props.id < 1) {
+ return (
);
+ }
+ }
+}
+
+//// [tsxCorrectlyParseLessThanComparison1.js]
+"use strict";
+var __extends = (this && this.__extends) || function (d, b) {
+ for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+};
+var ShortDetails = (function (_super) {
+ __extends(ShortDetails, _super);
+ function ShortDetails() {
+ _super.apply(this, arguments);
+ }
+ ShortDetails.prototype.render = function () {
+ if (this.props.id < 1) {
+ return (React.createElement("div", null));
+ }
+ };
+ return ShortDetails;
+}(React.Component));
+exports.ShortDetails = ShortDetails;
diff --git a/tests/baselines/reference/tsxCorrectlyParseLessThanComparison1.symbols b/tests/baselines/reference/tsxCorrectlyParseLessThanComparison1.symbols
new file mode 100644
index 00000000000..d00b4ca115f
--- /dev/null
+++ b/tests/baselines/reference/tsxCorrectlyParseLessThanComparison1.symbols
@@ -0,0 +1,55 @@
+=== tests/cases/conformance/jsx/tsxCorrectlyParseLessThanComparison1.tsx ===
+declare module JSX {
+>JSX : Symbol(JSX, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 0, 0))
+
+ interface Element {
+>Element : Symbol(Element, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 0, 20))
+
+ div: string;
+>div : Symbol(Element.div, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 1, 23))
+ }
+}
+declare namespace React {
+>React : Symbol(React, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 4, 1))
+
+ class Component {
+>Component : Symbol(Component, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 5, 25))
+>P : Symbol(P, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 6, 20))
+>S : Symbol(S, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 6, 22))
+
+ constructor(props?: P, context?: any);
+>props : Symbol(props, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 7, 20))
+>P : Symbol(P, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 6, 20))
+>context : Symbol(context, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 7, 30))
+
+ props: P;
+>props : Symbol(Component.props, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 7, 46))
+>P : Symbol(P, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 6, 20))
+ }
+}
+
+export class ShortDetails extends React.Component<{ id: number }, {}> {
+>ShortDetails : Symbol(ShortDetails, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 10, 1))
+>React.Component : Symbol(React.Component, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 5, 25))
+>React : Symbol(React, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 4, 1))
+>Component : Symbol(React.Component, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 5, 25))
+>id : Symbol(id, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 12, 51))
+
+ public render(): JSX.Element {
+>render : Symbol(ShortDetails.render, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 12, 71))
+>JSX : Symbol(JSX, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 0, 0))
+>Element : Symbol(JSX.Element, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 0, 20))
+
+ if (this.props.id < 1) {
+>this.props.id : Symbol(id, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 12, 51))
+>this.props : Symbol(React.Component.props, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 7, 46))
+>this : Symbol(ShortDetails, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 10, 1))
+>props : Symbol(React.Component.props, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 7, 46))
+>id : Symbol(id, Decl(tsxCorrectlyParseLessThanComparison1.tsx, 12, 51))
+
+ return (
);
+>div : Symbol(unknown)
+>div : Symbol(unknown)
+ }
+ }
+}
diff --git a/tests/baselines/reference/tsxCorrectlyParseLessThanComparison1.types b/tests/baselines/reference/tsxCorrectlyParseLessThanComparison1.types
new file mode 100644
index 00000000000..0d97ed87784
--- /dev/null
+++ b/tests/baselines/reference/tsxCorrectlyParseLessThanComparison1.types
@@ -0,0 +1,59 @@
+=== tests/cases/conformance/jsx/tsxCorrectlyParseLessThanComparison1.tsx ===
+declare module JSX {
+>JSX : any
+
+ interface Element {
+>Element : Element
+
+ div: string;
+>div : string
+ }
+}
+declare namespace React {
+>React : typeof React
+
+ class Component {
+>Component : Component
+>P : P
+>S : S
+
+ constructor(props?: P, context?: any);
+>props : P
+>P : P
+>context : any
+
+ props: P;
+>props : P
+>P : P
+ }
+}
+
+export class ShortDetails extends React.Component<{ id: number }, {}> {
+>ShortDetails : ShortDetails
+>React.Component : React.Component<{ id: number; }, {}>
+>React : typeof React
+>Component : typeof React.Component
+>id : number
+
+ public render(): JSX.Element {
+>render : () => JSX.Element
+>JSX : any
+>Element : JSX.Element
+
+ if (this.props.id < 1) {
+>this.props.id < 1 : boolean
+>this.props.id : number
+>this.props : { id: number; }
+>this : this
+>props : { id: number; }
+>id : number
+>1 : 1
+
+ return (
);
+>() : any
+> : any
+>div : any
+>div : any
+ }
+ }
+}
diff --git a/tests/cases/compiler/declarationEmitTypeAliasWithTypeParameters1.ts b/tests/cases/compiler/declarationEmitTypeAliasWithTypeParameters1.ts
new file mode 100644
index 00000000000..ff9042af699
--- /dev/null
+++ b/tests/cases/compiler/declarationEmitTypeAliasWithTypeParameters1.ts
@@ -0,0 +1,5 @@
+// @declaration: true
+
+export type Bar = () => [X, Y];
+export type Foo = Bar;
+export const y = (x: Foo) => 1
\ No newline at end of file
diff --git a/tests/cases/compiler/enumLiteralsSubtypeReduction.ts b/tests/cases/compiler/enumLiteralsSubtypeReduction.ts
new file mode 100644
index 00000000000..613810c469d
--- /dev/null
+++ b/tests/cases/compiler/enumLiteralsSubtypeReduction.ts
@@ -0,0 +1,2054 @@
+enum E {
+ E0,
+ E1,
+ E2,
+ E3,
+ E4,
+ E5,
+ E6,
+ E7,
+ E8,
+ E9,
+ E10,
+ E11,
+ E12,
+ E13,
+ E14,
+ E15,
+ E16,
+ E17,
+ E18,
+ E19,
+ E20,
+ E21,
+ E22,
+ E23,
+ E24,
+ E25,
+ E26,
+ E27,
+ E28,
+ E29,
+ E30,
+ E31,
+ E32,
+ E33,
+ E34,
+ E35,
+ E36,
+ E37,
+ E38,
+ E39,
+ E40,
+ E41,
+ E42,
+ E43,
+ E44,
+ E45,
+ E46,
+ E47,
+ E48,
+ E49,
+ E50,
+ E51,
+ E52,
+ E53,
+ E54,
+ E55,
+ E56,
+ E57,
+ E58,
+ E59,
+ E60,
+ E61,
+ E62,
+ E63,
+ E64,
+ E65,
+ E66,
+ E67,
+ E68,
+ E69,
+ E70,
+ E71,
+ E72,
+ E73,
+ E74,
+ E75,
+ E76,
+ E77,
+ E78,
+ E79,
+ E80,
+ E81,
+ E82,
+ E83,
+ E84,
+ E85,
+ E86,
+ E87,
+ E88,
+ E89,
+ E90,
+ E91,
+ E92,
+ E93,
+ E94,
+ E95,
+ E96,
+ E97,
+ E98,
+ E99,
+ E100,
+ E101,
+ E102,
+ E103,
+ E104,
+ E105,
+ E106,
+ E107,
+ E108,
+ E109,
+ E110,
+ E111,
+ E112,
+ E113,
+ E114,
+ E115,
+ E116,
+ E117,
+ E118,
+ E119,
+ E120,
+ E121,
+ E122,
+ E123,
+ E124,
+ E125,
+ E126,
+ E127,
+ E128,
+ E129,
+ E130,
+ E131,
+ E132,
+ E133,
+ E134,
+ E135,
+ E136,
+ E137,
+ E138,
+ E139,
+ E140,
+ E141,
+ E142,
+ E143,
+ E144,
+ E145,
+ E146,
+ E147,
+ E148,
+ E149,
+ E150,
+ E151,
+ E152,
+ E153,
+ E154,
+ E155,
+ E156,
+ E157,
+ E158,
+ E159,
+ E160,
+ E161,
+ E162,
+ E163,
+ E164,
+ E165,
+ E166,
+ E167,
+ E168,
+ E169,
+ E170,
+ E171,
+ E172,
+ E173,
+ E174,
+ E175,
+ E176,
+ E177,
+ E178,
+ E179,
+ E180,
+ E181,
+ E182,
+ E183,
+ E184,
+ E185,
+ E186,
+ E187,
+ E188,
+ E189,
+ E190,
+ E191,
+ E192,
+ E193,
+ E194,
+ E195,
+ E196,
+ E197,
+ E198,
+ E199,
+ E200,
+ E201,
+ E202,
+ E203,
+ E204,
+ E205,
+ E206,
+ E207,
+ E208,
+ E209,
+ E210,
+ E211,
+ E212,
+ E213,
+ E214,
+ E215,
+ E216,
+ E217,
+ E218,
+ E219,
+ E220,
+ E221,
+ E222,
+ E223,
+ E224,
+ E225,
+ E226,
+ E227,
+ E228,
+ E229,
+ E230,
+ E231,
+ E232,
+ E233,
+ E234,
+ E235,
+ E236,
+ E237,
+ E238,
+ E239,
+ E240,
+ E241,
+ E242,
+ E243,
+ E244,
+ E245,
+ E246,
+ E247,
+ E248,
+ E249,
+ E250,
+ E251,
+ E252,
+ E253,
+ E254,
+ E255,
+ E256,
+ E257,
+ E258,
+ E259,
+ E260,
+ E261,
+ E262,
+ E263,
+ E264,
+ E265,
+ E266,
+ E267,
+ E268,
+ E269,
+ E270,
+ E271,
+ E272,
+ E273,
+ E274,
+ E275,
+ E276,
+ E277,
+ E278,
+ E279,
+ E280,
+ E281,
+ E282,
+ E283,
+ E284,
+ E285,
+ E286,
+ E287,
+ E288,
+ E289,
+ E290,
+ E291,
+ E292,
+ E293,
+ E294,
+ E295,
+ E296,
+ E297,
+ E298,
+ E299,
+ E300,
+ E301,
+ E302,
+ E303,
+ E304,
+ E305,
+ E306,
+ E307,
+ E308,
+ E309,
+ E310,
+ E311,
+ E312,
+ E313,
+ E314,
+ E315,
+ E316,
+ E317,
+ E318,
+ E319,
+ E320,
+ E321,
+ E322,
+ E323,
+ E324,
+ E325,
+ E326,
+ E327,
+ E328,
+ E329,
+ E330,
+ E331,
+ E332,
+ E333,
+ E334,
+ E335,
+ E336,
+ E337,
+ E338,
+ E339,
+ E340,
+ E341,
+ E342,
+ E343,
+ E344,
+ E345,
+ E346,
+ E347,
+ E348,
+ E349,
+ E350,
+ E351,
+ E352,
+ E353,
+ E354,
+ E355,
+ E356,
+ E357,
+ E358,
+ E359,
+ E360,
+ E361,
+ E362,
+ E363,
+ E364,
+ E365,
+ E366,
+ E367,
+ E368,
+ E369,
+ E370,
+ E371,
+ E372,
+ E373,
+ E374,
+ E375,
+ E376,
+ E377,
+ E378,
+ E379,
+ E380,
+ E381,
+ E382,
+ E383,
+ E384,
+ E385,
+ E386,
+ E387,
+ E388,
+ E389,
+ E390,
+ E391,
+ E392,
+ E393,
+ E394,
+ E395,
+ E396,
+ E397,
+ E398,
+ E399,
+ E400,
+ E401,
+ E402,
+ E403,
+ E404,
+ E405,
+ E406,
+ E407,
+ E408,
+ E409,
+ E410,
+ E411,
+ E412,
+ E413,
+ E414,
+ E415,
+ E416,
+ E417,
+ E418,
+ E419,
+ E420,
+ E421,
+ E422,
+ E423,
+ E424,
+ E425,
+ E426,
+ E427,
+ E428,
+ E429,
+ E430,
+ E431,
+ E432,
+ E433,
+ E434,
+ E435,
+ E436,
+ E437,
+ E438,
+ E439,
+ E440,
+ E441,
+ E442,
+ E443,
+ E444,
+ E445,
+ E446,
+ E447,
+ E448,
+ E449,
+ E450,
+ E451,
+ E452,
+ E453,
+ E454,
+ E455,
+ E456,
+ E457,
+ E458,
+ E459,
+ E460,
+ E461,
+ E462,
+ E463,
+ E464,
+ E465,
+ E466,
+ E467,
+ E468,
+ E469,
+ E470,
+ E471,
+ E472,
+ E473,
+ E474,
+ E475,
+ E476,
+ E477,
+ E478,
+ E479,
+ E480,
+ E481,
+ E482,
+ E483,
+ E484,
+ E485,
+ E486,
+ E487,
+ E488,
+ E489,
+ E490,
+ E491,
+ E492,
+ E493,
+ E494,
+ E495,
+ E496,
+ E497,
+ E498,
+ E499,
+ E500,
+ E501,
+ E502,
+ E503,
+ E504,
+ E505,
+ E506,
+ E507,
+ E508,
+ E509,
+ E510,
+ E511,
+ E512,
+ E513,
+ E514,
+ E515,
+ E516,
+ E517,
+ E518,
+ E519,
+ E520,
+ E521,
+ E522,
+ E523,
+ E524,
+ E525,
+ E526,
+ E527,
+ E528,
+ E529,
+ E530,
+ E531,
+ E532,
+ E533,
+ E534,
+ E535,
+ E536,
+ E537,
+ E538,
+ E539,
+ E540,
+ E541,
+ E542,
+ E543,
+ E544,
+ E545,
+ E546,
+ E547,
+ E548,
+ E549,
+ E550,
+ E551,
+ E552,
+ E553,
+ E554,
+ E555,
+ E556,
+ E557,
+ E558,
+ E559,
+ E560,
+ E561,
+ E562,
+ E563,
+ E564,
+ E565,
+ E566,
+ E567,
+ E568,
+ E569,
+ E570,
+ E571,
+ E572,
+ E573,
+ E574,
+ E575,
+ E576,
+ E577,
+ E578,
+ E579,
+ E580,
+ E581,
+ E582,
+ E583,
+ E584,
+ E585,
+ E586,
+ E587,
+ E588,
+ E589,
+ E590,
+ E591,
+ E592,
+ E593,
+ E594,
+ E595,
+ E596,
+ E597,
+ E598,
+ E599,
+ E600,
+ E601,
+ E602,
+ E603,
+ E604,
+ E605,
+ E606,
+ E607,
+ E608,
+ E609,
+ E610,
+ E611,
+ E612,
+ E613,
+ E614,
+ E615,
+ E616,
+ E617,
+ E618,
+ E619,
+ E620,
+ E621,
+ E622,
+ E623,
+ E624,
+ E625,
+ E626,
+ E627,
+ E628,
+ E629,
+ E630,
+ E631,
+ E632,
+ E633,
+ E634,
+ E635,
+ E636,
+ E637,
+ E638,
+ E639,
+ E640,
+ E641,
+ E642,
+ E643,
+ E644,
+ E645,
+ E646,
+ E647,
+ E648,
+ E649,
+ E650,
+ E651,
+ E652,
+ E653,
+ E654,
+ E655,
+ E656,
+ E657,
+ E658,
+ E659,
+ E660,
+ E661,
+ E662,
+ E663,
+ E664,
+ E665,
+ E666,
+ E667,
+ E668,
+ E669,
+ E670,
+ E671,
+ E672,
+ E673,
+ E674,
+ E675,
+ E676,
+ E677,
+ E678,
+ E679,
+ E680,
+ E681,
+ E682,
+ E683,
+ E684,
+ E685,
+ E686,
+ E687,
+ E688,
+ E689,
+ E690,
+ E691,
+ E692,
+ E693,
+ E694,
+ E695,
+ E696,
+ E697,
+ E698,
+ E699,
+ E700,
+ E701,
+ E702,
+ E703,
+ E704,
+ E705,
+ E706,
+ E707,
+ E708,
+ E709,
+ E710,
+ E711,
+ E712,
+ E713,
+ E714,
+ E715,
+ E716,
+ E717,
+ E718,
+ E719,
+ E720,
+ E721,
+ E722,
+ E723,
+ E724,
+ E725,
+ E726,
+ E727,
+ E728,
+ E729,
+ E730,
+ E731,
+ E732,
+ E733,
+ E734,
+ E735,
+ E736,
+ E737,
+ E738,
+ E739,
+ E740,
+ E741,
+ E742,
+ E743,
+ E744,
+ E745,
+ E746,
+ E747,
+ E748,
+ E749,
+ E750,
+ E751,
+ E752,
+ E753,
+ E754,
+ E755,
+ E756,
+ E757,
+ E758,
+ E759,
+ E760,
+ E761,
+ E762,
+ E763,
+ E764,
+ E765,
+ E766,
+ E767,
+ E768,
+ E769,
+ E770,
+ E771,
+ E772,
+ E773,
+ E774,
+ E775,
+ E776,
+ E777,
+ E778,
+ E779,
+ E780,
+ E781,
+ E782,
+ E783,
+ E784,
+ E785,
+ E786,
+ E787,
+ E788,
+ E789,
+ E790,
+ E791,
+ E792,
+ E793,
+ E794,
+ E795,
+ E796,
+ E797,
+ E798,
+ E799,
+ E800,
+ E801,
+ E802,
+ E803,
+ E804,
+ E805,
+ E806,
+ E807,
+ E808,
+ E809,
+ E810,
+ E811,
+ E812,
+ E813,
+ E814,
+ E815,
+ E816,
+ E817,
+ E818,
+ E819,
+ E820,
+ E821,
+ E822,
+ E823,
+ E824,
+ E825,
+ E826,
+ E827,
+ E828,
+ E829,
+ E830,
+ E831,
+ E832,
+ E833,
+ E834,
+ E835,
+ E836,
+ E837,
+ E838,
+ E839,
+ E840,
+ E841,
+ E842,
+ E843,
+ E844,
+ E845,
+ E846,
+ E847,
+ E848,
+ E849,
+ E850,
+ E851,
+ E852,
+ E853,
+ E854,
+ E855,
+ E856,
+ E857,
+ E858,
+ E859,
+ E860,
+ E861,
+ E862,
+ E863,
+ E864,
+ E865,
+ E866,
+ E867,
+ E868,
+ E869,
+ E870,
+ E871,
+ E872,
+ E873,
+ E874,
+ E875,
+ E876,
+ E877,
+ E878,
+ E879,
+ E880,
+ E881,
+ E882,
+ E883,
+ E884,
+ E885,
+ E886,
+ E887,
+ E888,
+ E889,
+ E890,
+ E891,
+ E892,
+ E893,
+ E894,
+ E895,
+ E896,
+ E897,
+ E898,
+ E899,
+ E900,
+ E901,
+ E902,
+ E903,
+ E904,
+ E905,
+ E906,
+ E907,
+ E908,
+ E909,
+ E910,
+ E911,
+ E912,
+ E913,
+ E914,
+ E915,
+ E916,
+ E917,
+ E918,
+ E919,
+ E920,
+ E921,
+ E922,
+ E923,
+ E924,
+ E925,
+ E926,
+ E927,
+ E928,
+ E929,
+ E930,
+ E931,
+ E932,
+ E933,
+ E934,
+ E935,
+ E936,
+ E937,
+ E938,
+ E939,
+ E940,
+ E941,
+ E942,
+ E943,
+ E944,
+ E945,
+ E946,
+ E947,
+ E948,
+ E949,
+ E950,
+ E951,
+ E952,
+ E953,
+ E954,
+ E955,
+ E956,
+ E957,
+ E958,
+ E959,
+ E960,
+ E961,
+ E962,
+ E963,
+ E964,
+ E965,
+ E966,
+ E967,
+ E968,
+ E969,
+ E970,
+ E971,
+ E972,
+ E973,
+ E974,
+ E975,
+ E976,
+ E977,
+ E978,
+ E979,
+ E980,
+ E981,
+ E982,
+ E983,
+ E984,
+ E985,
+ E986,
+ E987,
+ E988,
+ E989,
+ E990,
+ E991,
+ E992,
+ E993,
+ E994,
+ E995,
+ E996,
+ E997,
+ E998,
+ E999,
+ E1000,
+ E1001,
+ E1002,
+ E1003,
+ E1004,
+ E1005,
+ E1006,
+ E1007,
+ E1008,
+ E1009,
+ E1010,
+ E1011,
+ E1012,
+ E1013,
+ E1014,
+ E1015,
+ E1016,
+ E1017,
+ E1018,
+ E1019,
+ E1020,
+ E1021,
+ E1022,
+ E1023,
+}
+function run(a: number) {
+ switch (a) {
+ case 0:
+ return [ E.E0, E.E1]
+ case 2:
+ return [ E.E2, E.E3]
+ case 4:
+ return [ E.E4, E.E5]
+ case 6:
+ return [ E.E6, E.E7]
+ case 8:
+ return [ E.E8, E.E9]
+ case 10:
+ return [ E.E10, E.E11]
+ case 12:
+ return [ E.E12, E.E13]
+ case 14:
+ return [ E.E14, E.E15]
+ case 16:
+ return [ E.E16, E.E17]
+ case 18:
+ return [ E.E18, E.E19]
+ case 20:
+ return [ E.E20, E.E21]
+ case 22:
+ return [ E.E22, E.E23]
+ case 24:
+ return [ E.E24, E.E25]
+ case 26:
+ return [ E.E26, E.E27]
+ case 28:
+ return [ E.E28, E.E29]
+ case 30:
+ return [ E.E30, E.E31]
+ case 32:
+ return [ E.E32, E.E33]
+ case 34:
+ return [ E.E34, E.E35]
+ case 36:
+ return [ E.E36, E.E37]
+ case 38:
+ return [ E.E38, E.E39]
+ case 40:
+ return [ E.E40, E.E41]
+ case 42:
+ return [ E.E42, E.E43]
+ case 44:
+ return [ E.E44, E.E45]
+ case 46:
+ return [ E.E46, E.E47]
+ case 48:
+ return [ E.E48, E.E49]
+ case 50:
+ return [ E.E50, E.E51]
+ case 52:
+ return [ E.E52, E.E53]
+ case 54:
+ return [ E.E54, E.E55]
+ case 56:
+ return [ E.E56, E.E57]
+ case 58:
+ return [ E.E58, E.E59]
+ case 60:
+ return [ E.E60, E.E61]
+ case 62:
+ return [ E.E62, E.E63]
+ case 64:
+ return [ E.E64, E.E65]
+ case 66:
+ return [ E.E66, E.E67]
+ case 68:
+ return [ E.E68, E.E69]
+ case 70:
+ return [ E.E70, E.E71]
+ case 72:
+ return [ E.E72, E.E73]
+ case 74:
+ return [ E.E74, E.E75]
+ case 76:
+ return [ E.E76, E.E77]
+ case 78:
+ return [ E.E78, E.E79]
+ case 80:
+ return [ E.E80, E.E81]
+ case 82:
+ return [ E.E82, E.E83]
+ case 84:
+ return [ E.E84, E.E85]
+ case 86:
+ return [ E.E86, E.E87]
+ case 88:
+ return [ E.E88, E.E89]
+ case 90:
+ return [ E.E90, E.E91]
+ case 92:
+ return [ E.E92, E.E93]
+ case 94:
+ return [ E.E94, E.E95]
+ case 96:
+ return [ E.E96, E.E97]
+ case 98:
+ return [ E.E98, E.E99]
+ case 100:
+ return [ E.E100, E.E101]
+ case 102:
+ return [ E.E102, E.E103]
+ case 104:
+ return [ E.E104, E.E105]
+ case 106:
+ return [ E.E106, E.E107]
+ case 108:
+ return [ E.E108, E.E109]
+ case 110:
+ return [ E.E110, E.E111]
+ case 112:
+ return [ E.E112, E.E113]
+ case 114:
+ return [ E.E114, E.E115]
+ case 116:
+ return [ E.E116, E.E117]
+ case 118:
+ return [ E.E118, E.E119]
+ case 120:
+ return [ E.E120, E.E121]
+ case 122:
+ return [ E.E122, E.E123]
+ case 124:
+ return [ E.E124, E.E125]
+ case 126:
+ return [ E.E126, E.E127]
+ case 128:
+ return [ E.E128, E.E129]
+ case 130:
+ return [ E.E130, E.E131]
+ case 132:
+ return [ E.E132, E.E133]
+ case 134:
+ return [ E.E134, E.E135]
+ case 136:
+ return [ E.E136, E.E137]
+ case 138:
+ return [ E.E138, E.E139]
+ case 140:
+ return [ E.E140, E.E141]
+ case 142:
+ return [ E.E142, E.E143]
+ case 144:
+ return [ E.E144, E.E145]
+ case 146:
+ return [ E.E146, E.E147]
+ case 148:
+ return [ E.E148, E.E149]
+ case 150:
+ return [ E.E150, E.E151]
+ case 152:
+ return [ E.E152, E.E153]
+ case 154:
+ return [ E.E154, E.E155]
+ case 156:
+ return [ E.E156, E.E157]
+ case 158:
+ return [ E.E158, E.E159]
+ case 160:
+ return [ E.E160, E.E161]
+ case 162:
+ return [ E.E162, E.E163]
+ case 164:
+ return [ E.E164, E.E165]
+ case 166:
+ return [ E.E166, E.E167]
+ case 168:
+ return [ E.E168, E.E169]
+ case 170:
+ return [ E.E170, E.E171]
+ case 172:
+ return [ E.E172, E.E173]
+ case 174:
+ return [ E.E174, E.E175]
+ case 176:
+ return [ E.E176, E.E177]
+ case 178:
+ return [ E.E178, E.E179]
+ case 180:
+ return [ E.E180, E.E181]
+ case 182:
+ return [ E.E182, E.E183]
+ case 184:
+ return [ E.E184, E.E185]
+ case 186:
+ return [ E.E186, E.E187]
+ case 188:
+ return [ E.E188, E.E189]
+ case 190:
+ return [ E.E190, E.E191]
+ case 192:
+ return [ E.E192, E.E193]
+ case 194:
+ return [ E.E194, E.E195]
+ case 196:
+ return [ E.E196, E.E197]
+ case 198:
+ return [ E.E198, E.E199]
+ case 200:
+ return [ E.E200, E.E201]
+ case 202:
+ return [ E.E202, E.E203]
+ case 204:
+ return [ E.E204, E.E205]
+ case 206:
+ return [ E.E206, E.E207]
+ case 208:
+ return [ E.E208, E.E209]
+ case 210:
+ return [ E.E210, E.E211]
+ case 212:
+ return [ E.E212, E.E213]
+ case 214:
+ return [ E.E214, E.E215]
+ case 216:
+ return [ E.E216, E.E217]
+ case 218:
+ return [ E.E218, E.E219]
+ case 220:
+ return [ E.E220, E.E221]
+ case 222:
+ return [ E.E222, E.E223]
+ case 224:
+ return [ E.E224, E.E225]
+ case 226:
+ return [ E.E226, E.E227]
+ case 228:
+ return [ E.E228, E.E229]
+ case 230:
+ return [ E.E230, E.E231]
+ case 232:
+ return [ E.E232, E.E233]
+ case 234:
+ return [ E.E234, E.E235]
+ case 236:
+ return [ E.E236, E.E237]
+ case 238:
+ return [ E.E238, E.E239]
+ case 240:
+ return [ E.E240, E.E241]
+ case 242:
+ return [ E.E242, E.E243]
+ case 244:
+ return [ E.E244, E.E245]
+ case 246:
+ return [ E.E246, E.E247]
+ case 248:
+ return [ E.E248, E.E249]
+ case 250:
+ return [ E.E250, E.E251]
+ case 252:
+ return [ E.E252, E.E253]
+ case 254:
+ return [ E.E254, E.E255]
+ case 256:
+ return [ E.E256, E.E257]
+ case 258:
+ return [ E.E258, E.E259]
+ case 260:
+ return [ E.E260, E.E261]
+ case 262:
+ return [ E.E262, E.E263]
+ case 264:
+ return [ E.E264, E.E265]
+ case 266:
+ return [ E.E266, E.E267]
+ case 268:
+ return [ E.E268, E.E269]
+ case 270:
+ return [ E.E270, E.E271]
+ case 272:
+ return [ E.E272, E.E273]
+ case 274:
+ return [ E.E274, E.E275]
+ case 276:
+ return [ E.E276, E.E277]
+ case 278:
+ return [ E.E278, E.E279]
+ case 280:
+ return [ E.E280, E.E281]
+ case 282:
+ return [ E.E282, E.E283]
+ case 284:
+ return [ E.E284, E.E285]
+ case 286:
+ return [ E.E286, E.E287]
+ case 288:
+ return [ E.E288, E.E289]
+ case 290:
+ return [ E.E290, E.E291]
+ case 292:
+ return [ E.E292, E.E293]
+ case 294:
+ return [ E.E294, E.E295]
+ case 296:
+ return [ E.E296, E.E297]
+ case 298:
+ return [ E.E298, E.E299]
+ case 300:
+ return [ E.E300, E.E301]
+ case 302:
+ return [ E.E302, E.E303]
+ case 304:
+ return [ E.E304, E.E305]
+ case 306:
+ return [ E.E306, E.E307]
+ case 308:
+ return [ E.E308, E.E309]
+ case 310:
+ return [ E.E310, E.E311]
+ case 312:
+ return [ E.E312, E.E313]
+ case 314:
+ return [ E.E314, E.E315]
+ case 316:
+ return [ E.E316, E.E317]
+ case 318:
+ return [ E.E318, E.E319]
+ case 320:
+ return [ E.E320, E.E321]
+ case 322:
+ return [ E.E322, E.E323]
+ case 324:
+ return [ E.E324, E.E325]
+ case 326:
+ return [ E.E326, E.E327]
+ case 328:
+ return [ E.E328, E.E329]
+ case 330:
+ return [ E.E330, E.E331]
+ case 332:
+ return [ E.E332, E.E333]
+ case 334:
+ return [ E.E334, E.E335]
+ case 336:
+ return [ E.E336, E.E337]
+ case 338:
+ return [ E.E338, E.E339]
+ case 340:
+ return [ E.E340, E.E341]
+ case 342:
+ return [ E.E342, E.E343]
+ case 344:
+ return [ E.E344, E.E345]
+ case 346:
+ return [ E.E346, E.E347]
+ case 348:
+ return [ E.E348, E.E349]
+ case 350:
+ return [ E.E350, E.E351]
+ case 352:
+ return [ E.E352, E.E353]
+ case 354:
+ return [ E.E354, E.E355]
+ case 356:
+ return [ E.E356, E.E357]
+ case 358:
+ return [ E.E358, E.E359]
+ case 360:
+ return [ E.E360, E.E361]
+ case 362:
+ return [ E.E362, E.E363]
+ case 364:
+ return [ E.E364, E.E365]
+ case 366:
+ return [ E.E366, E.E367]
+ case 368:
+ return [ E.E368, E.E369]
+ case 370:
+ return [ E.E370, E.E371]
+ case 372:
+ return [ E.E372, E.E373]
+ case 374:
+ return [ E.E374, E.E375]
+ case 376:
+ return [ E.E376, E.E377]
+ case 378:
+ return [ E.E378, E.E379]
+ case 380:
+ return [ E.E380, E.E381]
+ case 382:
+ return [ E.E382, E.E383]
+ case 384:
+ return [ E.E384, E.E385]
+ case 386:
+ return [ E.E386, E.E387]
+ case 388:
+ return [ E.E388, E.E389]
+ case 390:
+ return [ E.E390, E.E391]
+ case 392:
+ return [ E.E392, E.E393]
+ case 394:
+ return [ E.E394, E.E395]
+ case 396:
+ return [ E.E396, E.E397]
+ case 398:
+ return [ E.E398, E.E399]
+ case 400:
+ return [ E.E400, E.E401]
+ case 402:
+ return [ E.E402, E.E403]
+ case 404:
+ return [ E.E404, E.E405]
+ case 406:
+ return [ E.E406, E.E407]
+ case 408:
+ return [ E.E408, E.E409]
+ case 410:
+ return [ E.E410, E.E411]
+ case 412:
+ return [ E.E412, E.E413]
+ case 414:
+ return [ E.E414, E.E415]
+ case 416:
+ return [ E.E416, E.E417]
+ case 418:
+ return [ E.E418, E.E419]
+ case 420:
+ return [ E.E420, E.E421]
+ case 422:
+ return [ E.E422, E.E423]
+ case 424:
+ return [ E.E424, E.E425]
+ case 426:
+ return [ E.E426, E.E427]
+ case 428:
+ return [ E.E428, E.E429]
+ case 430:
+ return [ E.E430, E.E431]
+ case 432:
+ return [ E.E432, E.E433]
+ case 434:
+ return [ E.E434, E.E435]
+ case 436:
+ return [ E.E436, E.E437]
+ case 438:
+ return [ E.E438, E.E439]
+ case 440:
+ return [ E.E440, E.E441]
+ case 442:
+ return [ E.E442, E.E443]
+ case 444:
+ return [ E.E444, E.E445]
+ case 446:
+ return [ E.E446, E.E447]
+ case 448:
+ return [ E.E448, E.E449]
+ case 450:
+ return [ E.E450, E.E451]
+ case 452:
+ return [ E.E452, E.E453]
+ case 454:
+ return [ E.E454, E.E455]
+ case 456:
+ return [ E.E456, E.E457]
+ case 458:
+ return [ E.E458, E.E459]
+ case 460:
+ return [ E.E460, E.E461]
+ case 462:
+ return [ E.E462, E.E463]
+ case 464:
+ return [ E.E464, E.E465]
+ case 466:
+ return [ E.E466, E.E467]
+ case 468:
+ return [ E.E468, E.E469]
+ case 470:
+ return [ E.E470, E.E471]
+ case 472:
+ return [ E.E472, E.E473]
+ case 474:
+ return [ E.E474, E.E475]
+ case 476:
+ return [ E.E476, E.E477]
+ case 478:
+ return [ E.E478, E.E479]
+ case 480:
+ return [ E.E480, E.E481]
+ case 482:
+ return [ E.E482, E.E483]
+ case 484:
+ return [ E.E484, E.E485]
+ case 486:
+ return [ E.E486, E.E487]
+ case 488:
+ return [ E.E488, E.E489]
+ case 490:
+ return [ E.E490, E.E491]
+ case 492:
+ return [ E.E492, E.E493]
+ case 494:
+ return [ E.E494, E.E495]
+ case 496:
+ return [ E.E496, E.E497]
+ case 498:
+ return [ E.E498, E.E499]
+ case 500:
+ return [ E.E500, E.E501]
+ case 502:
+ return [ E.E502, E.E503]
+ case 504:
+ return [ E.E504, E.E505]
+ case 506:
+ return [ E.E506, E.E507]
+ case 508:
+ return [ E.E508, E.E509]
+ case 510:
+ return [ E.E510, E.E511]
+ case 512:
+ return [ E.E512, E.E513]
+ case 514:
+ return [ E.E514, E.E515]
+ case 516:
+ return [ E.E516, E.E517]
+ case 518:
+ return [ E.E518, E.E519]
+ case 520:
+ return [ E.E520, E.E521]
+ case 522:
+ return [ E.E522, E.E523]
+ case 524:
+ return [ E.E524, E.E525]
+ case 526:
+ return [ E.E526, E.E527]
+ case 528:
+ return [ E.E528, E.E529]
+ case 530:
+ return [ E.E530, E.E531]
+ case 532:
+ return [ E.E532, E.E533]
+ case 534:
+ return [ E.E534, E.E535]
+ case 536:
+ return [ E.E536, E.E537]
+ case 538:
+ return [ E.E538, E.E539]
+ case 540:
+ return [ E.E540, E.E541]
+ case 542:
+ return [ E.E542, E.E543]
+ case 544:
+ return [ E.E544, E.E545]
+ case 546:
+ return [ E.E546, E.E547]
+ case 548:
+ return [ E.E548, E.E549]
+ case 550:
+ return [ E.E550, E.E551]
+ case 552:
+ return [ E.E552, E.E553]
+ case 554:
+ return [ E.E554, E.E555]
+ case 556:
+ return [ E.E556, E.E557]
+ case 558:
+ return [ E.E558, E.E559]
+ case 560:
+ return [ E.E560, E.E561]
+ case 562:
+ return [ E.E562, E.E563]
+ case 564:
+ return [ E.E564, E.E565]
+ case 566:
+ return [ E.E566, E.E567]
+ case 568:
+ return [ E.E568, E.E569]
+ case 570:
+ return [ E.E570, E.E571]
+ case 572:
+ return [ E.E572, E.E573]
+ case 574:
+ return [ E.E574, E.E575]
+ case 576:
+ return [ E.E576, E.E577]
+ case 578:
+ return [ E.E578, E.E579]
+ case 580:
+ return [ E.E580, E.E581]
+ case 582:
+ return [ E.E582, E.E583]
+ case 584:
+ return [ E.E584, E.E585]
+ case 586:
+ return [ E.E586, E.E587]
+ case 588:
+ return [ E.E588, E.E589]
+ case 590:
+ return [ E.E590, E.E591]
+ case 592:
+ return [ E.E592, E.E593]
+ case 594:
+ return [ E.E594, E.E595]
+ case 596:
+ return [ E.E596, E.E597]
+ case 598:
+ return [ E.E598, E.E599]
+ case 600:
+ return [ E.E600, E.E601]
+ case 602:
+ return [ E.E602, E.E603]
+ case 604:
+ return [ E.E604, E.E605]
+ case 606:
+ return [ E.E606, E.E607]
+ case 608:
+ return [ E.E608, E.E609]
+ case 610:
+ return [ E.E610, E.E611]
+ case 612:
+ return [ E.E612, E.E613]
+ case 614:
+ return [ E.E614, E.E615]
+ case 616:
+ return [ E.E616, E.E617]
+ case 618:
+ return [ E.E618, E.E619]
+ case 620:
+ return [ E.E620, E.E621]
+ case 622:
+ return [ E.E622, E.E623]
+ case 624:
+ return [ E.E624, E.E625]
+ case 626:
+ return [ E.E626, E.E627]
+ case 628:
+ return [ E.E628, E.E629]
+ case 630:
+ return [ E.E630, E.E631]
+ case 632:
+ return [ E.E632, E.E633]
+ case 634:
+ return [ E.E634, E.E635]
+ case 636:
+ return [ E.E636, E.E637]
+ case 638:
+ return [ E.E638, E.E639]
+ case 640:
+ return [ E.E640, E.E641]
+ case 642:
+ return [ E.E642, E.E643]
+ case 644:
+ return [ E.E644, E.E645]
+ case 646:
+ return [ E.E646, E.E647]
+ case 648:
+ return [ E.E648, E.E649]
+ case 650:
+ return [ E.E650, E.E651]
+ case 652:
+ return [ E.E652, E.E653]
+ case 654:
+ return [ E.E654, E.E655]
+ case 656:
+ return [ E.E656, E.E657]
+ case 658:
+ return [ E.E658, E.E659]
+ case 660:
+ return [ E.E660, E.E661]
+ case 662:
+ return [ E.E662, E.E663]
+ case 664:
+ return [ E.E664, E.E665]
+ case 666:
+ return [ E.E666, E.E667]
+ case 668:
+ return [ E.E668, E.E669]
+ case 670:
+ return [ E.E670, E.E671]
+ case 672:
+ return [ E.E672, E.E673]
+ case 674:
+ return [ E.E674, E.E675]
+ case 676:
+ return [ E.E676, E.E677]
+ case 678:
+ return [ E.E678, E.E679]
+ case 680:
+ return [ E.E680, E.E681]
+ case 682:
+ return [ E.E682, E.E683]
+ case 684:
+ return [ E.E684, E.E685]
+ case 686:
+ return [ E.E686, E.E687]
+ case 688:
+ return [ E.E688, E.E689]
+ case 690:
+ return [ E.E690, E.E691]
+ case 692:
+ return [ E.E692, E.E693]
+ case 694:
+ return [ E.E694, E.E695]
+ case 696:
+ return [ E.E696, E.E697]
+ case 698:
+ return [ E.E698, E.E699]
+ case 700:
+ return [ E.E700, E.E701]
+ case 702:
+ return [ E.E702, E.E703]
+ case 704:
+ return [ E.E704, E.E705]
+ case 706:
+ return [ E.E706, E.E707]
+ case 708:
+ return [ E.E708, E.E709]
+ case 710:
+ return [ E.E710, E.E711]
+ case 712:
+ return [ E.E712, E.E713]
+ case 714:
+ return [ E.E714, E.E715]
+ case 716:
+ return [ E.E716, E.E717]
+ case 718:
+ return [ E.E718, E.E719]
+ case 720:
+ return [ E.E720, E.E721]
+ case 722:
+ return [ E.E722, E.E723]
+ case 724:
+ return [ E.E724, E.E725]
+ case 726:
+ return [ E.E726, E.E727]
+ case 728:
+ return [ E.E728, E.E729]
+ case 730:
+ return [ E.E730, E.E731]
+ case 732:
+ return [ E.E732, E.E733]
+ case 734:
+ return [ E.E734, E.E735]
+ case 736:
+ return [ E.E736, E.E737]
+ case 738:
+ return [ E.E738, E.E739]
+ case 740:
+ return [ E.E740, E.E741]
+ case 742:
+ return [ E.E742, E.E743]
+ case 744:
+ return [ E.E744, E.E745]
+ case 746:
+ return [ E.E746, E.E747]
+ case 748:
+ return [ E.E748, E.E749]
+ case 750:
+ return [ E.E750, E.E751]
+ case 752:
+ return [ E.E752, E.E753]
+ case 754:
+ return [ E.E754, E.E755]
+ case 756:
+ return [ E.E756, E.E757]
+ case 758:
+ return [ E.E758, E.E759]
+ case 760:
+ return [ E.E760, E.E761]
+ case 762:
+ return [ E.E762, E.E763]
+ case 764:
+ return [ E.E764, E.E765]
+ case 766:
+ return [ E.E766, E.E767]
+ case 768:
+ return [ E.E768, E.E769]
+ case 770:
+ return [ E.E770, E.E771]
+ case 772:
+ return [ E.E772, E.E773]
+ case 774:
+ return [ E.E774, E.E775]
+ case 776:
+ return [ E.E776, E.E777]
+ case 778:
+ return [ E.E778, E.E779]
+ case 780:
+ return [ E.E780, E.E781]
+ case 782:
+ return [ E.E782, E.E783]
+ case 784:
+ return [ E.E784, E.E785]
+ case 786:
+ return [ E.E786, E.E787]
+ case 788:
+ return [ E.E788, E.E789]
+ case 790:
+ return [ E.E790, E.E791]
+ case 792:
+ return [ E.E792, E.E793]
+ case 794:
+ return [ E.E794, E.E795]
+ case 796:
+ return [ E.E796, E.E797]
+ case 798:
+ return [ E.E798, E.E799]
+ case 800:
+ return [ E.E800, E.E801]
+ case 802:
+ return [ E.E802, E.E803]
+ case 804:
+ return [ E.E804, E.E805]
+ case 806:
+ return [ E.E806, E.E807]
+ case 808:
+ return [ E.E808, E.E809]
+ case 810:
+ return [ E.E810, E.E811]
+ case 812:
+ return [ E.E812, E.E813]
+ case 814:
+ return [ E.E814, E.E815]
+ case 816:
+ return [ E.E816, E.E817]
+ case 818:
+ return [ E.E818, E.E819]
+ case 820:
+ return [ E.E820, E.E821]
+ case 822:
+ return [ E.E822, E.E823]
+ case 824:
+ return [ E.E824, E.E825]
+ case 826:
+ return [ E.E826, E.E827]
+ case 828:
+ return [ E.E828, E.E829]
+ case 830:
+ return [ E.E830, E.E831]
+ case 832:
+ return [ E.E832, E.E833]
+ case 834:
+ return [ E.E834, E.E835]
+ case 836:
+ return [ E.E836, E.E837]
+ case 838:
+ return [ E.E838, E.E839]
+ case 840:
+ return [ E.E840, E.E841]
+ case 842:
+ return [ E.E842, E.E843]
+ case 844:
+ return [ E.E844, E.E845]
+ case 846:
+ return [ E.E846, E.E847]
+ case 848:
+ return [ E.E848, E.E849]
+ case 850:
+ return [ E.E850, E.E851]
+ case 852:
+ return [ E.E852, E.E853]
+ case 854:
+ return [ E.E854, E.E855]
+ case 856:
+ return [ E.E856, E.E857]
+ case 858:
+ return [ E.E858, E.E859]
+ case 860:
+ return [ E.E860, E.E861]
+ case 862:
+ return [ E.E862, E.E863]
+ case 864:
+ return [ E.E864, E.E865]
+ case 866:
+ return [ E.E866, E.E867]
+ case 868:
+ return [ E.E868, E.E869]
+ case 870:
+ return [ E.E870, E.E871]
+ case 872:
+ return [ E.E872, E.E873]
+ case 874:
+ return [ E.E874, E.E875]
+ case 876:
+ return [ E.E876, E.E877]
+ case 878:
+ return [ E.E878, E.E879]
+ case 880:
+ return [ E.E880, E.E881]
+ case 882:
+ return [ E.E882, E.E883]
+ case 884:
+ return [ E.E884, E.E885]
+ case 886:
+ return [ E.E886, E.E887]
+ case 888:
+ return [ E.E888, E.E889]
+ case 890:
+ return [ E.E890, E.E891]
+ case 892:
+ return [ E.E892, E.E893]
+ case 894:
+ return [ E.E894, E.E895]
+ case 896:
+ return [ E.E896, E.E897]
+ case 898:
+ return [ E.E898, E.E899]
+ case 900:
+ return [ E.E900, E.E901]
+ case 902:
+ return [ E.E902, E.E903]
+ case 904:
+ return [ E.E904, E.E905]
+ case 906:
+ return [ E.E906, E.E907]
+ case 908:
+ return [ E.E908, E.E909]
+ case 910:
+ return [ E.E910, E.E911]
+ case 912:
+ return [ E.E912, E.E913]
+ case 914:
+ return [ E.E914, E.E915]
+ case 916:
+ return [ E.E916, E.E917]
+ case 918:
+ return [ E.E918, E.E919]
+ case 920:
+ return [ E.E920, E.E921]
+ case 922:
+ return [ E.E922, E.E923]
+ case 924:
+ return [ E.E924, E.E925]
+ case 926:
+ return [ E.E926, E.E927]
+ case 928:
+ return [ E.E928, E.E929]
+ case 930:
+ return [ E.E930, E.E931]
+ case 932:
+ return [ E.E932, E.E933]
+ case 934:
+ return [ E.E934, E.E935]
+ case 936:
+ return [ E.E936, E.E937]
+ case 938:
+ return [ E.E938, E.E939]
+ case 940:
+ return [ E.E940, E.E941]
+ case 942:
+ return [ E.E942, E.E943]
+ case 944:
+ return [ E.E944, E.E945]
+ case 946:
+ return [ E.E946, E.E947]
+ case 948:
+ return [ E.E948, E.E949]
+ case 950:
+ return [ E.E950, E.E951]
+ case 952:
+ return [ E.E952, E.E953]
+ case 954:
+ return [ E.E954, E.E955]
+ case 956:
+ return [ E.E956, E.E957]
+ case 958:
+ return [ E.E958, E.E959]
+ case 960:
+ return [ E.E960, E.E961]
+ case 962:
+ return [ E.E962, E.E963]
+ case 964:
+ return [ E.E964, E.E965]
+ case 966:
+ return [ E.E966, E.E967]
+ case 968:
+ return [ E.E968, E.E969]
+ case 970:
+ return [ E.E970, E.E971]
+ case 972:
+ return [ E.E972, E.E973]
+ case 974:
+ return [ E.E974, E.E975]
+ case 976:
+ return [ E.E976, E.E977]
+ case 978:
+ return [ E.E978, E.E979]
+ case 980:
+ return [ E.E980, E.E981]
+ case 982:
+ return [ E.E982, E.E983]
+ case 984:
+ return [ E.E984, E.E985]
+ case 986:
+ return [ E.E986, E.E987]
+ case 988:
+ return [ E.E988, E.E989]
+ case 990:
+ return [ E.E990, E.E991]
+ case 992:
+ return [ E.E992, E.E993]
+ case 994:
+ return [ E.E994, E.E995]
+ case 996:
+ return [ E.E996, E.E997]
+ case 998:
+ return [ E.E998, E.E999]
+ case 1000:
+ return [ E.E1000, E.E1001]
+ case 1002:
+ return [ E.E1002, E.E1003]
+ case 1004:
+ return [ E.E1004, E.E1005]
+ case 1006:
+ return [ E.E1006, E.E1007]
+ case 1008:
+ return [ E.E1008, E.E1009]
+ case 1010:
+ return [ E.E1010, E.E1011]
+ case 1012:
+ return [ E.E1012, E.E1013]
+ case 1014:
+ return [ E.E1014, E.E1015]
+ case 1016:
+ return [ E.E1016, E.E1017]
+ case 1018:
+ return [ E.E1018, E.E1019]
+ case 1020:
+ return [ E.E1020, E.E1021]
+ case 1022:
+ return [ E.E1022, E.E1023]
+ }
+}
diff --git a/tests/cases/conformance/jsx/tsxCorrectlyParseLessThanComparison1.tsx b/tests/cases/conformance/jsx/tsxCorrectlyParseLessThanComparison1.tsx
new file mode 100644
index 00000000000..87a3d2d12aa
--- /dev/null
+++ b/tests/cases/conformance/jsx/tsxCorrectlyParseLessThanComparison1.tsx
@@ -0,0 +1,20 @@
+// @jsx: react
+declare module JSX {
+ interface Element {
+ div: string;
+ }
+}
+declare namespace React {
+ class Component {
+ constructor(props?: P, context?: any);
+ props: P;
+ }
+}
+
+export class ShortDetails extends React.Component<{ id: number }, {}> {
+ public render(): JSX.Element {
+ if (this.props.id < 1) {
+ return (
);
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/cases/fourslash/completionListIsGlobalCompletion.ts b/tests/cases/fourslash/completionListIsGlobalCompletion.ts
new file mode 100644
index 00000000000..3a7adb465a1
--- /dev/null
+++ b/tests/cases/fourslash/completionListIsGlobalCompletion.ts
@@ -0,0 +1,42 @@
+///
+
+/////// // no globals in reference paths
+////import { /*2*/ } from "./file.ts"; // no globals in imports
+////var test = "/*3*/"; // no globals in strings
+/////*4*/class A { // insert globals
+//// foo(): string { return ''; }
+////}
+////
+////class /*5*/B extends A { // no globals after class keyword
+//// bar(): string {
+//// /*6*/ // insert globals
+//// return '';
+//// }
+////}
+////
+////class C*7*/ U extends A, T extends A> { // no globals at beginning of generics
+//// x: U;
+//// y = this./*8*/x; // no globals inserted for member completions
+//// /*9*/ // insert globals
+////}
+/////*10*/ // insert globals
+goTo.marker("1");
+verify.completionListIsGlobal(false);
+goTo.marker("2");
+verify.completionListIsGlobal(false);
+goTo.marker("3");
+verify.completionListIsGlobal(false);
+goTo.marker("4");
+verify.completionListIsGlobal(true);
+goTo.marker("5");
+verify.completionListIsGlobal(false);
+goTo.marker("6");
+verify.completionListIsGlobal(true);
+goTo.marker("7");
+verify.completionListIsGlobal(false);
+goTo.marker("8");
+verify.completionListIsGlobal(false);
+goTo.marker("9");
+verify.completionListIsGlobal(true);
+goTo.marker("10");
+verify.completionListIsGlobal(true);
diff --git a/tests/cases/fourslash/getMatchingBraces.ts b/tests/cases/fourslash/getMatchingBraces.ts
index fc8a71197db..cea9c8c84eb 100644
--- a/tests/cases/fourslash/getMatchingBraces.ts
+++ b/tests/cases/fourslash/getMatchingBraces.ts
@@ -36,6 +36,7 @@
//// return [||] a;
//// }
////}
+////const x: Array[|<() => void>|] = [];
test.ranges().forEach((range) => {
verify.matchingBracePositionInCurrentFile(range.start, range.end - 1);