* 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
62 lines
818 B
TypeScript
62 lines
818 B
TypeScript
//// [objectLiteralWidened.ts]
|
|
// object literal properties are widened to any
|
|
|
|
var x1 = {
|
|
foo: null,
|
|
bar: undefined
|
|
}
|
|
|
|
var y1 = {
|
|
foo: null,
|
|
bar: {
|
|
baz: null,
|
|
boo: undefined
|
|
}
|
|
}
|
|
|
|
// these are not widened
|
|
|
|
var u: undefined = undefined;
|
|
var n: null = null;
|
|
|
|
var x2 = {
|
|
foo: n,
|
|
bar: u
|
|
}
|
|
|
|
var y2 = {
|
|
foo: n,
|
|
bar: {
|
|
baz: n,
|
|
boo: u
|
|
}
|
|
}
|
|
|
|
//// [objectLiteralWidened.js]
|
|
// object literal properties are widened to any
|
|
var x1 = {
|
|
foo: null,
|
|
bar: undefined
|
|
};
|
|
var y1 = {
|
|
foo: null,
|
|
bar: {
|
|
baz: null,
|
|
boo: undefined
|
|
}
|
|
};
|
|
// these are not widened
|
|
var u = undefined;
|
|
var n = null;
|
|
var x2 = {
|
|
foo: n,
|
|
bar: u
|
|
};
|
|
var y2 = {
|
|
foo: n,
|
|
bar: {
|
|
baz: n,
|
|
boo: u
|
|
}
|
|
};
|