/// // @noLib: true //// interface Foo { //// _0: 0; //// _1: 1; //// _2: 2; //// _3: 3; //// _4: 4; //// _5: 5; //// _6: 6; //// _7: 7; //// _8: 8; //// _9: 9; //// _10: 10; //// _11: 11; //// _12: 12; //// _13: 13; //// _14: 14; //// _15: 15; //// _16: 16; //// _17: 17; //// _18: 18; //// _19: 19; //// _20: 20; //// _21: 21; //// _22: 22; //// _23: 23; //// _24: 24; //// _25: 25; //// _26: 26; //// _27: 27; //// _28: 28; //// _29: 29; //// _30: 30; //// _31: 31; //// _32: 32; //// _33: 33; //// _34: 34; //// _35: 35; //// _36: 36; //// _37: 37; //// _38: 38; //// _39: 39; //// _40: 40; //// _41: 41; //// _42: 42; //// _43: 43; //// _44: 44; //// _45: 45; //// _46: 46; //// _47: 47; //// _48: 48; //// _49: 49; //// _50: 50; //// _51: 51; //// _52: 52; //// _53: 53; //// _54: 54; //// _55: 55; //// _56: 56; //// _57: 57; //// _58: 58; //// _59: 59; //// _60: 60; //// _61: 61; //// _62: 62; //// _63: 63; //// _64: 64; //// _65: 65; //// _66: 66; //// _67: 67; //// _68: 68; //// _69: 69; //// _70: 70; //// _71: 71; //// _72: 72; //// _73: 73; //// _74: 74; //// _75: 75; //// _76: 76; //// _77: 77; //// _78: 78; //// _79: 79; //// _80: 80; //// _81: 81; //// _82: 82; //// _83: 83; //// _84: 84; //// _85: 85; //// _86: 86; //// _87: 87; //// _88: 88; //// _89: 89; //// _90: 90; //// _91: 91; //// _92: 92; //// _93: 93; //// _94: 94; //// _95: 95; //// _96: 96; //// _97: 97; //// _98: 98; //// _99: 99; //// _100: 100; //// _101: 101; //// _102: 102; //// _103: 103; //// _104: 104; //// _105: 105; //// _106: 106; //// _107: 107; //// _108: 108; //// _109: 109; //// _110: 110; //// _111: 111; //// _112: 112; //// _113: 113; //// _114: 114; //// _115: 115; //// _116: 116; //// _117: 117; //// _118: 118; //// _119: 119; //// _120: 120; //// _121: 121; //// _122: 122; //// _123: 123; //// _124: 124; //// _125: 125; //// _126: 126; //// _127: 127; //// _128: 128; //// _129: 129; //// _130: 130; //// _131: 131; //// _132: 132; //// _133: 133; //// _134: 134; //// _135: 135; //// _136: 136; //// _137: 137; //// _138: 138; //// _139: 139; //// _140: 140; //// _141: 141; //// _142: 142; //// _143: 143; //// _144: 144; //// _145: 145; //// _146: 146; //// _147: 147; //// _148: 148; //// _149: 149; //// _150: 150; //// _151: 151; //// _152: 152; //// _153: 153; //// _154: 154; //// _155: 155; //// _156: 156; //// _157: 157; //// _158: 158; //// _159: 159; //// _160: 160; //// _161: 161; //// _162: 162; //// _163: 163; //// _164: 164; //// _165: 165; //// _166: 166; //// _167: 167; //// _168: 168; //// _169: 169; //// _170: 170; //// _171: 171; //// _172: 172; //// _173: 173; //// _174: 174; //// _175: 175; //// _176: 176; //// _177: 177; //// _178: 178; //// _179: 179; //// _180: 180; //// _181: 181; //// _182: 182; //// _183: 183; //// _184: 184; //// _185: 185; //// _186: 186; //// _187: 187; //// _188: 188; //// _189: 189; //// _190: 190; //// _191: 191; //// _192: 192; //// _193: 193; //// _194: 194; //// _195: 195; //// _196: 196; //// _197: 197; //// _198: 198; //// _199: 199; //// _200: 200; //// _201: 201; //// _202: 202; //// _203: 203; //// _204: 204; //// _205: 205; //// _206: 206; //// _207: 207; //// _208: 208; //// _209: 209; //// _210: 210; //// _211: 211; //// _212: 212; //// _213: 213; //// _214: 214; //// _215: 215; //// _216: 216; //// _217: 217; //// _218: 218; //// _219: 219; //// _220: 220; //// _221: 221; //// _222: 222; //// _223: 223; //// _224: 224; //// _225: 225; //// _226: 226; //// _227: 227; //// _228: 228; //// _229: 229; //// _230: 230; //// _231: 231; //// _232: 232; //// _233: 233; //// _234: 234; //// _235: 235; //// _236: 236; //// _237: 237; //// _238: 238; //// _239: 239; //// _240: 240; //// _241: 241; //// _242: 242; //// _243: 243; //// _244: 244; //// _245: 245; //// _246: 246; //// _247: 247; //// _248: 248; //// _249: 249; //// _250: 250; //// _251: 251; //// _252: 252; //// _253: 253; //// _254: 254; //// _255: 255; //// _256: 256; //// _257: 257; //// _258: 258; //// _259: 259; //// _260: 260; //// _261: 261; //// _262: 262; //// _263: 263; //// _264: 264; //// _265: 265; //// _266: 266; //// _267: 267; //// _268: 268; //// _269: 269; //// _270: 270; //// _271: 271; //// _272: 272; //// _273: 273; //// _274: 274; //// _275: 275; //// _276: 276; //// _277: 277; //// _278: 278; //// _279: 279; //// _280: 280; //// _281: 281; //// _282: 282; //// _283: 283; //// _284: 284; //// _285: 285; //// _286: 286; //// _287: 287; //// _288: 288; //// _289: 289; //// _290: 290; //// _291: 291; //// _292: 292; //// _293: 293; //// _294: 294; //// _295: 295; //// _296: 296; //// _297: 297; //// _298: 298; //// _299: 299; //// _300: 300; //// _301: 301; //// _302: 302; //// _303: 303; //// _304: 304; //// _305: 305; //// _306: 306; //// _307: 307; //// _308: 308; //// _309: 309; //// _310: 310; //// _311: 311; //// _312: 312; //// _313: 313; //// _314: 314; //// _315: 315; //// _316: 316; //// _317: 317; //// _318: 318; //// _319: 319; //// _320: 320; //// _321: 321; //// _322: 322; //// _323: 323; //// _324: 324; //// _325: 325; //// _326: 326; //// _327: 327; //// _328: 328; //// _329: 329; //// _330: 330; //// _331: 331; //// _332: 332; //// _333: 333; //// _334: 334; //// _335: 335; //// _336: 336; //// _337: 337; //// _338: 338; //// _339: 339; //// _340: 340; //// _341: 341; //// _342: 342; //// _343: 343; //// _344: 344; //// _345: 345; //// _346: 346; //// _347: 347; //// _348: 348; //// _349: 349; //// _350: 350; //// _351: 351; //// _352: 352; //// _353: 353; //// _354: 354; //// _355: 355; //// _356: 356; //// _357: 357; //// _358: 358; //// _359: 359; //// _360: 360; //// _361: 361; //// _362: 362; //// _363: 363; //// _364: 364; //// _365: 365; //// _366: 366; //// _367: 367; //// _368: 368; //// _369: 369; //// _370: 370; //// _371: 371; //// _372: 372; //// _373: 373; //// _374: 374; //// _375: 375; //// _376: 376; //// _377: 377; //// _378: 378; //// _379: 379; //// _380: 380; //// _381: 381; //// _382: 382; //// _383: 383; //// _384: 384; //// _385: 385; //// _386: 386; //// _387: 387; //// _388: 388; //// _389: 389; //// _390: 390; //// _391: 391; //// _392: 392; //// _393: 393; //// _394: 394; //// _395: 395; //// _396: 396; //// _397: 397; //// _398: 398; //// _399: 399; //// _400: 400; //// _401: 401; //// _402: 402; //// _403: 403; //// _404: 404; //// _405: 405; //// _406: 406; //// _407: 407; //// _408: 408; //// _409: 409; //// _410: 410; //// _411: 411; //// _412: 412; //// _413: 413; //// _414: 414; //// _415: 415; //// _416: 416; //// _417: 417; //// _418: 418; //// _419: 419; //// _420: 420; //// _421: 421; //// _422: 422; //// _423: 423; //// _424: 424; //// _425: 425; //// _426: 426; //// _427: 427; //// _428: 428; //// _429: 429; //// _430: 430; //// _431: 431; //// _432: 432; //// _433: 433; //// _434: 434; //// _435: 435; //// _436: 436; //// _437: 437; //// _438: 438; //// _439: 439; //// _440: 440; //// _441: 441; //// _442: 442; //// _443: 443; //// _444: 444; //// _445: 445; //// _446: 446; //// _447: 447; //// _448: 448; //// _449: 449; //// _450: 450; //// _451: 451; //// _452: 452; //// _453: 453; //// _454: 454; //// _455: 455; //// _456: 456; //// _457: 457; //// _458: 458; //// _459: 459; //// _460: 460; //// _461: 461; //// _462: 462; //// _463: 463; //// _464: 464; //// _465: 465; //// _466: 466; //// _467: 467; //// _468: 468; //// _469: 469; //// _470: 470; //// _471: 471; //// _472: 472; //// _473: 473; //// _474: 474; //// _475: 475; //// _476: 476; //// _477: 477; //// _478: 478; //// _479: 479; //// _480: 480; //// _481: 481; //// _482: 482; //// _483: 483; //// _484: 484; //// _485: 485; //// _486: 486; //// _487: 487; //// _488: 488; //// _489: 489; //// _490: 490; //// _491: 491; //// _492: 492; //// _493: 493; //// _494: 494; //// _495: 495; //// _496: 496; //// _497: 497; //// _498: 498; //// _499: 499; //// } //// type A/*1*/ = keyof Foo; //// type Exclude = T extends U ? never : T; //// type Less/*2*/ = Exclude; //// function f(s: T, x: Exclude, y: string) {} //// f("_499", /*3*/); //// type Decomposed/*4*/ = {[K in A]: Foo[K]} //// type LongTuple/*5*/ = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17.18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70]; //// type DeeplyMapped/*6*/ = {[K in keyof Foo]: {[K2 in keyof Foo]: [K, K2, Foo[K], Foo[K2]]}} goTo.marker("1"); verify.quickInfoIs(`type A = "_0" | "_1" | "_2" | "_3" | "_4" | "_5" | "_6" | "_7" | "_8" | "_9" | "_10" | "_11" | "_12" | "_13" | "_14" | "_15" | "_16" | "_17" | "_18" | "_19" | "_20" | "_21" | "_22" | "_23" | "_24" | ... 474 more ... | "_499"`); goTo.marker("2"); verify.quickInfoIs(`type Less = "_1" | "_2" | "_3" | "_4" | "_5" | "_6" | "_7" | "_8" | "_9" | "_10" | "_11" | "_12" | "_13" | "_14" | "_15" | "_16" | "_17" | "_18" | "_19" | "_20" | "_21" | "_22" | "_23" | "_24" | "_25" | ... 473 more ... | "_499"`); goTo.marker("3"); verify.signatureHelp({ marker: "3", text: `f(s: "_499", x: "_0" | "_1" | "_2" | "_3" | "_4" | "_5" | "_6" | "_7" | "_8" | "_9" | "_10" | "_11" | "_12" | "_13" | "_14" | "_15" | "_16" | "_17" | "_18" | "_19" | "_20" | "_21" | "_22" | "_23" | "_24" | ... 473 more ... | "_498", y: string): void` }); goTo.marker("4"); verify.quickInfoIs(`type Decomposed = { _0: 0; _1: 1; _2: 2; _3: 3; _4: 4; _5: 5; _6: 6; _7: 7; _8: 8; _9: 9; _10: 10; _11: 11; _12: 12; _13: 13; _14: 14; _15: 15; _16: 16; _17: 17; _18: 18; _19: 19; _20: 20; _21: 21; _22: 22; _23: 23; _24: 24; _25: 25; _26: 26; _27: 27; _28: 28; _29: 29; _30: 30; ... 468 more ...; _499: 499; }`); goTo.marker("5"); verify.quickInfoIs(`type LongTuple = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17.18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, ... 27 more ..., 70]`); goTo.marker("6"); verify.quickInfoIs(`type DeeplyMapped = { _0: { _0: ["_0", "_0", 0, 0]; _1: ["_0", "_1", 0, 1]; _2: ["_0", "_2", 0, 2]; _3: ["_0", "_3", 0, 3]; _4: ["_0", "_4", 0, 4]; _5: ["_0", "_5", 0, 5]; _6: ["_0", "_6", 0, 6]; _7: ["_0", "_7", 0, 7]; ... 491 more ...; _499: [...]; }; ... 498 more ...; _499: { ...; }; }`);