TypeScript/tests/baselines/reference/conditionalOperatorConditoinIsAnyType.types
2015-04-15 16:44:20 -07:00

333 lines
8.6 KiB
Plaintext

=== tests/cases/conformance/expressions/conditonalOperator/conditionalOperatorConditoinIsAnyType.ts ===
//Cond ? Expr1 : Expr2, Cond is of any type, Expr1 and Expr2 have the same type
var condAny: any;
>condAny : any
var x: any;
>x : any
var exprAny1: any;
>exprAny1 : any
var exprBoolean1: boolean;
>exprBoolean1 : boolean
var exprNumber1: number;
>exprNumber1 : number
var exprString1: string;
>exprString1 : string
var exprIsObject1: Object;
>exprIsObject1 : Object
>Object : Object
var exprAny2: any;
>exprAny2 : any
var exprBoolean2: boolean;
>exprBoolean2 : boolean
var exprNumber2: number;
>exprNumber2 : number
var exprString2: string;
>exprString2 : string
var exprIsObject2: Object;
>exprIsObject2 : Object
>Object : Object
//Cond is an any type variable
condAny ? exprAny1 : exprAny2;
>condAny ? exprAny1 : exprAny2 : any
>condAny : any
>exprAny1 : any
>exprAny2 : any
condAny ? exprBoolean1 : exprBoolean2;
>condAny ? exprBoolean1 : exprBoolean2 : boolean
>condAny : any
>exprBoolean1 : boolean
>exprBoolean2 : boolean
condAny ? exprNumber1 : exprNumber2;
>condAny ? exprNumber1 : exprNumber2 : number
>condAny : any
>exprNumber1 : number
>exprNumber2 : number
condAny ? exprString1 : exprString2;
>condAny ? exprString1 : exprString2 : string
>condAny : any
>exprString1 : string
>exprString2 : string
condAny ? exprIsObject1 : exprIsObject2;
>condAny ? exprIsObject1 : exprIsObject2 : Object
>condAny : any
>exprIsObject1 : Object
>exprIsObject2 : Object
condAny ? exprString1 : exprBoolean1; // union
>condAny ? exprString1 : exprBoolean1 : string | boolean
>condAny : any
>exprString1 : string
>exprBoolean1 : boolean
//Cond is an any type literal
null ? exprAny1 : exprAny2;
>null ? exprAny1 : exprAny2 : any
>null : null
>exprAny1 : any
>exprAny2 : any
null ? exprBoolean1 : exprBoolean2;
>null ? exprBoolean1 : exprBoolean2 : boolean
>null : null
>exprBoolean1 : boolean
>exprBoolean2 : boolean
undefined ? exprNumber1 : exprNumber2;
>undefined ? exprNumber1 : exprNumber2 : number
>undefined : undefined
>exprNumber1 : number
>exprNumber2 : number
[null, undefined] ? exprString1 : exprString2;
>[null, undefined] ? exprString1 : exprString2 : string
>[null, undefined] : null[]
>null : null
>undefined : undefined
>exprString1 : string
>exprString2 : string
[null, undefined] ? exprIsObject1 : exprIsObject2;
>[null, undefined] ? exprIsObject1 : exprIsObject2 : Object
>[null, undefined] : null[]
>null : null
>undefined : undefined
>exprIsObject1 : Object
>exprIsObject2 : Object
undefined ? exprString1 : exprBoolean1; // union
>undefined ? exprString1 : exprBoolean1 : string | boolean
>undefined : undefined
>exprString1 : string
>exprBoolean1 : boolean
//Cond is an any type expression
x.doSomeThing() ? exprAny1 : exprAny2;
>x.doSomeThing() ? exprAny1 : exprAny2 : any
>x.doSomeThing() : any
>x.doSomeThing : any
>x : any
>doSomeThing : any
>exprAny1 : any
>exprAny2 : any
x("x") ? exprBoolean1 : exprBoolean2;
>x("x") ? exprBoolean1 : exprBoolean2 : boolean
>x("x") : any
>x : any
>"x" : string
>exprBoolean1 : boolean
>exprBoolean2 : boolean
x(x) ? exprNumber1 : exprNumber2;
>x(x) ? exprNumber1 : exprNumber2 : number
>x(x) : any
>x : any
>x : any
>exprNumber1 : number
>exprNumber2 : number
x("x") ? exprString1 : exprString2;
>x("x") ? exprString1 : exprString2 : string
>x("x") : any
>x : any
>"x" : string
>exprString1 : string
>exprString2 : string
x.doSomeThing() ? exprIsObject1 : exprIsObject2;
>x.doSomeThing() ? exprIsObject1 : exprIsObject2 : Object
>x.doSomeThing() : any
>x.doSomeThing : any
>x : any
>doSomeThing : any
>exprIsObject1 : Object
>exprIsObject2 : Object
x.doSomeThing() ? exprString1 : exprBoolean1; // union
>x.doSomeThing() ? exprString1 : exprBoolean1 : string | boolean
>x.doSomeThing() : any
>x.doSomeThing : any
>x : any
>doSomeThing : any
>exprString1 : string
>exprBoolean1 : boolean
//Results shoud be same as Expr1 and Expr2
var resultIsAny1 = condAny ? exprAny1 : exprAny2;
>resultIsAny1 : any
>condAny ? exprAny1 : exprAny2 : any
>condAny : any
>exprAny1 : any
>exprAny2 : any
var resultIsBoolean1 = condAny ? exprBoolean1 : exprBoolean2;
>resultIsBoolean1 : boolean
>condAny ? exprBoolean1 : exprBoolean2 : boolean
>condAny : any
>exprBoolean1 : boolean
>exprBoolean2 : boolean
var resultIsNumber1 = condAny ? exprNumber1 : exprNumber2;
>resultIsNumber1 : number
>condAny ? exprNumber1 : exprNumber2 : number
>condAny : any
>exprNumber1 : number
>exprNumber2 : number
var resultIsString1 = condAny ? exprString1 : exprString2;
>resultIsString1 : string
>condAny ? exprString1 : exprString2 : string
>condAny : any
>exprString1 : string
>exprString2 : string
var resultIsObject1 = condAny ? exprIsObject1 : exprIsObject2;
>resultIsObject1 : Object
>condAny ? exprIsObject1 : exprIsObject2 : Object
>condAny : any
>exprIsObject1 : Object
>exprIsObject2 : Object
var resultIsStringOrBoolean1 = condAny ? exprString1 : exprBoolean1; // union
>resultIsStringOrBoolean1 : string | boolean
>condAny ? exprString1 : exprBoolean1 : string | boolean
>condAny : any
>exprString1 : string
>exprBoolean1 : boolean
var resultIsAny2 = null ? exprAny1 : exprAny2;
>resultIsAny2 : any
>null ? exprAny1 : exprAny2 : any
>null : null
>exprAny1 : any
>exprAny2 : any
var resultIsBoolean2 = null ? exprBoolean1 : exprBoolean2;
>resultIsBoolean2 : boolean
>null ? exprBoolean1 : exprBoolean2 : boolean
>null : null
>exprBoolean1 : boolean
>exprBoolean2 : boolean
var resultIsNumber2 = undefined ? exprNumber1 : exprNumber2;
>resultIsNumber2 : number
>undefined ? exprNumber1 : exprNumber2 : number
>undefined : undefined
>exprNumber1 : number
>exprNumber2 : number
var resultIsString2 = [null, undefined] ? exprString1 : exprString2;
>resultIsString2 : string
>[null, undefined] ? exprString1 : exprString2 : string
>[null, undefined] : null[]
>null : null
>undefined : undefined
>exprString1 : string
>exprString2 : string
var resultIsObject2 = [null, undefined] ? exprIsObject1 : exprIsObject2;
>resultIsObject2 : Object
>[null, undefined] ? exprIsObject1 : exprIsObject2 : Object
>[null, undefined] : null[]
>null : null
>undefined : undefined
>exprIsObject1 : Object
>exprIsObject2 : Object
var resultIsStringOrBoolean2 = null ? exprString1 : exprBoolean1; // union
>resultIsStringOrBoolean2 : string | boolean
>null ? exprString1 : exprBoolean1 : string | boolean
>null : null
>exprString1 : string
>exprBoolean1 : boolean
var resultIsStringOrBoolean3 = undefined ? exprString1 : exprBoolean1; // union
>resultIsStringOrBoolean3 : string | boolean
>undefined ? exprString1 : exprBoolean1 : string | boolean
>undefined : undefined
>exprString1 : string
>exprBoolean1 : boolean
var resultIsStringOrBoolean4 = [null, undefined] ? exprString1 : exprBoolean1; // union
>resultIsStringOrBoolean4 : string | boolean
>[null, undefined] ? exprString1 : exprBoolean1 : string | boolean
>[null, undefined] : null[]
>null : null
>undefined : undefined
>exprString1 : string
>exprBoolean1 : boolean
var resultIsAny3 = x.doSomeThing() ? exprAny1 : exprAny2;
>resultIsAny3 : any
>x.doSomeThing() ? exprAny1 : exprAny2 : any
>x.doSomeThing() : any
>x.doSomeThing : any
>x : any
>doSomeThing : any
>exprAny1 : any
>exprAny2 : any
var resultIsBoolean3 = x("x") ? exprBoolean1 : exprBoolean2;
>resultIsBoolean3 : boolean
>x("x") ? exprBoolean1 : exprBoolean2 : boolean
>x("x") : any
>x : any
>"x" : string
>exprBoolean1 : boolean
>exprBoolean2 : boolean
var resultIsNumber3 = x(x) ? exprNumber1 : exprNumber2;
>resultIsNumber3 : number
>x(x) ? exprNumber1 : exprNumber2 : number
>x(x) : any
>x : any
>x : any
>exprNumber1 : number
>exprNumber2 : number
var resultIsString3 = x("x") ? exprString1 : exprString2;
>resultIsString3 : string
>x("x") ? exprString1 : exprString2 : string
>x("x") : any
>x : any
>"x" : string
>exprString1 : string
>exprString2 : string
var resultIsObject3 = x.doSomeThing() ? exprIsObject1 : exprIsObject2;
>resultIsObject3 : Object
>x.doSomeThing() ? exprIsObject1 : exprIsObject2 : Object
>x.doSomeThing() : any
>x.doSomeThing : any
>x : any
>doSomeThing : any
>exprIsObject1 : Object
>exprIsObject2 : Object
var resultIsStringOrBoolean5 = x.doSomeThing() ? exprString1 : exprBoolean1; // union
>resultIsStringOrBoolean5 : string | boolean
>x.doSomeThing() ? exprString1 : exprBoolean1 : string | boolean
>x.doSomeThing() : any
>x.doSomeThing : any
>x : any
>doSomeThing : any
>exprString1 : string
>exprBoolean1 : boolean