f619282af1
* Remove check narrowing only certain types, add test showing issues with this * string literal case test * Reconcile fix with CFA work * Defaultable -> NotNarrowable to align with use * Missed a defaultable in comments * Add test for narrowing to unions of string literals * Actually merge from master * Run fixupParentReferences when parsing isolated jsDocComment * initial revision of unit test support for project system in tsserver * Add non-widening forms of null and undefined * Create separate control flows for property declarations with initializers * Add regression test * Add tests * Remove unused variable * Add null check and CR feedback * Revert "Merge pull request #7235 from weswigham/narrow-all-types" This reverts commitef0f6c8fe4
, reversing changes made to9f087cb62a
. * reuse the fixupParentReferences function * Fix up error from merging with master
58 lines
1.6 KiB
Plaintext
58 lines
1.6 KiB
Plaintext
=== tests/cases/conformance/types/typeRelationships/widenedTypes/initializersWidened.ts ===
|
|
// these are widened to any at the point of assignment
|
|
|
|
var x1 = null;
|
|
>x1 : Symbol(x1, Decl(initializersWidened.ts, 2, 3))
|
|
|
|
var y1 = undefined;
|
|
>y1 : Symbol(y1, Decl(initializersWidened.ts, 3, 3))
|
|
>undefined : Symbol(undefined)
|
|
|
|
var z1 = void 0;
|
|
>z1 : Symbol(z1, Decl(initializersWidened.ts, 4, 3))
|
|
|
|
// these are not widened
|
|
|
|
var x2: null;
|
|
>x2 : Symbol(x2, Decl(initializersWidened.ts, 8, 3))
|
|
|
|
var y2: undefined;
|
|
>y2 : Symbol(y2, Decl(initializersWidened.ts, 9, 3))
|
|
|
|
var x3: null = null;
|
|
>x3 : Symbol(x3, Decl(initializersWidened.ts, 11, 3))
|
|
|
|
var y3: undefined = undefined;
|
|
>y3 : Symbol(y3, Decl(initializersWidened.ts, 12, 3))
|
|
>undefined : Symbol(undefined)
|
|
|
|
var z3: undefined = void 0;
|
|
>z3 : Symbol(z3, Decl(initializersWidened.ts, 13, 3))
|
|
|
|
// widen only when all constituents of union are widening
|
|
|
|
var x4 = null || null;
|
|
>x4 : Symbol(x4, Decl(initializersWidened.ts, 17, 3))
|
|
|
|
var y4 = undefined || undefined;
|
|
>y4 : Symbol(y4, Decl(initializersWidened.ts, 18, 3))
|
|
>undefined : Symbol(undefined)
|
|
>undefined : Symbol(undefined)
|
|
|
|
var z4 = void 0 || void 0;
|
|
>z4 : Symbol(z4, Decl(initializersWidened.ts, 19, 3))
|
|
|
|
var x5 = null || x2;
|
|
>x5 : Symbol(x5, Decl(initializersWidened.ts, 21, 3))
|
|
>x2 : Symbol(x2, Decl(initializersWidened.ts, 8, 3))
|
|
|
|
var y5 = undefined || y2;
|
|
>y5 : Symbol(y5, Decl(initializersWidened.ts, 22, 3))
|
|
>undefined : Symbol(undefined)
|
|
>y2 : Symbol(y2, Decl(initializersWidened.ts, 9, 3))
|
|
|
|
var z5 = void 0 || y2;
|
|
>z5 : Symbol(z5, Decl(initializersWidened.ts, 23, 3))
|
|
>y2 : Symbol(y2, Decl(initializersWidened.ts, 9, 3))
|
|
|