903 lines
11 KiB
Text
903 lines
11 KiB
Text
=== tests/cases/conformance/expressions/binaryOperators/arithmeticOperator/arithmeticOperatorWithEnumUnion.ts ===
|
|
// operands of an enum type are treated as having the primitive type Number.
|
|
|
|
enum E {
|
|
>E : E
|
|
|
|
a,
|
|
>a : E
|
|
|
|
b
|
|
>b : E
|
|
}
|
|
enum F {
|
|
>F : F
|
|
|
|
c,
|
|
>c : F
|
|
|
|
d
|
|
>d : F
|
|
}
|
|
|
|
var a: any;
|
|
>a : any
|
|
|
|
var b: number;
|
|
>b : number
|
|
|
|
var c: E | F;
|
|
>c : E | F
|
|
>E : E
|
|
>F : F
|
|
|
|
// operator *
|
|
var ra1 = c * a;
|
|
>ra1 : number
|
|
>c * a : number
|
|
>c : E | F
|
|
>a : any
|
|
|
|
var ra2 = c * b;
|
|
>ra2 : number
|
|
>c * b : number
|
|
>c : E | F
|
|
>b : number
|
|
|
|
var ra3 = c * c;
|
|
>ra3 : number
|
|
>c * c : number
|
|
>c : E | F
|
|
>c : E | F
|
|
|
|
var ra4 = a * c;
|
|
>ra4 : number
|
|
>a * c : number
|
|
>a : any
|
|
>c : E | F
|
|
|
|
var ra5 = b * c;
|
|
>ra5 : number
|
|
>b * c : number
|
|
>b : number
|
|
>c : E | F
|
|
|
|
var ra6 = E.a * a;
|
|
>ra6 : number
|
|
>E.a * a : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>a : any
|
|
|
|
var ra7 = E.a * b;
|
|
>ra7 : number
|
|
>E.a * b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>b : number
|
|
|
|
var ra8 = E.a * E.b;
|
|
>ra8 : number
|
|
>E.a * E.b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var ra9 = E.a * 1;
|
|
>ra9 : number
|
|
>E.a * 1 : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
|
|
var ra10 = a * E.b;
|
|
>ra10 : number
|
|
>a * E.b : number
|
|
>a : any
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var ra11 = b * E.b;
|
|
>ra11 : number
|
|
>b * E.b : number
|
|
>b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var ra12 = 1 * E.b;
|
|
>ra12 : number
|
|
>1 * E.b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
// operator /
|
|
var rb1 = c / a;
|
|
>rb1 : number
|
|
>c / a : number
|
|
>c : E | F
|
|
>a : any
|
|
|
|
var rb2 = c / b;
|
|
>rb2 : number
|
|
>c / b : number
|
|
>c : E | F
|
|
>b : number
|
|
|
|
var rb3 = c / c;
|
|
>rb3 : number
|
|
>c / c : number
|
|
>c : E | F
|
|
>c : E | F
|
|
|
|
var rb4 = a / c;
|
|
>rb4 : number
|
|
>a / c : number
|
|
>a : any
|
|
>c : E | F
|
|
|
|
var rb5 = b / c;
|
|
>rb5 : number
|
|
>b / c : number
|
|
>b : number
|
|
>c : E | F
|
|
|
|
var rb6 = E.a / a;
|
|
>rb6 : number
|
|
>E.a / a : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>a : any
|
|
|
|
var rb7 = E.a / b;
|
|
>rb7 : number
|
|
>E.a / b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>b : number
|
|
|
|
var rb8 = E.a / E.b;
|
|
>rb8 : number
|
|
>E.a / E.b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rb9 = E.a / 1;
|
|
>rb9 : number
|
|
>E.a / 1 : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
|
|
var rb10 = a / E.b;
|
|
>rb10 : number
|
|
>a / E.b : number
|
|
>a : any
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rb11 = b / E.b;
|
|
>rb11 : number
|
|
>b / E.b : number
|
|
>b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rb12 = 1 / E.b;
|
|
>rb12 : number
|
|
>1 / E.b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
// operator %
|
|
var rc1 = c % a;
|
|
>rc1 : number
|
|
>c % a : number
|
|
>c : E | F
|
|
>a : any
|
|
|
|
var rc2 = c % b;
|
|
>rc2 : number
|
|
>c % b : number
|
|
>c : E | F
|
|
>b : number
|
|
|
|
var rc3 = c % c;
|
|
>rc3 : number
|
|
>c % c : number
|
|
>c : E | F
|
|
>c : E | F
|
|
|
|
var rc4 = a % c;
|
|
>rc4 : number
|
|
>a % c : number
|
|
>a : any
|
|
>c : E | F
|
|
|
|
var rc5 = b % c;
|
|
>rc5 : number
|
|
>b % c : number
|
|
>b : number
|
|
>c : E | F
|
|
|
|
var rc6 = E.a % a;
|
|
>rc6 : number
|
|
>E.a % a : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>a : any
|
|
|
|
var rc7 = E.a % b;
|
|
>rc7 : number
|
|
>E.a % b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>b : number
|
|
|
|
var rc8 = E.a % E.b;
|
|
>rc8 : number
|
|
>E.a % E.b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rc9 = E.a % 1;
|
|
>rc9 : number
|
|
>E.a % 1 : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
|
|
var rc10 = a % E.b;
|
|
>rc10 : number
|
|
>a % E.b : number
|
|
>a : any
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rc11 = b % E.b;
|
|
>rc11 : number
|
|
>b % E.b : number
|
|
>b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rc12 = 1 % E.b;
|
|
>rc12 : number
|
|
>1 % E.b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
// operator -
|
|
var rd1 = c - a;
|
|
>rd1 : number
|
|
>c - a : number
|
|
>c : E | F
|
|
>a : any
|
|
|
|
var rd2 = c - b;
|
|
>rd2 : number
|
|
>c - b : number
|
|
>c : E | F
|
|
>b : number
|
|
|
|
var rd3 = c - c;
|
|
>rd3 : number
|
|
>c - c : number
|
|
>c : E | F
|
|
>c : E | F
|
|
|
|
var rd4 = a - c;
|
|
>rd4 : number
|
|
>a - c : number
|
|
>a : any
|
|
>c : E | F
|
|
|
|
var rd5 = b - c;
|
|
>rd5 : number
|
|
>b - c : number
|
|
>b : number
|
|
>c : E | F
|
|
|
|
var rd6 = E.a - a;
|
|
>rd6 : number
|
|
>E.a - a : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>a : any
|
|
|
|
var rd7 = E.a - b;
|
|
>rd7 : number
|
|
>E.a - b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>b : number
|
|
|
|
var rd8 = E.a - E.b;
|
|
>rd8 : number
|
|
>E.a - E.b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rd9 = E.a - 1;
|
|
>rd9 : number
|
|
>E.a - 1 : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
|
|
var rd10 = a - E.b;
|
|
>rd10 : number
|
|
>a - E.b : number
|
|
>a : any
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rd11 = b - E.b;
|
|
>rd11 : number
|
|
>b - E.b : number
|
|
>b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rd12 = 1 - E.b;
|
|
>rd12 : number
|
|
>1 - E.b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
// operator <<
|
|
var re1 = c << a;
|
|
>re1 : number
|
|
>c << a : number
|
|
>c : E | F
|
|
>a : any
|
|
|
|
var re2 = c << b;
|
|
>re2 : number
|
|
>c << b : number
|
|
>c : E | F
|
|
>b : number
|
|
|
|
var re3 = c << c;
|
|
>re3 : number
|
|
>c << c : number
|
|
>c : E | F
|
|
>c : E | F
|
|
|
|
var re4 = a << c;
|
|
>re4 : number
|
|
>a << c : number
|
|
>a : any
|
|
>c : E | F
|
|
|
|
var re5 = b << c;
|
|
>re5 : number
|
|
>b << c : number
|
|
>b : number
|
|
>c : E | F
|
|
|
|
var re6 = E.a << a;
|
|
>re6 : number
|
|
>E.a << a : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>a : any
|
|
|
|
var re7 = E.a << b;
|
|
>re7 : number
|
|
>E.a << b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>b : number
|
|
|
|
var re8 = E.a << E.b;
|
|
>re8 : number
|
|
>E.a << E.b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var re9 = E.a << 1;
|
|
>re9 : number
|
|
>E.a << 1 : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
|
|
var re10 = a << E.b;
|
|
>re10 : number
|
|
>a << E.b : number
|
|
>a : any
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var re11 = b << E.b;
|
|
>re11 : number
|
|
>b << E.b : number
|
|
>b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var re12 = 1 << E.b;
|
|
>re12 : number
|
|
>1 << E.b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
// operator >>
|
|
var rf1 = c >> a;
|
|
>rf1 : number
|
|
>c >> a : number
|
|
>c : E | F
|
|
>a : any
|
|
|
|
var rf2 = c >> b;
|
|
>rf2 : number
|
|
>c >> b : number
|
|
>c : E | F
|
|
>b : number
|
|
|
|
var rf3 = c >> c;
|
|
>rf3 : number
|
|
>c >> c : number
|
|
>c : E | F
|
|
>c : E | F
|
|
|
|
var rf4 = a >> c;
|
|
>rf4 : number
|
|
>a >> c : number
|
|
>a : any
|
|
>c : E | F
|
|
|
|
var rf5 = b >> c;
|
|
>rf5 : number
|
|
>b >> c : number
|
|
>b : number
|
|
>c : E | F
|
|
|
|
var rf6 = E.a >> a;
|
|
>rf6 : number
|
|
>E.a >> a : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>a : any
|
|
|
|
var rf7 = E.a >> b;
|
|
>rf7 : number
|
|
>E.a >> b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>b : number
|
|
|
|
var rf8 = E.a >> E.b;
|
|
>rf8 : number
|
|
>E.a >> E.b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rf9 = E.a >> 1;
|
|
>rf9 : number
|
|
>E.a >> 1 : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
|
|
var rf10 = a >> E.b;
|
|
>rf10 : number
|
|
>a >> E.b : number
|
|
>a : any
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rf11 = b >> E.b;
|
|
>rf11 : number
|
|
>b >> E.b : number
|
|
>b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rf12 = 1 >> E.b;
|
|
>rf12 : number
|
|
>1 >> E.b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
// operator >>>
|
|
var rg1 = c >>> a;
|
|
>rg1 : number
|
|
>c >>> a : number
|
|
>c : E | F
|
|
>a : any
|
|
|
|
var rg2 = c >>> b;
|
|
>rg2 : number
|
|
>c >>> b : number
|
|
>c : E | F
|
|
>b : number
|
|
|
|
var rg3 = c >>> c;
|
|
>rg3 : number
|
|
>c >>> c : number
|
|
>c : E | F
|
|
>c : E | F
|
|
|
|
var rg4 = a >>> c;
|
|
>rg4 : number
|
|
>a >>> c : number
|
|
>a : any
|
|
>c : E | F
|
|
|
|
var rg5 = b >>> c;
|
|
>rg5 : number
|
|
>b >>> c : number
|
|
>b : number
|
|
>c : E | F
|
|
|
|
var rg6 = E.a >>> a;
|
|
>rg6 : number
|
|
>E.a >>> a : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>a : any
|
|
|
|
var rg7 = E.a >>> b;
|
|
>rg7 : number
|
|
>E.a >>> b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>b : number
|
|
|
|
var rg8 = E.a >>> E.b;
|
|
>rg8 : number
|
|
>E.a >>> E.b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rg9 = E.a >>> 1;
|
|
>rg9 : number
|
|
>E.a >>> 1 : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
|
|
var rg10 = a >>> E.b;
|
|
>rg10 : number
|
|
>a >>> E.b : number
|
|
>a : any
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rg11 = b >>> E.b;
|
|
>rg11 : number
|
|
>b >>> E.b : number
|
|
>b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rg12 = 1 >>> E.b;
|
|
>rg12 : number
|
|
>1 >>> E.b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
// operator &
|
|
var rh1 = c & a;
|
|
>rh1 : number
|
|
>c & a : number
|
|
>c : E | F
|
|
>a : any
|
|
|
|
var rh2 = c & b;
|
|
>rh2 : number
|
|
>c & b : number
|
|
>c : E | F
|
|
>b : number
|
|
|
|
var rh3 = c & c;
|
|
>rh3 : number
|
|
>c & c : number
|
|
>c : E | F
|
|
>c : E | F
|
|
|
|
var rh4 = a & c;
|
|
>rh4 : number
|
|
>a & c : number
|
|
>a : any
|
|
>c : E | F
|
|
|
|
var rh5 = b & c;
|
|
>rh5 : number
|
|
>b & c : number
|
|
>b : number
|
|
>c : E | F
|
|
|
|
var rh6 = E.a & a;
|
|
>rh6 : number
|
|
>E.a & a : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>a : any
|
|
|
|
var rh7 = E.a & b;
|
|
>rh7 : number
|
|
>E.a & b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>b : number
|
|
|
|
var rh8 = E.a & E.b;
|
|
>rh8 : number
|
|
>E.a & E.b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rh9 = E.a & 1;
|
|
>rh9 : number
|
|
>E.a & 1 : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
|
|
var rh10 = a & E.b;
|
|
>rh10 : number
|
|
>a & E.b : number
|
|
>a : any
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rh11 = b & E.b;
|
|
>rh11 : number
|
|
>b & E.b : number
|
|
>b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rh12 = 1 & E.b;
|
|
>rh12 : number
|
|
>1 & E.b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
// operator ^
|
|
var ri1 = c ^ a;
|
|
>ri1 : number
|
|
>c ^ a : number
|
|
>c : E | F
|
|
>a : any
|
|
|
|
var ri2 = c ^ b;
|
|
>ri2 : number
|
|
>c ^ b : number
|
|
>c : E | F
|
|
>b : number
|
|
|
|
var ri3 = c ^ c;
|
|
>ri3 : number
|
|
>c ^ c : number
|
|
>c : E | F
|
|
>c : E | F
|
|
|
|
var ri4 = a ^ c;
|
|
>ri4 : number
|
|
>a ^ c : number
|
|
>a : any
|
|
>c : E | F
|
|
|
|
var ri5 = b ^ c;
|
|
>ri5 : number
|
|
>b ^ c : number
|
|
>b : number
|
|
>c : E | F
|
|
|
|
var ri6 = E.a ^ a;
|
|
>ri6 : number
|
|
>E.a ^ a : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>a : any
|
|
|
|
var ri7 = E.a ^ b;
|
|
>ri7 : number
|
|
>E.a ^ b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>b : number
|
|
|
|
var ri8 = E.a ^ E.b;
|
|
>ri8 : number
|
|
>E.a ^ E.b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var ri9 = E.a ^ 1;
|
|
>ri9 : number
|
|
>E.a ^ 1 : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
|
|
var ri10 = a ^ E.b;
|
|
>ri10 : number
|
|
>a ^ E.b : number
|
|
>a : any
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var ri11 = b ^ E.b;
|
|
>ri11 : number
|
|
>b ^ E.b : number
|
|
>b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var ri12 = 1 ^ E.b;
|
|
>ri12 : number
|
|
>1 ^ E.b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
// operator |
|
|
var rj1 = c | a;
|
|
>rj1 : number
|
|
>c | a : number
|
|
>c : E | F
|
|
>a : any
|
|
|
|
var rj2 = c | b;
|
|
>rj2 : number
|
|
>c | b : number
|
|
>c : E | F
|
|
>b : number
|
|
|
|
var rj3 = c | c;
|
|
>rj3 : number
|
|
>c | c : number
|
|
>c : E | F
|
|
>c : E | F
|
|
|
|
var rj4 = a | c;
|
|
>rj4 : number
|
|
>a | c : number
|
|
>a : any
|
|
>c : E | F
|
|
|
|
var rj5 = b | c;
|
|
>rj5 : number
|
|
>b | c : number
|
|
>b : number
|
|
>c : E | F
|
|
|
|
var rj6 = E.a | a;
|
|
>rj6 : number
|
|
>E.a | a : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>a : any
|
|
|
|
var rj7 = E.a | b;
|
|
>rj7 : number
|
|
>E.a | b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>b : number
|
|
|
|
var rj8 = E.a | E.b;
|
|
>rj8 : number
|
|
>E.a | E.b : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rj9 = E.a | 1;
|
|
>rj9 : number
|
|
>E.a | 1 : number
|
|
>E.a : E
|
|
>E : typeof E
|
|
>a : E
|
|
|
|
var rj10 = a | E.b;
|
|
>rj10 : number
|
|
>a | E.b : number
|
|
>a : any
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rj11 = b | E.b;
|
|
>rj11 : number
|
|
>b | E.b : number
|
|
>b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|
|
var rj12 = 1 | E.b;
|
|
>rj12 : number
|
|
>1 | E.b : number
|
|
>E.b : E
|
|
>E : typeof E
|
|
>b : E
|
|
|