TypeScript/tests/baselines/reference/objectLiteralWidened.types
Yui f619282af1 [Transforms] Update transforms with recent master (#8960)
* 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 commit ef0f6c8fe4, reversing
changes made to 9f087cb62a.

* reuse the fixupParentReferences function

* Fix up error from merging with master
2016-06-03 11:02:35 -07:00

84 lines
1.6 KiB
Plaintext

=== tests/cases/conformance/types/typeRelationships/widenedTypes/objectLiteralWidened.ts ===
// object literal properties are widened to any
var x1 = {
>x1 : { foo: any; bar: any; }
>{ foo: null, bar: undefined} : { foo: null; bar: undefined; }
foo: null,
>foo : null
>null : null
bar: undefined
>bar : undefined
>undefined : undefined
}
var y1 = {
>y1 : { foo: any; bar: { baz: any; boo: any; }; }
>{ foo: null, bar: { baz: null, boo: undefined }} : { foo: null; bar: { baz: null; boo: undefined; }; }
foo: null,
>foo : null
>null : null
bar: {
>bar : { baz: null; boo: undefined; }
>{ baz: null, boo: undefined } : { baz: null; boo: undefined; }
baz: null,
>baz : null
>null : null
boo: undefined
>boo : undefined
>undefined : undefined
}
}
// these are not widened
var u: undefined = undefined;
>u : undefined
>undefined : undefined
var n: null = null;
>n : null
>null : null
>null : null
var x2 = {
>x2 : { foo: null; bar: undefined; }
>{ foo: n, bar: u} : { foo: null; bar: undefined; }
foo: n,
>foo : null
>n : null
bar: u
>bar : undefined
>u : undefined
}
var y2 = {
>y2 : { foo: null; bar: { baz: null; boo: undefined; }; }
>{ foo: n, bar: { baz: n, boo: u }} : { foo: null; bar: { baz: null; boo: undefined; }; }
foo: n,
>foo : null
>n : null
bar: {
>bar : { baz: null; boo: undefined; }
>{ baz: n, boo: u } : { baz: null; boo: undefined; }
baz: n,
>baz : null
>n : null
boo: u
>boo : undefined
>u : undefined
}
}