TypeScript/tests/baselines/reference/arithmeticOperatorWithUndefinedValueAndValidOperands.types

551 lines
9.2 KiB
Plaintext
Raw Normal View History

2014-08-15 23:33:16 +02:00
=== tests/cases/conformance/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithUndefinedValueAndValidOperands.ts ===
// If one operand is the undefined or undefined value, it is treated as having the type of the
// other operand.
enum E {
>E : E
2014-08-15 23:33:16 +02:00
a,
>a : E
2014-08-15 23:33:16 +02:00
b
>b : E
2014-08-15 23:33:16 +02:00
}
var a: any;
>a : any
2014-08-15 23:33:16 +02:00
var b: number;
>b : number
2014-08-15 23:33:16 +02:00
// operator *
var ra1 = undefined * a;
>ra1 : number
2014-08-15 23:33:16 +02:00
>undefined * a : number
>undefined : undefined
>a : any
2014-08-15 23:33:16 +02:00
var ra2 = undefined * b;
>ra2 : number
2014-08-15 23:33:16 +02:00
>undefined * b : number
>undefined : undefined
>b : number
2014-08-15 23:33:16 +02:00
var ra3 = undefined * 1;
>ra3 : number
2014-08-15 23:33:16 +02:00
>undefined * 1 : number
>undefined : undefined
2015-04-13 21:36:11 +02:00
>1 : number
2014-08-15 23:33:16 +02:00
var ra4 = undefined * E.a;
>ra4 : number
2014-08-15 23:33:16 +02:00
>undefined * E.a : number
>undefined : undefined
>E.a : E
>E : typeof E
>a : E
2014-08-15 23:33:16 +02:00
var ra5 = a * undefined;
>ra5 : number
2014-08-15 23:33:16 +02:00
>a * undefined : number
>a : any
>undefined : undefined
2014-08-15 23:33:16 +02:00
var ra6 = b * undefined;
>ra6 : number
2014-08-15 23:33:16 +02:00
>b * undefined : number
>b : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var ra7 = 0 * undefined;
>ra7 : number
2014-08-15 23:33:16 +02:00
>0 * undefined : number
2015-04-13 21:36:11 +02:00
>0 : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var ra8 = E.b * undefined;
>ra8 : number
2014-08-15 23:33:16 +02:00
>E.b * undefined : number
>E.b : E
>E : typeof E
>b : E
>undefined : undefined
2014-08-15 23:33:16 +02:00
// operator /
var rb1 = undefined / a;
>rb1 : number
2014-08-15 23:33:16 +02:00
>undefined / a : number
>undefined : undefined
>a : any
2014-08-15 23:33:16 +02:00
var rb2 = undefined / b;
>rb2 : number
2014-08-15 23:33:16 +02:00
>undefined / b : number
>undefined : undefined
>b : number
2014-08-15 23:33:16 +02:00
var rb3 = undefined / 1;
>rb3 : number
2014-08-15 23:33:16 +02:00
>undefined / 1 : number
>undefined : undefined
2015-04-13 21:36:11 +02:00
>1 : number
2014-08-15 23:33:16 +02:00
var rb4 = undefined / E.a;
>rb4 : number
2014-08-15 23:33:16 +02:00
>undefined / E.a : number
>undefined : undefined
>E.a : E
>E : typeof E
>a : E
2014-08-15 23:33:16 +02:00
var rb5 = a / undefined;
>rb5 : number
2014-08-15 23:33:16 +02:00
>a / undefined : number
>a : any
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rb6 = b / undefined;
>rb6 : number
2014-08-15 23:33:16 +02:00
>b / undefined : number
>b : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rb7 = 0 / undefined;
>rb7 : number
2014-08-15 23:33:16 +02:00
>0 / undefined : number
2015-04-13 21:36:11 +02:00
>0 : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rb8 = E.b / undefined;
>rb8 : number
2014-08-15 23:33:16 +02:00
>E.b / undefined : number
>E.b : E
>E : typeof E
>b : E
>undefined : undefined
2014-08-15 23:33:16 +02:00
// operator %
var rc1 = undefined % a;
>rc1 : number
2014-08-15 23:33:16 +02:00
>undefined % a : number
>undefined : undefined
>a : any
2014-08-15 23:33:16 +02:00
var rc2 = undefined % b;
>rc2 : number
2014-08-15 23:33:16 +02:00
>undefined % b : number
>undefined : undefined
>b : number
2014-08-15 23:33:16 +02:00
var rc3 = undefined % 1;
>rc3 : number
2014-08-15 23:33:16 +02:00
>undefined % 1 : number
>undefined : undefined
2015-04-13 21:36:11 +02:00
>1 : number
2014-08-15 23:33:16 +02:00
var rc4 = undefined % E.a;
>rc4 : number
2014-08-15 23:33:16 +02:00
>undefined % E.a : number
>undefined : undefined
>E.a : E
>E : typeof E
>a : E
2014-08-15 23:33:16 +02:00
var rc5 = a % undefined;
>rc5 : number
2014-08-15 23:33:16 +02:00
>a % undefined : number
>a : any
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rc6 = b % undefined;
>rc6 : number
2014-08-15 23:33:16 +02:00
>b % undefined : number
>b : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rc7 = 0 % undefined;
>rc7 : number
2014-08-15 23:33:16 +02:00
>0 % undefined : number
2015-04-13 21:36:11 +02:00
>0 : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rc8 = E.b % undefined;
>rc8 : number
2014-08-15 23:33:16 +02:00
>E.b % undefined : number
>E.b : E
>E : typeof E
>b : E
>undefined : undefined
2014-08-15 23:33:16 +02:00
// operator -
var rd1 = undefined - a;
>rd1 : number
2014-08-15 23:33:16 +02:00
>undefined - a : number
>undefined : undefined
>a : any
2014-08-15 23:33:16 +02:00
var rd2 = undefined - b;
>rd2 : number
2014-08-15 23:33:16 +02:00
>undefined - b : number
>undefined : undefined
>b : number
2014-08-15 23:33:16 +02:00
var rd3 = undefined - 1;
>rd3 : number
2014-08-15 23:33:16 +02:00
>undefined - 1 : number
>undefined : undefined
2015-04-13 21:36:11 +02:00
>1 : number
2014-08-15 23:33:16 +02:00
var rd4 = undefined - E.a;
>rd4 : number
2014-08-15 23:33:16 +02:00
>undefined - E.a : number
>undefined : undefined
>E.a : E
>E : typeof E
>a : E
2014-08-15 23:33:16 +02:00
var rd5 = a - undefined;
>rd5 : number
2014-08-15 23:33:16 +02:00
>a - undefined : number
>a : any
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rd6 = b - undefined;
>rd6 : number
2014-08-15 23:33:16 +02:00
>b - undefined : number
>b : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rd7 = 0 - undefined;
>rd7 : number
2014-08-15 23:33:16 +02:00
>0 - undefined : number
2015-04-13 21:36:11 +02:00
>0 : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rd8 = E.b - undefined;
>rd8 : number
2014-08-15 23:33:16 +02:00
>E.b - undefined : number
>E.b : E
>E : typeof E
>b : E
>undefined : undefined
2014-08-15 23:33:16 +02:00
// operator <<
var re1 = undefined << a;
>re1 : number
2014-08-15 23:33:16 +02:00
>undefined << a : number
>undefined : undefined
>a : any
2014-08-15 23:33:16 +02:00
var re2 = undefined << b;
>re2 : number
2014-08-15 23:33:16 +02:00
>undefined << b : number
>undefined : undefined
>b : number
2014-08-15 23:33:16 +02:00
var re3 = undefined << 1;
>re3 : number
2014-08-15 23:33:16 +02:00
>undefined << 1 : number
>undefined : undefined
2015-04-13 21:36:11 +02:00
>1 : number
2014-08-15 23:33:16 +02:00
var re4 = undefined << E.a;
>re4 : number
2014-08-15 23:33:16 +02:00
>undefined << E.a : number
>undefined : undefined
>E.a : E
>E : typeof E
>a : E
2014-08-15 23:33:16 +02:00
var re5 = a << undefined;
>re5 : number
2014-08-15 23:33:16 +02:00
>a << undefined : number
>a : any
>undefined : undefined
2014-08-15 23:33:16 +02:00
var re6 = b << undefined;
>re6 : number
2014-08-15 23:33:16 +02:00
>b << undefined : number
>b : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var re7 = 0 << undefined;
>re7 : number
2014-08-15 23:33:16 +02:00
>0 << undefined : number
2015-04-13 21:36:11 +02:00
>0 : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var re8 = E.b << undefined;
>re8 : number
2014-08-15 23:33:16 +02:00
>E.b << undefined : number
>E.b : E
>E : typeof E
>b : E
>undefined : undefined
2014-08-15 23:33:16 +02:00
// operator >>
var rf1 = undefined >> a;
>rf1 : number
2014-08-15 23:33:16 +02:00
>undefined >> a : number
>undefined : undefined
>a : any
2014-08-15 23:33:16 +02:00
var rf2 = undefined >> b;
>rf2 : number
2014-08-15 23:33:16 +02:00
>undefined >> b : number
>undefined : undefined
>b : number
2014-08-15 23:33:16 +02:00
var rf3 = undefined >> 1;
>rf3 : number
2014-08-15 23:33:16 +02:00
>undefined >> 1 : number
>undefined : undefined
2015-04-13 21:36:11 +02:00
>1 : number
2014-08-15 23:33:16 +02:00
var rf4 = undefined >> E.a;
>rf4 : number
2014-08-15 23:33:16 +02:00
>undefined >> E.a : number
>undefined : undefined
>E.a : E
>E : typeof E
>a : E
2014-08-15 23:33:16 +02:00
var rf5 = a >> undefined;
>rf5 : number
2014-08-15 23:33:16 +02:00
>a >> undefined : number
>a : any
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rf6 = b >> undefined;
>rf6 : number
2014-08-15 23:33:16 +02:00
>b >> undefined : number
>b : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rf7 = 0 >> undefined;
>rf7 : number
2014-08-15 23:33:16 +02:00
>0 >> undefined : number
2015-04-13 21:36:11 +02:00
>0 : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rf8 = E.b >> undefined;
>rf8 : number
2014-08-15 23:33:16 +02:00
>E.b >> undefined : number
>E.b : E
>E : typeof E
>b : E
>undefined : undefined
2014-08-15 23:33:16 +02:00
// operator >>>
var rg1 = undefined >>> a;
>rg1 : number
2014-08-15 23:33:16 +02:00
>undefined >>> a : number
>undefined : undefined
>a : any
2014-08-15 23:33:16 +02:00
var rg2 = undefined >>> b;
>rg2 : number
2014-08-15 23:33:16 +02:00
>undefined >>> b : number
>undefined : undefined
>b : number
2014-08-15 23:33:16 +02:00
var rg3 = undefined >>> 1;
>rg3 : number
2014-08-15 23:33:16 +02:00
>undefined >>> 1 : number
>undefined : undefined
2015-04-13 21:36:11 +02:00
>1 : number
2014-08-15 23:33:16 +02:00
var rg4 = undefined >>> E.a;
>rg4 : number
2014-08-15 23:33:16 +02:00
>undefined >>> E.a : number
>undefined : undefined
>E.a : E
>E : typeof E
>a : E
2014-08-15 23:33:16 +02:00
var rg5 = a >>> undefined;
>rg5 : number
2014-08-15 23:33:16 +02:00
>a >>> undefined : number
>a : any
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rg6 = b >>> undefined;
>rg6 : number
2014-08-15 23:33:16 +02:00
>b >>> undefined : number
>b : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rg7 = 0 >>> undefined;
>rg7 : number
2014-08-15 23:33:16 +02:00
>0 >>> undefined : number
2015-04-13 21:36:11 +02:00
>0 : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rg8 = E.b >>> undefined;
>rg8 : number
2014-08-15 23:33:16 +02:00
>E.b >>> undefined : number
>E.b : E
>E : typeof E
>b : E
>undefined : undefined
2014-08-15 23:33:16 +02:00
// operator &
var rh1 = undefined & a;
>rh1 : number
2014-08-15 23:33:16 +02:00
>undefined & a : number
>undefined : undefined
>a : any
2014-08-15 23:33:16 +02:00
var rh2 = undefined & b;
>rh2 : number
2014-08-15 23:33:16 +02:00
>undefined & b : number
>undefined : undefined
>b : number
2014-08-15 23:33:16 +02:00
var rh3 = undefined & 1;
>rh3 : number
2014-08-15 23:33:16 +02:00
>undefined & 1 : number
>undefined : undefined
2015-04-13 21:36:11 +02:00
>1 : number
2014-08-15 23:33:16 +02:00
var rh4 = undefined & E.a;
>rh4 : number
2014-08-15 23:33:16 +02:00
>undefined & E.a : number
>undefined : undefined
>E.a : E
>E : typeof E
>a : E
2014-08-15 23:33:16 +02:00
var rh5 = a & undefined;
>rh5 : number
2014-08-15 23:33:16 +02:00
>a & undefined : number
>a : any
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rh6 = b & undefined;
>rh6 : number
2014-08-15 23:33:16 +02:00
>b & undefined : number
>b : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rh7 = 0 & undefined;
>rh7 : number
2014-08-15 23:33:16 +02:00
>0 & undefined : number
2015-04-13 21:36:11 +02:00
>0 : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rh8 = E.b & undefined;
>rh8 : number
2014-08-15 23:33:16 +02:00
>E.b & undefined : number
>E.b : E
>E : typeof E
>b : E
>undefined : undefined
2014-08-15 23:33:16 +02:00
// operator ^
var ri1 = undefined ^ a;
>ri1 : number
2014-08-15 23:33:16 +02:00
>undefined ^ a : number
>undefined : undefined
>a : any
2014-08-15 23:33:16 +02:00
var ri2 = undefined ^ b;
>ri2 : number
2014-08-15 23:33:16 +02:00
>undefined ^ b : number
>undefined : undefined
>b : number
2014-08-15 23:33:16 +02:00
var ri3 = undefined ^ 1;
>ri3 : number
2014-08-15 23:33:16 +02:00
>undefined ^ 1 : number
>undefined : undefined
2015-04-13 21:36:11 +02:00
>1 : number
2014-08-15 23:33:16 +02:00
var ri4 = undefined ^ E.a;
>ri4 : number
2014-08-15 23:33:16 +02:00
>undefined ^ E.a : number
>undefined : undefined
>E.a : E
>E : typeof E
>a : E
2014-08-15 23:33:16 +02:00
var ri5 = a ^ undefined;
>ri5 : number
2014-08-15 23:33:16 +02:00
>a ^ undefined : number
>a : any
>undefined : undefined
2014-08-15 23:33:16 +02:00
var ri6 = b ^ undefined;
>ri6 : number
2014-08-15 23:33:16 +02:00
>b ^ undefined : number
>b : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var ri7 = 0 ^ undefined;
>ri7 : number
2014-08-15 23:33:16 +02:00
>0 ^ undefined : number
2015-04-13 21:36:11 +02:00
>0 : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var ri8 = E.b ^ undefined;
>ri8 : number
2014-08-15 23:33:16 +02:00
>E.b ^ undefined : number
>E.b : E
>E : typeof E
>b : E
>undefined : undefined
2014-08-15 23:33:16 +02:00
// operator |
var rj1 = undefined | a;
>rj1 : number
2014-08-15 23:33:16 +02:00
>undefined | a : number
>undefined : undefined
>a : any
2014-08-15 23:33:16 +02:00
var rj2 = undefined | b;
>rj2 : number
2014-08-15 23:33:16 +02:00
>undefined | b : number
>undefined : undefined
>b : number
2014-08-15 23:33:16 +02:00
var rj3 = undefined | 1;
>rj3 : number
2014-08-15 23:33:16 +02:00
>undefined | 1 : number
>undefined : undefined
2015-04-13 21:36:11 +02:00
>1 : number
2014-08-15 23:33:16 +02:00
var rj4 = undefined | E.a;
>rj4 : number
2014-08-15 23:33:16 +02:00
>undefined | E.a : number
>undefined : undefined
>E.a : E
>E : typeof E
>a : E
2014-08-15 23:33:16 +02:00
var rj5 = a | undefined;
>rj5 : number
2014-08-15 23:33:16 +02:00
>a | undefined : number
>a : any
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rj6 = b | undefined;
>rj6 : number
2014-08-15 23:33:16 +02:00
>b | undefined : number
>b : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rj7 = 0 | undefined;
>rj7 : number
2014-08-15 23:33:16 +02:00
>0 | undefined : number
2015-04-13 21:36:11 +02:00
>0 : number
>undefined : undefined
2014-08-15 23:33:16 +02:00
var rj8 = E.b | undefined;
>rj8 : number
2014-08-15 23:33:16 +02:00
>E.b | undefined : number
>E.b : E
>E : typeof E
>b : E
>undefined : undefined
2014-08-15 23:33:16 +02:00