From 8be77b448f7589d309e8acc36a3408e82a1ab2d1 Mon Sep 17 00:00:00 2001 From: Yui T Date: Tue, 6 Oct 2015 15:29:21 -0700 Subject: [PATCH] Update test to parse typeAssertion as simpleUnaryExpression --- .../reference/emitExponentiationOperator4.js | 34 ++++----- .../emitExponentiationOperator4.symbols | 19 ++--- .../emitExponentiationOperator4.types | 71 +++++++++++-------- .../emitExponentiationOperator4ES7.js | 34 ++++----- .../emitExponentiationOperator4ES7.symbols | 19 ++--- .../emitExponentiationOperator4ES7.types | 71 +++++++++++-------- ...onentiationOperatorSyntaxError2.errors.txt | 24 ++++++- .../exponentiationOperatorSyntaxError2.js | 12 +++- .../emitExponentiationOperator4.ts | 17 ++--- .../emitExponentiationOperator4ES7.ts | 17 ++--- .../exponentiationOperatorSyntaxError2.ts | 6 ++ 11 files changed, 201 insertions(+), 123 deletions(-) diff --git a/tests/baselines/reference/emitExponentiationOperator4.js b/tests/baselines/reference/emitExponentiationOperator4.js index 185616601be..7bed614b664 100644 --- a/tests/baselines/reference/emitExponentiationOperator4.js +++ b/tests/baselines/reference/emitExponentiationOperator4.js @@ -1,15 +1,16 @@ //// [emitExponentiationOperator4.ts] var temp: any; ---temp ** 3; -++temp ** 3; -temp-- ** 3; -temp++ ** 3; +(temp) ** 3; +(--temp) ** 3; +(++temp) ** 3; +(temp--) ** 3; +(temp++) ** 3; -1 ** --temp ** 3; -1 ** ++temp ** 3; -1 ** temp-- ** 3; -1 ** temp++ ** 3; +1 ** (--temp) ** 3; +1 ** (++temp) ** 3; +1 ** (temp--) ** 3; +1 ** (temp++) ** 3; (void --temp) ** 3; (void temp--) ** 3; @@ -38,14 +39,15 @@ var temp: any; //// [emitExponentiationOperator4.js] var temp; -Math.pow(--temp, 3); -Math.pow(++temp, 3); -Math.pow(temp--, 3); -Math.pow(temp++, 3); -Math.pow(1, Math.pow(--temp, 3)); -Math.pow(1, Math.pow(++temp, 3)); -Math.pow(1, Math.pow(temp--, 3)); -Math.pow(1, Math.pow(temp++, 3)); +Math.pow(temp, 3); +Math.pow((--temp), 3); +Math.pow((++temp), 3); +Math.pow((temp--), 3); +Math.pow((temp++), 3); +Math.pow(1, Math.pow((--temp), 3)); +Math.pow(1, Math.pow((++temp), 3)); +Math.pow(1, Math.pow((temp--), 3)); +Math.pow(1, Math.pow((temp++), 3)); Math.pow((void --temp), 3); Math.pow((void temp--), 3); Math.pow((void 3), 4); diff --git a/tests/baselines/reference/emitExponentiationOperator4.symbols b/tests/baselines/reference/emitExponentiationOperator4.symbols index c57825f908a..45b73afbce8 100644 --- a/tests/baselines/reference/emitExponentiationOperator4.symbols +++ b/tests/baselines/reference/emitExponentiationOperator4.symbols @@ -2,28 +2,31 @@ var temp: any; >temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) ---temp ** 3; +(temp) ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) -++temp ** 3; +(--temp) ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) -temp-- ** 3; +(++temp) ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) -temp++ ** 3; +(temp--) ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) -1 ** --temp ** 3; +(temp++) ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) -1 ** ++temp ** 3; +1 ** (--temp) ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) -1 ** temp-- ** 3; +1 ** (++temp) ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) -1 ** temp++ ** 3; +1 ** (temp--) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) + +1 ** (temp++) ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator4.ts, 0, 3)) (void --temp) ** 3; diff --git a/tests/baselines/reference/emitExponentiationOperator4.types b/tests/baselines/reference/emitExponentiationOperator4.types index 2d5a7ea48f4..36da1c32b4c 100644 --- a/tests/baselines/reference/emitExponentiationOperator4.types +++ b/tests/baselines/reference/emitExponentiationOperator4.types @@ -2,66 +2,81 @@ var temp: any; >temp : any ---temp ** 3; ->--temp ** 3 : number ->--temp ** 3 : number +(temp) ** 3; +>(temp) ** 3 : number +>(temp) : number +>temp : number +>temp : any +>3 : number + +(--temp) ** 3; +>(--temp) ** 3 : number +>(--temp) : number +>--temp : number >--temp : number >temp : any >3 : number -++temp ** 3; ->++temp ** 3 : number ->++temp ** 3 : number +(++temp) ** 3; +>(++temp) ** 3 : number +>(++temp) : number +>++temp : number >++temp : number >temp : any >3 : number -temp-- ** 3; ->temp-- ** 3 : number ->temp-- ** 3 : number +(temp--) ** 3; +>(temp--) ** 3 : number +>(temp--) : number +>temp-- : number >temp-- : number >temp : any >3 : number -temp++ ** 3; ->temp++ ** 3 : number ->temp++ ** 3 : number +(temp++) ** 3; +>(temp++) ** 3 : number +>(temp++) : number +>temp++ : number >temp++ : number >temp : any >3 : number -1 ** --temp ** 3; ->1 ** --temp ** 3 : number +1 ** (--temp) ** 3; +>1 ** (--temp) ** 3 : number >1 : number ->--temp ** 3 : number ->--temp ** 3 : number +>(--temp) ** 3 : number +>(--temp) : number +>--temp : number >--temp : number >temp : any >3 : number -1 ** ++temp ** 3; ->1 ** ++temp ** 3 : number +1 ** (++temp) ** 3; +>1 ** (++temp) ** 3 : number >1 : number ->++temp ** 3 : number ->++temp ** 3 : number +>(++temp) ** 3 : number +>(++temp) : number +>++temp : number >++temp : number >temp : any >3 : number -1 ** temp-- ** 3; ->1 ** temp-- ** 3 : number +1 ** (temp--) ** 3; +>1 ** (temp--) ** 3 : number >1 : number ->temp-- ** 3 : number ->temp-- ** 3 : number +>(temp--) ** 3 : number +>(temp--) : number +>temp-- : number >temp-- : number >temp : any >3 : number -1 ** temp++ ** 3; ->1 ** temp++ ** 3 : number +1 ** (temp++) ** 3; +>1 ** (temp++) ** 3 : number >1 : number ->temp++ ** 3 : number ->temp++ ** 3 : number +>(temp++) ** 3 : number +>(temp++) : number +>temp++ : number >temp++ : number >temp : any >3 : number diff --git a/tests/baselines/reference/emitExponentiationOperator4ES7.js b/tests/baselines/reference/emitExponentiationOperator4ES7.js index fb32144575d..2602fd2b8e6 100644 --- a/tests/baselines/reference/emitExponentiationOperator4ES7.js +++ b/tests/baselines/reference/emitExponentiationOperator4ES7.js @@ -1,15 +1,16 @@ //// [emitExponentiationOperator4ES7.ts] var temp: any; ---temp ** 3; -++temp ** 3; -temp-- ** 3; -temp++ ** 3; +(temp) ** 3; +(--temp) ** 3; +(++temp) ** 3; +(temp--) ** 3; +(temp++) ** 3; -1 ** --temp ** 3; -1 ** ++temp ** 3; -1 ** temp-- ** 3; -1 ** temp++ ** 3; +1 ** (--temp) ** 3; +1 ** (++temp) ** 3; +1 ** (temp--) ** 3; +1 ** (temp++) ** 3; (void --temp) ** 3; (void temp--) ** 3; @@ -38,14 +39,15 @@ var temp: any; //// [emitExponentiationOperator4ES7.js] var temp; ---temp ** 3; -++temp ** 3; -temp-- ** 3; -temp++ ** 3; -1 ** --temp ** 3; -1 ** ++temp ** 3; -1 ** temp-- ** 3; -1 ** temp++ ** 3; +temp ** 3; +(--temp) ** 3; +(++temp) ** 3; +(temp--) ** 3; +(temp++) ** 3; +1 ** (--temp) ** 3; +1 ** (++temp) ** 3; +1 ** (temp--) ** 3; +1 ** (temp++) ** 3; (void --temp) ** 3; (void temp--) ** 3; (void 3) ** 4; diff --git a/tests/baselines/reference/emitExponentiationOperator4ES7.symbols b/tests/baselines/reference/emitExponentiationOperator4ES7.symbols index 53701ed5aef..d66e1379908 100644 --- a/tests/baselines/reference/emitExponentiationOperator4ES7.symbols +++ b/tests/baselines/reference/emitExponentiationOperator4ES7.symbols @@ -2,28 +2,31 @@ var temp: any; >temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) ---temp ** 3; +(temp) ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) -++temp ** 3; +(--temp) ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) -temp-- ** 3; +(++temp) ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) -temp++ ** 3; +(temp--) ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) -1 ** --temp ** 3; +(temp++) ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) -1 ** ++temp ** 3; +1 ** (--temp) ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) -1 ** temp-- ** 3; +1 ** (++temp) ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) -1 ** temp++ ** 3; +1 ** (temp--) ** 3; +>temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) + +1 ** (temp++) ** 3; >temp : Symbol(temp, Decl(emitExponentiationOperator4ES7.ts, 0, 3)) (void --temp) ** 3; diff --git a/tests/baselines/reference/emitExponentiationOperator4ES7.types b/tests/baselines/reference/emitExponentiationOperator4ES7.types index 78eacba9e39..5449c898946 100644 --- a/tests/baselines/reference/emitExponentiationOperator4ES7.types +++ b/tests/baselines/reference/emitExponentiationOperator4ES7.types @@ -2,66 +2,81 @@ var temp: any; >temp : any ---temp ** 3; ->--temp ** 3 : number ->--temp ** 3 : number +(temp) ** 3; +>(temp) ** 3 : number +>(temp) : number +>temp : number +>temp : any +>3 : number + +(--temp) ** 3; +>(--temp) ** 3 : number +>(--temp) : number +>--temp : number >--temp : number >temp : any >3 : number -++temp ** 3; ->++temp ** 3 : number ->++temp ** 3 : number +(++temp) ** 3; +>(++temp) ** 3 : number +>(++temp) : number +>++temp : number >++temp : number >temp : any >3 : number -temp-- ** 3; ->temp-- ** 3 : number ->temp-- ** 3 : number +(temp--) ** 3; +>(temp--) ** 3 : number +>(temp--) : number +>temp-- : number >temp-- : number >temp : any >3 : number -temp++ ** 3; ->temp++ ** 3 : number ->temp++ ** 3 : number +(temp++) ** 3; +>(temp++) ** 3 : number +>(temp++) : number +>temp++ : number >temp++ : number >temp : any >3 : number -1 ** --temp ** 3; ->1 ** --temp ** 3 : number +1 ** (--temp) ** 3; +>1 ** (--temp) ** 3 : number >1 : number ->--temp ** 3 : number ->--temp ** 3 : number +>(--temp) ** 3 : number +>(--temp) : number +>--temp : number >--temp : number >temp : any >3 : number -1 ** ++temp ** 3; ->1 ** ++temp ** 3 : number +1 ** (++temp) ** 3; +>1 ** (++temp) ** 3 : number >1 : number ->++temp ** 3 : number ->++temp ** 3 : number +>(++temp) ** 3 : number +>(++temp) : number +>++temp : number >++temp : number >temp : any >3 : number -1 ** temp-- ** 3; ->1 ** temp-- ** 3 : number +1 ** (temp--) ** 3; +>1 ** (temp--) ** 3 : number >1 : number ->temp-- ** 3 : number ->temp-- ** 3 : number +>(temp--) ** 3 : number +>(temp--) : number +>temp-- : number >temp-- : number >temp : any >3 : number -1 ** temp++ ** 3; ->1 ** temp++ ** 3 : number +1 ** (temp++) ** 3; +>1 ** (temp++) ** 3 : number >1 : number ->temp++ ** 3 : number ->temp++ ** 3 : number +>(temp++) ** 3 : number +>(temp++) : number +>temp++ : number >temp++ : number >temp : any >3 : number diff --git a/tests/baselines/reference/exponentiationOperatorSyntaxError2.errors.txt b/tests/baselines/reference/exponentiationOperatorSyntaxError2.errors.txt index 67ff6667292..45d0854a07f 100644 --- a/tests/baselines/reference/exponentiationOperatorSyntaxError2.errors.txt +++ b/tests/baselines/reference/exponentiationOperatorSyntaxError2.errors.txt @@ -74,9 +74,14 @@ tests/cases/conformance/es7/exponentiationOperator/exponentiationOperatorSyntaxE tests/cases/conformance/es7/exponentiationOperator/exponentiationOperatorSyntaxError2.ts(61,14): error TS17006: Left hand side of '**' cannot be a simple unary expression. Consider parenthesize the expression. tests/cases/conformance/es7/exponentiationOperator/exponentiationOperatorSyntaxError2.ts(62,6): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type. tests/cases/conformance/es7/exponentiationOperator/exponentiationOperatorSyntaxError2.ts(62,14): error TS17006: Left hand side of '**' cannot be a simple unary expression. Consider parenthesize the expression. +tests/cases/conformance/es7/exponentiationOperator/exponentiationOperatorSyntaxError2.ts(64,14): error TS17006: Left hand side of '**' cannot be a simple unary expression. Consider parenthesize the expression. +tests/cases/conformance/es7/exponentiationOperator/exponentiationOperatorSyntaxError2.ts(65,16): error TS17006: Left hand side of '**' cannot be a simple unary expression. Consider parenthesize the expression. +tests/cases/conformance/es7/exponentiationOperator/exponentiationOperatorSyntaxError2.ts(66,16): error TS17006: Left hand side of '**' cannot be a simple unary expression. Consider parenthesize the expression. +tests/cases/conformance/es7/exponentiationOperator/exponentiationOperatorSyntaxError2.ts(67,16): error TS17006: Left hand side of '**' cannot be a simple unary expression. Consider parenthesize the expression. +tests/cases/conformance/es7/exponentiationOperator/exponentiationOperatorSyntaxError2.ts(68,16): error TS17006: Left hand side of '**' cannot be a simple unary expression. Consider parenthesize the expression. -==== tests/cases/conformance/es7/exponentiationOperator/exponentiationOperatorSyntaxError2.ts (76 errors) ==== +==== tests/cases/conformance/es7/exponentiationOperator/exponentiationOperatorSyntaxError2.ts (81 errors) ==== // Error: early syntax error using ES7 SimpleUnaryExpression on left-hand side without () var temp; @@ -291,4 +296,19 @@ tests/cases/conformance/es7/exponentiationOperator/exponentiationOperatorSyntaxE !!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type. ~~ !!! error TS17006: Left hand side of '**' cannot be a simple unary expression. Consider parenthesize the expression. - \ No newline at end of file + + temp ** 3; + ~~ +!!! error TS17006: Left hand side of '**' cannot be a simple unary expression. Consider parenthesize the expression. + ++temp ** 3; + ~~ +!!! error TS17006: Left hand side of '**' cannot be a simple unary expression. Consider parenthesize the expression. + --temp ** 3; + ~~ +!!! error TS17006: Left hand side of '**' cannot be a simple unary expression. Consider parenthesize the expression. + temp++ ** 3; + ~~ +!!! error TS17006: Left hand side of '**' cannot be a simple unary expression. Consider parenthesize the expression. + temp-- ** 3; + ~~ +!!! error TS17006: Left hand side of '**' cannot be a simple unary expression. Consider parenthesize the expression. \ No newline at end of file diff --git a/tests/baselines/reference/exponentiationOperatorSyntaxError2.js b/tests/baselines/reference/exponentiationOperatorSyntaxError2.js index 758160ec312..9e07273522f 100644 --- a/tests/baselines/reference/exponentiationOperatorSyntaxError2.js +++ b/tests/baselines/reference/exponentiationOperatorSyntaxError2.js @@ -61,7 +61,12 @@ void temp-- ** 4; 1 ** !3 ** 4; 1 ** !temp++ ** 4; 1 ** !temp-- ** 4; - + +temp ** 3; +++temp ** 3; +--temp ** 3; +temp++ ** 3; +temp-- ** 3; //// [exponentiationOperatorSyntaxError2.js] // Error: early syntax error using ES7 SimpleUnaryExpression on left-hand side without () @@ -114,3 +119,8 @@ Math.pow(1, Math.pow(!temp--, 3)); Math.pow(1, Math.pow(!3, 4)); Math.pow(1, Math.pow(!temp++, 4)); Math.pow(1, Math.pow(!temp--, 4)); +Math.pow(temp, 3); +Math.pow(++temp, 3); +Math.pow(--temp, 3); +Math.pow(temp++, 3); +Math.pow(temp--, 3); diff --git a/tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator4.ts b/tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator4.ts index 6788ab36f86..0e16443d547 100644 --- a/tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator4.ts +++ b/tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator4.ts @@ -1,15 +1,16 @@ // @target: es5 var temp: any; ---temp ** 3; -++temp ** 3; -temp-- ** 3; -temp++ ** 3; +(temp) ** 3; +(--temp) ** 3; +(++temp) ** 3; +(temp--) ** 3; +(temp++) ** 3; -1 ** --temp ** 3; -1 ** ++temp ** 3; -1 ** temp-- ** 3; -1 ** temp++ ** 3; +1 ** (--temp) ** 3; +1 ** (++temp) ** 3; +1 ** (temp--) ** 3; +1 ** (temp++) ** 3; (void --temp) ** 3; (void temp--) ** 3; diff --git a/tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator4ES7.ts b/tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator4ES7.ts index d3b718a2054..6da1f54b701 100644 --- a/tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator4ES7.ts +++ b/tests/cases/conformance/es7/exponentiationOperator/emitExponentiationOperator4ES7.ts @@ -1,15 +1,16 @@ // @target: es7 var temp: any; ---temp ** 3; -++temp ** 3; -temp-- ** 3; -temp++ ** 3; +(temp) ** 3; +(--temp) ** 3; +(++temp) ** 3; +(temp--) ** 3; +(temp++) ** 3; -1 ** --temp ** 3; -1 ** ++temp ** 3; -1 ** temp-- ** 3; -1 ** temp++ ** 3; +1 ** (--temp) ** 3; +1 ** (++temp) ** 3; +1 ** (temp--) ** 3; +1 ** (temp++) ** 3; (void --temp) ** 3; (void temp--) ** 3; diff --git a/tests/cases/conformance/es7/exponentiationOperator/exponentiationOperatorSyntaxError2.ts b/tests/cases/conformance/es7/exponentiationOperator/exponentiationOperatorSyntaxError2.ts index da7cf7f0d85..e5118d18551 100644 --- a/tests/cases/conformance/es7/exponentiationOperator/exponentiationOperatorSyntaxError2.ts +++ b/tests/cases/conformance/es7/exponentiationOperator/exponentiationOperatorSyntaxError2.ts @@ -61,3 +61,9 @@ void temp-- ** 4; 1 ** !3 ** 4; 1 ** !temp++ ** 4; 1 ** !temp-- ** 4; + +temp ** 3; +++temp ** 3; +--temp ** 3; +temp++ ** 3; +temp-- ** 3; \ No newline at end of file