|
| 1 | +=== tests/cases/compiler/nestedTypevariableInfersLiteral.ts === |
| 2 | +// https://github.com/Microsoft/TypeScript/issues/19632 |
| 3 | +declare function direct<A extends string>(a: A | A[]): Record<A, string> |
| 4 | +>direct : Symbol(direct, Decl(nestedTypevariableInfersLiteral.ts, 0, 0)) |
| 5 | +>A : Symbol(A, Decl(nestedTypevariableInfersLiteral.ts, 1, 24)) |
| 6 | +>a : Symbol(a, Decl(nestedTypevariableInfersLiteral.ts, 1, 42)) |
| 7 | +>A : Symbol(A, Decl(nestedTypevariableInfersLiteral.ts, 1, 24)) |
| 8 | +>A : Symbol(A, Decl(nestedTypevariableInfersLiteral.ts, 1, 24)) |
| 9 | +>Record : Symbol(Record, Decl(lib.d.ts, --, --)) |
| 10 | +>A : Symbol(A, Decl(nestedTypevariableInfersLiteral.ts, 1, 24)) |
| 11 | + |
| 12 | +declare function nested<A extends string>(a: { fields: A }): Record<A, string> |
| 13 | +>nested : Symbol(nested, Decl(nestedTypevariableInfersLiteral.ts, 1, 72)) |
| 14 | +>A : Symbol(A, Decl(nestedTypevariableInfersLiteral.ts, 2, 24)) |
| 15 | +>a : Symbol(a, Decl(nestedTypevariableInfersLiteral.ts, 2, 42)) |
| 16 | +>fields : Symbol(fields, Decl(nestedTypevariableInfersLiteral.ts, 2, 46)) |
| 17 | +>A : Symbol(A, Decl(nestedTypevariableInfersLiteral.ts, 2, 24)) |
| 18 | +>Record : Symbol(Record, Decl(lib.d.ts, --, --)) |
| 19 | +>A : Symbol(A, Decl(nestedTypevariableInfersLiteral.ts, 2, 24)) |
| 20 | + |
| 21 | +declare function nestedUnion<A extends string>(a: { fields: A | A[] }): Record<A, string> |
| 22 | +>nestedUnion : Symbol(nestedUnion, Decl(nestedTypevariableInfersLiteral.ts, 2, 78)) |
| 23 | +>A : Symbol(A, Decl(nestedTypevariableInfersLiteral.ts, 3, 29)) |
| 24 | +>a : Symbol(a, Decl(nestedTypevariableInfersLiteral.ts, 3, 47)) |
| 25 | +>fields : Symbol(fields, Decl(nestedTypevariableInfersLiteral.ts, 3, 51)) |
| 26 | +>A : Symbol(A, Decl(nestedTypevariableInfersLiteral.ts, 3, 29)) |
| 27 | +>A : Symbol(A, Decl(nestedTypevariableInfersLiteral.ts, 3, 29)) |
| 28 | +>Record : Symbol(Record, Decl(lib.d.ts, --, --)) |
| 29 | +>A : Symbol(A, Decl(nestedTypevariableInfersLiteral.ts, 3, 29)) |
| 30 | + |
| 31 | +const directUnionSingle = direct("z") |
| 32 | +>directUnionSingle : Symbol(directUnionSingle, Decl(nestedTypevariableInfersLiteral.ts, 5, 5)) |
| 33 | +>direct : Symbol(direct, Decl(nestedTypevariableInfersLiteral.ts, 0, 0)) |
| 34 | + |
| 35 | +const directUnionArray = direct(["z", "y"]) |
| 36 | +>directUnionArray : Symbol(directUnionArray, Decl(nestedTypevariableInfersLiteral.ts, 6, 5)) |
| 37 | +>direct : Symbol(direct, Decl(nestedTypevariableInfersLiteral.ts, 0, 0)) |
| 38 | + |
| 39 | +const nestedSingle = nested({fields: "z"}) |
| 40 | +>nestedSingle : Symbol(nestedSingle, Decl(nestedTypevariableInfersLiteral.ts, 7, 5)) |
| 41 | +>nested : Symbol(nested, Decl(nestedTypevariableInfersLiteral.ts, 1, 72)) |
| 42 | +>fields : Symbol(fields, Decl(nestedTypevariableInfersLiteral.ts, 7, 29)) |
| 43 | + |
| 44 | +const nestedUnionSingle = nestedUnion({fields: "z"}) |
| 45 | +>nestedUnionSingle : Symbol(nestedUnionSingle, Decl(nestedTypevariableInfersLiteral.ts, 8, 5)) |
| 46 | +>nestedUnion : Symbol(nestedUnion, Decl(nestedTypevariableInfersLiteral.ts, 2, 78)) |
| 47 | +>fields : Symbol(fields, Decl(nestedTypevariableInfersLiteral.ts, 8, 39)) |
| 48 | + |
| 49 | +const nestedUnionArray = nestedUnion({fields: ["z", "y"]}) |
| 50 | +>nestedUnionArray : Symbol(nestedUnionArray, Decl(nestedTypevariableInfersLiteral.ts, 9, 5)) |
| 51 | +>nestedUnion : Symbol(nestedUnion, Decl(nestedTypevariableInfersLiteral.ts, 2, 78)) |
| 52 | +>fields : Symbol(fields, Decl(nestedTypevariableInfersLiteral.ts, 9, 38)) |
| 53 | + |
| 54 | +declare function hasZField(arg: { z: string }): void |
| 55 | +>hasZField : Symbol(hasZField, Decl(nestedTypevariableInfersLiteral.ts, 9, 58)) |
| 56 | +>arg : Symbol(arg, Decl(nestedTypevariableInfersLiteral.ts, 11, 27)) |
| 57 | +>z : Symbol(z, Decl(nestedTypevariableInfersLiteral.ts, 11, 33)) |
| 58 | + |
| 59 | +hasZField(directUnionSingle) // ok |
| 60 | +>hasZField : Symbol(hasZField, Decl(nestedTypevariableInfersLiteral.ts, 9, 58)) |
| 61 | +>directUnionSingle : Symbol(directUnionSingle, Decl(nestedTypevariableInfersLiteral.ts, 5, 5)) |
| 62 | + |
| 63 | +hasZField(directUnionArray) // ok |
| 64 | +>hasZField : Symbol(hasZField, Decl(nestedTypevariableInfersLiteral.ts, 9, 58)) |
| 65 | +>directUnionArray : Symbol(directUnionArray, Decl(nestedTypevariableInfersLiteral.ts, 6, 5)) |
| 66 | + |
| 67 | +hasZField(nestedSingle) // ok |
| 68 | +>hasZField : Symbol(hasZField, Decl(nestedTypevariableInfersLiteral.ts, 9, 58)) |
| 69 | +>nestedSingle : Symbol(nestedSingle, Decl(nestedTypevariableInfersLiteral.ts, 7, 5)) |
| 70 | + |
| 71 | +hasZField(nestedUnionSingle) // ok |
| 72 | +>hasZField : Symbol(hasZField, Decl(nestedTypevariableInfersLiteral.ts, 9, 58)) |
| 73 | +>nestedUnionSingle : Symbol(nestedUnionSingle, Decl(nestedTypevariableInfersLiteral.ts, 8, 5)) |
| 74 | + |
| 75 | +hasZField(nestedUnionArray) // ok |
| 76 | +>hasZField : Symbol(hasZField, Decl(nestedTypevariableInfersLiteral.ts, 9, 58)) |
| 77 | +>nestedUnionArray : Symbol(nestedUnionArray, Decl(nestedTypevariableInfersLiteral.ts, 9, 5)) |
| 78 | + |
0 commit comments