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
45 lines
956 B
TypeScript
45 lines
956 B
TypeScript
//// [initializersWidened.ts]
|
|
// these are widened to any at the point of assignment
|
|
|
|
var x1 = null;
|
|
var y1 = undefined;
|
|
var z1 = void 0;
|
|
|
|
// these are not widened
|
|
|
|
var x2: null;
|
|
var y2: undefined;
|
|
|
|
var x3: null = null;
|
|
var y3: undefined = undefined;
|
|
var z3: undefined = void 0;
|
|
|
|
// widen only when all constituents of union are widening
|
|
|
|
var x4 = null || null;
|
|
var y4 = undefined || undefined;
|
|
var z4 = void 0 || void 0;
|
|
|
|
var x5 = null || x2;
|
|
var y5 = undefined || y2;
|
|
var z5 = void 0 || y2;
|
|
|
|
//// [initializersWidened.js]
|
|
// these are widened to any at the point of assignment
|
|
var x1 = null;
|
|
var y1 = undefined;
|
|
var z1 = void 0;
|
|
// these are not widened
|
|
var x2;
|
|
var y2;
|
|
var x3 = null;
|
|
var y3 = undefined;
|
|
var z3 = void 0;
|
|
// widen only when all constituents of union are widening
|
|
var x4 = null || null;
|
|
var y4 = undefined || undefined;
|
|
var z4 = void 0 || void 0;
|
|
var x5 = null || x2;
|
|
var y5 = undefined || y2;
|
|
var z5 = void 0 || y2;
|