* Accept change * Accept the huge set of ever so slightly changed baselines * Update return type logic to only reuse nodes if original nodes share scope with current node, like property types, only reuse nodes if symbols referened are acessible, reuse nodes for property signatures, too * Only reuse nodes when a context is provided (otherwise identifier printback may fail) * Only track symbol if symbol is found and no error is recorded * Fix type parameter reuse lookup * Forbid cjs module.exports references in retained nodes * Adjust check for cjs export references to not include bad module type in output * Add symbol to all identifiers we see in existing nodes for quickinfo * Accept fourslash baseline updates * Accept slightly updated baseline post-merge * Do not copy original nodes for error types, replace empty type references with any
174 lines
6.3 KiB
Plaintext
174 lines
6.3 KiB
Plaintext
=== tests/cases/conformance/expressions/optionalChaining/delete/deleteChain.ts ===
|
|
declare const o1: undefined | { b: string };
|
|
>o1 : { b: string; } | undefined
|
|
>b : string
|
|
|
|
delete o1?.b;
|
|
>delete o1?.b : boolean
|
|
>o1?.b : string | undefined
|
|
>o1 : { b: string; } | undefined
|
|
>b : string | undefined
|
|
|
|
delete (o1?.b);
|
|
>delete (o1?.b) : boolean
|
|
>(o1?.b) : string | undefined
|
|
>o1?.b : string | undefined
|
|
>o1 : { b: string; } | undefined
|
|
>b : string | undefined
|
|
|
|
declare const o2: undefined | { b: { c: string } };
|
|
>o2 : { b: { c: string;}; } | undefined
|
|
>b : { c: string; }
|
|
>c : string
|
|
|
|
delete o2?.b.c;
|
|
>delete o2?.b.c : boolean
|
|
>o2?.b.c : string | undefined
|
|
>o2?.b : { c: string; } | undefined
|
|
>o2 : { b: { c: string; }; } | undefined
|
|
>b : { c: string; } | undefined
|
|
>c : string | undefined
|
|
|
|
delete (o2?.b.c);
|
|
>delete (o2?.b.c) : boolean
|
|
>(o2?.b.c) : string | undefined
|
|
>o2?.b.c : string | undefined
|
|
>o2?.b : { c: string; } | undefined
|
|
>o2 : { b: { c: string; }; } | undefined
|
|
>b : { c: string; } | undefined
|
|
>c : string | undefined
|
|
|
|
declare const o3: { b: undefined | { c: string } };
|
|
>o3 : { b: undefined | { c: string;}; }
|
|
>b : { c: string; } | undefined
|
|
>c : string
|
|
|
|
delete o3.b?.c;
|
|
>delete o3.b?.c : boolean
|
|
>o3.b?.c : string | undefined
|
|
>o3.b : { c: string; } | undefined
|
|
>o3 : { b: { c: string; } | undefined; }
|
|
>b : { c: string; } | undefined
|
|
>c : string | undefined
|
|
|
|
delete (o3.b?.c);
|
|
>delete (o3.b?.c) : boolean
|
|
>(o3.b?.c) : string | undefined
|
|
>o3.b?.c : string | undefined
|
|
>o3.b : { c: string; } | undefined
|
|
>o3 : { b: { c: string; } | undefined; }
|
|
>b : { c: string; } | undefined
|
|
>c : string | undefined
|
|
|
|
declare const o4: { b?: { c: { d?: { e: string } } } };
|
|
>o4 : { b?: { c: { d?: { e: string; };}; } | undefined; }
|
|
>b : { c: { d?: { e: string; };}; } | undefined
|
|
>c : { d?: { e: string; } | undefined; }
|
|
>d : { e: string; } | undefined
|
|
>e : string
|
|
|
|
delete o4.b?.c.d?.e;
|
|
>delete o4.b?.c.d?.e : boolean
|
|
>o4.b?.c.d?.e : string | undefined
|
|
>o4.b?.c.d : { e: string; } | undefined
|
|
>o4.b?.c : { d?: { e: string; } | undefined; } | undefined
|
|
>o4.b : { c: { d?: { e: string; } | undefined; }; } | undefined
|
|
>o4 : { b?: { c: { d?: { e: string; } | undefined; }; } | undefined; }
|
|
>b : { c: { d?: { e: string; } | undefined; }; } | undefined
|
|
>c : { d?: { e: string; } | undefined; } | undefined
|
|
>d : { e: string; } | undefined
|
|
>e : string | undefined
|
|
|
|
delete (o4.b?.c.d)?.e;
|
|
>delete (o4.b?.c.d)?.e : boolean
|
|
>(o4.b?.c.d)?.e : string | undefined
|
|
>(o4.b?.c.d) : { e: string; } | undefined
|
|
>o4.b?.c.d : { e: string; } | undefined
|
|
>o4.b?.c : { d?: { e: string; } | undefined; } | undefined
|
|
>o4.b : { c: { d?: { e: string; } | undefined; }; } | undefined
|
|
>o4 : { b?: { c: { d?: { e: string; } | undefined; }; } | undefined; }
|
|
>b : { c: { d?: { e: string; } | undefined; }; } | undefined
|
|
>c : { d?: { e: string; } | undefined; } | undefined
|
|
>d : { e: string; } | undefined
|
|
>e : string | undefined
|
|
|
|
delete (o4.b?.c.d?.e);
|
|
>delete (o4.b?.c.d?.e) : boolean
|
|
>(o4.b?.c.d?.e) : string | undefined
|
|
>o4.b?.c.d?.e : string | undefined
|
|
>o4.b?.c.d : { e: string; } | undefined
|
|
>o4.b?.c : { d?: { e: string; } | undefined; } | undefined
|
|
>o4.b : { c: { d?: { e: string; } | undefined; }; } | undefined
|
|
>o4 : { b?: { c: { d?: { e: string; } | undefined; }; } | undefined; }
|
|
>b : { c: { d?: { e: string; } | undefined; }; } | undefined
|
|
>c : { d?: { e: string; } | undefined; } | undefined
|
|
>d : { e: string; } | undefined
|
|
>e : string | undefined
|
|
|
|
declare const o5: { b?(): { c: { d?: { e: string } } } };
|
|
>o5 : { b?(): { c: { d?: { e: string; }; };}; }
|
|
>b : (() => { c: { d?: { e: string; }; };}) | undefined
|
|
>c : { d?: { e: string; } | undefined; }
|
|
>d : { e: string; } | undefined
|
|
>e : string
|
|
|
|
delete o5.b?.().c.d?.e;
|
|
>delete o5.b?.().c.d?.e : boolean
|
|
>o5.b?.().c.d?.e : string | undefined
|
|
>o5.b?.().c.d : { e: string; } | undefined
|
|
>o5.b?.().c : { d?: { e: string; } | undefined; } | undefined
|
|
>o5.b?.() : { c: { d?: { e: string; } | undefined; }; } | undefined
|
|
>o5.b : (() => { c: { d?: { e: string; } | undefined; }; }) | undefined
|
|
>o5 : { b?(): { c: { d?: { e: string; } | undefined; }; }; }
|
|
>b : (() => { c: { d?: { e: string; } | undefined; }; }) | undefined
|
|
>c : { d?: { e: string; } | undefined; } | undefined
|
|
>d : { e: string; } | undefined
|
|
>e : string | undefined
|
|
|
|
delete (o5.b?.().c.d?.e);
|
|
>delete (o5.b?.().c.d?.e) : boolean
|
|
>(o5.b?.().c.d?.e) : string | undefined
|
|
>o5.b?.().c.d?.e : string | undefined
|
|
>o5.b?.().c.d : { e: string; } | undefined
|
|
>o5.b?.().c : { d?: { e: string; } | undefined; } | undefined
|
|
>o5.b?.() : { c: { d?: { e: string; } | undefined; }; } | undefined
|
|
>o5.b : (() => { c: { d?: { e: string; } | undefined; }; }) | undefined
|
|
>o5 : { b?(): { c: { d?: { e: string; } | undefined; }; }; }
|
|
>b : (() => { c: { d?: { e: string; } | undefined; }; }) | undefined
|
|
>c : { d?: { e: string; } | undefined; } | undefined
|
|
>d : { e: string; } | undefined
|
|
>e : string | undefined
|
|
|
|
declare const o6: { b?: { c: { d?: { e: string } } } };
|
|
>o6 : { b?: { c: { d?: { e: string; };}; } | undefined; }
|
|
>b : { c: { d?: { e: string; };}; } | undefined
|
|
>c : { d?: { e: string; } | undefined; }
|
|
>d : { e: string; } | undefined
|
|
>e : string
|
|
|
|
delete o6.b?.['c'].d?.['e'];
|
|
>delete o6.b?.['c'].d?.['e'] : boolean
|
|
>o6.b?.['c'].d?.['e'] : string | undefined
|
|
>o6.b?.['c'].d : { e: string; } | undefined
|
|
>o6.b?.['c'] : { d?: { e: string; } | undefined; } | undefined
|
|
>o6.b : { c: { d?: { e: string; } | undefined; }; } | undefined
|
|
>o6 : { b?: { c: { d?: { e: string; } | undefined; }; } | undefined; }
|
|
>b : { c: { d?: { e: string; } | undefined; }; } | undefined
|
|
>'c' : "c"
|
|
>d : { e: string; } | undefined
|
|
>'e' : "e"
|
|
|
|
delete (o6.b?.['c'].d?.['e']);
|
|
>delete (o6.b?.['c'].d?.['e']) : boolean
|
|
>(o6.b?.['c'].d?.['e']) : string | undefined
|
|
>o6.b?.['c'].d?.['e'] : string | undefined
|
|
>o6.b?.['c'].d : { e: string; } | undefined
|
|
>o6.b?.['c'] : { d?: { e: string; } | undefined; } | undefined
|
|
>o6.b : { c: { d?: { e: string; } | undefined; }; } | undefined
|
|
>o6 : { b?: { c: { d?: { e: string; } | undefined; }; } | undefined; }
|
|
>b : { c: { d?: { e: string; } | undefined; }; } | undefined
|
|
>'c' : "c"
|
|
>d : { e: string; } | undefined
|
|
>'e' : "e"
|
|
|