1# This file holds test cases for the D demangler. 2# Each test case looks like this: 3# options 4# input to be demangled 5# expected output 6# 7# See demangle-expected for documentation of supported options. 8# 9# A line starting with `#' is ignored. 10# However, blank lines in this file are NOT ignored. 11# 12############ 13# 14# Coverage Tests 15# 16--format=dlang 17_Dmain 18D main 19# 20--format=dlang 21_D8demangle4testPFLAiYi 22demangle.test 23# 24--format=dlang 25_D8demangle4testFZv 26demangle.test() 27# 28--format=dlang 29_D8demangle4testMFZ2fnMFZv 30demangle.test().fn() 31# 32--format=dlang 33_D8demangle4testFaZv 34demangle.test(char) 35# 36--format=dlang 37_D8demangle4testFbZv 38demangle.test(bool) 39# 40--format=dlang 41_D8demangle4testFcZv 42demangle.test(creal) 43# 44--format=dlang 45_D8demangle4testFdZv 46demangle.test(double) 47# 48--format=dlang 49_D8demangle4testFeZv 50demangle.test(real) 51# 52--format=dlang 53_D8demangle4testFfZv 54demangle.test(float) 55# 56--format=dlang 57_D8demangle4testFgZv 58demangle.test(byte) 59# 60--format=dlang 61_D8demangle4testFhZv 62demangle.test(ubyte) 63# 64--format=dlang 65_D8demangle4testFiZv 66demangle.test(int) 67# 68--format=dlang 69_D8demangle4testFjZv 70demangle.test(ireal) 71# 72--format=dlang 73_D8demangle4testFkZv 74demangle.test(uint) 75# 76--format=dlang 77_D8demangle4testFlZv 78demangle.test(long) 79# 80--format=dlang 81_D8demangle4testFmZv 82demangle.test(ulong) 83# 84--format=dlang 85_D8demangle4testFnZv 86demangle.test(none) 87# 88--format=dlang 89_D8demangle4testFoZv 90demangle.test(ifloat) 91# 92--format=dlang 93_D8demangle4testFpZv 94demangle.test(idouble) 95# 96--format=dlang 97_D8demangle4testFqZv 98demangle.test(cfloat) 99# 100--format=dlang 101_D8demangle4testFrZv 102demangle.test(cdouble) 103# 104--format=dlang 105_D8demangle4testFsZv 106demangle.test(short) 107# 108--format=dlang 109_D8demangle4testFtZv 110demangle.test(ushort) 111# 112--format=dlang 113_D8demangle4testFuZv 114demangle.test(wchar) 115# 116--format=dlang 117_D8demangle4testFvZv 118demangle.test(void) 119# 120--format=dlang 121_D8demangle4testFwZv 122demangle.test(dchar) 123# 124--format=dlang 125_D8demangle4testFziZv 126demangle.test(cent) 127# 128--format=dlang 129_D8demangle4testFzkZv 130demangle.test(ucent) 131# 132--format=dlang 133_D8demangle4testFOaZv 134demangle.test(shared(char)) 135# 136--format=dlang 137_D8demangle4testFxaZv 138demangle.test(const(char)) 139# 140--format=dlang 141_D8demangle4testFyaZv 142demangle.test(immutable(char)) 143# 144--format=dlang 145_D8demangle4testFNgaZv 146demangle.test(inout(char)) 147# 148--format=dlang 149_D8demangle4testFOxaZv 150demangle.test(shared(const(char))) 151# 152--format=dlang 153_D8demangle4testFONgaZv 154demangle.test(shared(inout(char))) 155# 156--format=dlang 157_D8demangle4testFAaZv 158demangle.test(char[]) 159# 160--format=dlang 161_D8demangle4testFAAaZv 162demangle.test(char[][]) 163# 164--format=dlang 165_D8demangle4testFAAAaZv 166demangle.test(char[][][]) 167# 168--format=dlang 169_D8demangle4testFG42aZv 170demangle.test(char[42]) 171# 172--format=dlang 173_D8demangle4testFG42G42aZv 174demangle.test(char[42][42]) 175# 176--format=dlang 177_D8demangle4testFG42G42G42aZv 178demangle.test(char[42][42][42]) 179# 180--format=dlang 181_D8demangle4testFG1234567890aZv 182demangle.test(char[1234567890]) 183# 184--format=dlang 185_D8demangle4testFHaaZv 186demangle.test(char[char]) 187# 188--format=dlang 189_D8demangle4testFHHaaaZv 190demangle.test(char[char[char]]) 191# 192--format=dlang 193_D8demangle4testFPaZv 194demangle.test(char*) 195# 196--format=dlang 197_D8demangle4testFPPaZv 198demangle.test(char**) 199# 200--format=dlang 201_D8demangle4testFPPPaZv 202demangle.test(char***) 203# 204--format=dlang 205_D8demangle4testFNhG8gZv 206demangle.test(__vector(byte[8])) 207# 208--format=dlang 209_D8demangle4testFNhG16gZv 210demangle.test(__vector(byte[16])) 211# 212--format=dlang 213_D8demangle4testFNhG32gZv 214demangle.test(__vector(byte[32])) 215# 216--format=dlang 217_D8demangle4testFNhG4sZv 218demangle.test(__vector(short[4])) 219# 220--format=dlang 221_D8demangle4testFNhG8sZv 222demangle.test(__vector(short[8])) 223# 224--format=dlang 225_D8demangle4testFNhG16sZv 226demangle.test(__vector(short[16])) 227# 228--format=dlang 229_D8demangle4testFNhG2iZv 230demangle.test(__vector(int[2])) 231# 232--format=dlang 233_D8demangle4testFNhG4iZv 234demangle.test(__vector(int[4])) 235# 236--format=dlang 237_D8demangle4testFNhG8iZv 238demangle.test(__vector(int[8])) 239# 240--format=dlang 241_D8demangle4testFNhG1lZv 242demangle.test(__vector(long[1])) 243# 244--format=dlang 245_D8demangle4testFNhG2lZv 246demangle.test(__vector(long[2])) 247# 248--format=dlang 249_D8demangle4testFNhG4lZv 250demangle.test(__vector(long[4])) 251# 252--format=dlang 253_D8demangle4testFNhG2fZv 254demangle.test(__vector(float[2])) 255# 256--format=dlang 257_D8demangle4testFNhG4fZv 258demangle.test(__vector(float[4])) 259# 260--format=dlang 261_D8demangle4testFNhG8fZv 262demangle.test(__vector(float[8])) 263# 264--format=dlang 265_D8demangle4testFNhG1dZv 266demangle.test(__vector(double[1])) 267# 268--format=dlang 269_D8demangle4testFNhG2dZv 270demangle.test(__vector(double[2])) 271# 272--format=dlang 273_D8demangle4testFNhG4dZv 274demangle.test(__vector(double[4])) 275# 276--format=dlang 277_D8demangle4testFC5classZv 278demangle.test(class) 279# 280--format=dlang 281_D8demangle4testFC5class4testZv 282demangle.test(class.test) 283# 284--format=dlang 285_D8demangle4testFS6structZv 286demangle.test(struct) 287# 288--format=dlang 289_D8demangle4testFS6struct4testZv 290demangle.test(struct.test) 291# 292--format=dlang 293_D8demangle4testFE4enumZv 294demangle.test(enum) 295# 296--format=dlang 297_D8demangle4testFE4enum4testZv 298demangle.test(enum.test) 299# 300--format=dlang 301_D8demangle4testFT7typedefZv 302demangle.test(typedef) 303# 304--format=dlang 305_D8demangle4testFT7typedef4testZv 306demangle.test(typedef.test) 307# 308--format=dlang 309_D8demangle4testFIaZv 310demangle.test(in char) 311# 312--format=dlang 313_D8demangle4testFIKaZv 314demangle.test(in ref char) 315# 316--format=dlang 317_D8demangle4testFJaZv 318demangle.test(out char) 319# 320--format=dlang 321_D8demangle4testFKaZv 322demangle.test(ref char) 323# 324--format=dlang 325_D8demangle4testFLaZv 326demangle.test(lazy char) 327# 328--format=dlang 329_D8demangle4testFMaZv 330demangle.test(scope char) 331# 332--format=dlang 333_D8demangle4testFNjaZv 334demangle.test(char) 335# 336--format=dlang 337_D8demangle4testFNkaZv 338demangle.test(return char) 339# 340--format=dlang 341_D8demangle4testFNlaZv 342demangle.test(char) 343# 344--format=dlang 345_D8demangle4testFaXv 346demangle.test(char...) 347# 348--format=dlang 349_D8demangle4testFaYv 350demangle.test(char, ...) 351# 352--format=dlang 353_D8demangle4testFaaYv 354demangle.test(char, char, ...) 355# 356--format=dlang 357_D8demangle4testFYv 358demangle.test(...) 359# 360--format=dlang 361_D8demangle4testFaaZv 362demangle.test(char, char) 363# 364--format=dlang 365_D8demangle4testFB0Zv 366demangle.test(Tuple!()) 367# 368--format=dlang 369_D8demangle4testFB1aZv 370demangle.test(Tuple!(char)) 371# 372--format=dlang 373_D8demangle4testFB2aaZv 374demangle.test(Tuple!(char, char)) 375# 376--format=dlang 377_D8demangle4testFB3aaaZv 378demangle.test(Tuple!(char, char, char)) 379# 380--format=dlang 381_D8demangle4testFB2OaaZv 382demangle.test(Tuple!(shared(char), char)) 383# 384--format=dlang 385_D8demangle4testFB3aDFZaaZv 386demangle.test(Tuple!(char, char() delegate, char)) 387# 388--format=dlang 389_D8demangle4testFDFZaZv 390demangle.test(char() delegate) 391# 392--format=dlang 393_D8demangle4testFDUZaZv 394demangle.test(extern(C) char() delegate) 395# 396--format=dlang 397_D8demangle4testFDWZaZv 398demangle.test(extern(Windows) char() delegate) 399# 400--format=dlang 401_D8demangle4testFDVZaZv 402demangle.test(extern(Pascal) char() delegate) 403# 404--format=dlang 405_D8demangle4testFDRZaZv 406demangle.test(extern(C++) char() delegate) 407# 408--format=dlang 409_D8demangle4testFDYZaZv 410demangle.test(extern(Objective-C) char() delegate) 411# 412--format=dlang 413_D8demangle4testFPFZaZv 414demangle.test(char() function) 415# 416--format=dlang 417_D8demangle4testFPUZaZv 418demangle.test(extern(C) char() function) 419# 420--format=dlang 421_D8demangle4testFPWZaZv 422demangle.test(extern(Windows) char() function) 423# 424--format=dlang 425_D8demangle4testFPVZaZv 426demangle.test(extern(Pascal) char() function) 427# 428--format=dlang 429_D8demangle4testFPRZaZv 430demangle.test(extern(C++) char() function) 431# 432--format=dlang 433_D8demangle4testFPYZaZv 434demangle.test(extern(Objective-C) char() function) 435# 436--format=dlang 437_D8demangle4testFDFNaZaZv 438demangle.test(char() pure delegate) 439# 440--format=dlang 441_D8demangle4testFDFNbZaZv 442demangle.test(char() nothrow delegate) 443# 444--format=dlang 445_D8demangle4testFDFNcZaZv 446demangle.test(char() ref delegate) 447# 448--format=dlang 449_D8demangle4testFDFNdZaZv 450demangle.test(char() @property delegate) 451# 452--format=dlang 453_D8demangle4testFDFNeZaZv 454demangle.test(char() @trusted delegate) 455# 456--format=dlang 457_D8demangle4testFDFNfZaZv 458demangle.test(char() @safe delegate) 459# 460--format=dlang 461_D8demangle4testFDFNiZaZv 462demangle.test(char() @nogc delegate) 463# 464--format=dlang 465_D8demangle4testFDFNmZaZv 466demangle.test(char() @live delegate) 467# 468--format=dlang 469_D8demangle4testFDFNaNbZaZv 470demangle.test(char() pure nothrow delegate) 471# 472--format=dlang 473_D8demangle4testFDFNbNaZaZv 474demangle.test(char() nothrow pure delegate) 475# 476--format=dlang 477_D8demangle4testFDFNdNfNaZaZv 478demangle.test(char() @property @safe pure delegate) 479# 480--format=dlang 481_D8demangle4testFNjDFZaZv 482demangle.test(char() delegate) 483# 484--format=dlang 485_D8demangle4testFNkDFZaZv 486demangle.test(return char() delegate) 487# 488--format=dlang 489_D8demangle4testFDFNjZaZv 490demangle.test(char() return delegate) 491# 492--format=dlang 493_D8demangle4testFNjNkDFNjZaZv 494demangle.test(return char() return delegate) 495# 496--format=dlang 497_D8demangle4testFNlDFZaZv 498demangle.test(char() delegate) 499# 500--format=dlang 501_D8demangle4testFMDFZaZv 502demangle.test(scope char() delegate) 503# 504--format=dlang 505_D8demangle4testFDFNlZaZv 506demangle.test(char() scope delegate) 507# 508--format=dlang 509_D8demangle4testFMDFNlZaZv 510demangle.test(scope char() scope delegate) 511# 512--format=dlang 513_D8demangle4testFNlMDFNlZaZv 514demangle.test(scope char() scope delegate) 515# 516--format=dlang 517_D8demangle4testFPFNaZaZv 518demangle.test(char() pure function) 519# 520--format=dlang 521_D8demangle4testFPFNbZaZv 522demangle.test(char() nothrow function) 523# 524--format=dlang 525_D8demangle4testFPFNcZaZv 526demangle.test(char() ref function) 527# 528--format=dlang 529_D8demangle4testFPFNdZaZv 530demangle.test(char() @property function) 531# 532--format=dlang 533_D8demangle4testFPFNeZaZv 534demangle.test(char() @trusted function) 535# 536--format=dlang 537_D8demangle4testFPFNfZaZv 538demangle.test(char() @safe function) 539# 540--format=dlang 541_D8demangle4testFPFNiZaZv 542demangle.test(char() @nogc function) 543# 544--format=dlang 545_D8demangle4testFPFNmZaZv 546demangle.test(char() @live function) 547# 548--format=dlang 549_D8demangle4testFPFNaNbZaZv 550demangle.test(char() pure nothrow function) 551# 552--format=dlang 553_D8demangle4testFPFNbNaZaZv 554demangle.test(char() nothrow pure function) 555# 556--format=dlang 557_D8demangle4testFPFNdNfNaZaZv 558demangle.test(char() @property @safe pure function) 559# 560--format=dlang 561_D8demangle4testFNjPFZaZv 562demangle.test(char() function) 563# 564--format=dlang 565_D8demangle4testFNkPFZaZv 566demangle.test(return char() function) 567# 568--format=dlang 569_D8demangle4testFPFNjZaZv 570demangle.test(char() return function) 571# 572--format=dlang 573_D8demangle4testFNjNkPFNjZaZv 574demangle.test(return char() return function) 575# 576--format=dlang 577_D8demangle4testFNlPFZaZv 578demangle.test(char() function) 579# 580--format=dlang 581_D8demangle4testFMPFZaZv 582demangle.test(scope char() function) 583# 584--format=dlang 585_D8demangle4testFPFNlZaZv 586demangle.test(char() scope function) 587# 588--format=dlang 589_D8demangle4testFMPFNlZaZv 590demangle.test(scope char() scope function) 591# 592--format=dlang 593_D8demangle4testFNlMPFNlZaZv 594demangle.test(scope char() scope function) 595# 596--format=dlang 597_D8demangle4test6__initZ 598initializer for demangle.test 599# 600--format=dlang 601_D8demangle4test6__vtblZ 602vtable for demangle.test 603# 604--format=dlang 605_D8demangle4test7__ClassZ 606ClassInfo for demangle.test 607# 608--format=dlang 609_D8demangle4test11__InterfaceZ 610Interface for demangle.test 611# 612--format=dlang 613_D8demangle4test12__ModuleInfoZ 614ModuleInfo for demangle.test 615# 616--format=dlang 617_D8demangle4test6__ctorMFZv 618demangle.test.this() 619# 620--format=dlang 621_D8demangle4test6__dtorMFZv 622demangle.test.~this() 623# 624--format=dlang 625_D8demangle4test10__postblitMFZv 626demangle.test.this(this) 627# 628--format=dlang 629_D8demangle4testFHAbaZv 630demangle.test(char[bool[]]) 631# 632--format=dlang 633_D8demangle4testFHG42caZv 634demangle.test(char[creal[42]]) 635# 636--format=dlang 637_D8demangle4testFAiXv 638demangle.test(int[]...) 639# 640--format=dlang 641_D8demangle4testFLAiXv 642demangle.test(lazy int[]...) 643# 644--format=dlang 645_D8demangle4testFAiYv 646demangle.test(int[], ...) 647# 648--format=dlang 649_D8demangle4testFLAiYv 650demangle.test(lazy int[], ...) 651# 652--format=dlang 653_D8demangle4testFLilZv 654demangle.test(lazy int, long) 655# 656--format=dlang 657_D8demangle4testFLliZv 658demangle.test(lazy long, int) 659# 660--format=dlang 661_D8demangle4testFLC6ObjectLDFLiZiZi 662demangle.test(lazy Object, lazy int(lazy int) delegate) 663# 664--format=dlang 665_D8demangle9__T4testZv 666demangle.test!() 667# 668--format=dlang 669_D8demangle9__U4testZv 670demangle.test!() 671# 672--format=dlang 673_D8demangle11__T4testTaZv 674demangle.test!(char) 675# 676--format=dlang 677_D8demangle13__T4testTaTaZv 678demangle.test!(char, char) 679# 680--format=dlang 681_D8demangle15__T4testTaTaTaZv 682demangle.test!(char, char, char) 683# 684--format=dlang 685_D8demangle16__T4testTaTOiTaZv 686demangle.test!(char, shared(int), char) 687# 688--format=dlang 689_D8demangle17__T4testS6symbolZv 690demangle.test!(symbol) 691# 692--format=dlang 693_D8demangle23__T4testS116symbol3fooZv 694demangle.test!(symbol.foo) 695# 696--format=dlang 697_D8demangle32__T4testS20_D6symbol3foo3barFZvZv 698demangle.test!(symbol.foo.bar()) 699# 700--format=dlang 701_D8demangle19__T4testTaS6symbolZv 702demangle.test!(char, symbol) 703# 704--format=dlang 705_D8demangle19__T4testS6symbolTaZv 706demangle.test!(symbol, char) 707# 708--format=dlang 709_D8demangle12__T4testHTaZv 710demangle.test!(char) 711# 712--format=dlang 713_D8demangle13__T4testVPinZv 714demangle.test!(null) 715# 716--format=dlang 717_D8demangle15__T4testVgi123Zv 718demangle.test!(123) 719# 720--format=dlang 721_D8demangle15__T4testVii123Zv 722demangle.test!(123) 723# 724--format=dlang 725_D8demangle15__T4testVsi123Zv 726demangle.test!(123) 727# 728--format=dlang 729_D8demangle15__T4testVhi123Zv 730demangle.test!(123u) 731# 732--format=dlang 733_D8demangle15__T4testVki123Zv 734demangle.test!(123u) 735# 736--format=dlang 737_D8demangle15__T4testVti123Zv 738demangle.test!(123u) 739# 740--format=dlang 741_D8demangle15__T4testVli123Zv 742demangle.test!(123L) 743# 744--format=dlang 745_D8demangle15__T4testVmi123Zv 746demangle.test!(123uL) 747# 748--format=dlang 749_D8demangle15__T4testViN123Zv 750demangle.test!(-123) 751# 752--format=dlang 753_D8demangle15__T4testVkN123Zv 754demangle.test!(-123u) 755# 756--format=dlang 757_D8demangle15__T4testVlN123Zv 758demangle.test!(-123L) 759# 760--format=dlang 761_D8demangle15__T4testVmN123Zv 762demangle.test!(-123uL) 763# 764--format=dlang 765_D8demangle13__T4testVbi1Zv 766demangle.test!(true) 767# 768--format=dlang 769_D8demangle13__T4testVbi0Zv 770demangle.test!(false) 771# 772--format=dlang 773_D8demangle14__T4testVai10Zv 774demangle.test!('\x0a') 775# 776--format=dlang 777_D8demangle14__T4testVai32Zv 778demangle.test!(' ') 779# 780--format=dlang 781_D8demangle14__T4testVai65Zv 782demangle.test!('A') 783# 784--format=dlang 785_D8demangle15__T4testVai126Zv 786demangle.test!('~') 787# 788--format=dlang 789_D8demangle16__T4testVui1000Zv 790demangle.test!('\u03e8') 791# 792--format=dlang 793_D8demangle18__T4testVwi100000Zv 794demangle.test!('\U000186a0') 795# 796--format=dlang 797_D8demangle17__T4testVde0A8P6Zv 798demangle.test!(0x0.A8p6) 799# 800--format=dlang 801_D8demangle16__T4testVdeA8P2Zv 802demangle.test!(0xA.8p2) 803# 804--format=dlang 805_D8demangle18__T4testVdeN0A8P6Zv 806demangle.test!(-0x0.A8p6) 807# 808--format=dlang 809_D8demangle31__T4testVde0F6E978D4FDF3B646P7Zv 810demangle.test!(0x0.F6E978D4FDF3B646p7) 811# 812--format=dlang 813_D8demangle15__T4testVdeNANZv 814demangle.test!(NaN) 815# 816--format=dlang 817_D8demangle15__T4testVdeINFZv 818demangle.test!(Inf) 819# 820--format=dlang 821_D8demangle16__T4testVdeNINFZv 822demangle.test!(-Inf) 823# 824--format=dlang 825_D8demangle23__T4testVfe0FFFFFFP128Zv 826demangle.test!(0x0.FFFFFFp128) 827# 828--format=dlang 829_D8demangle32__T4testVde0FFFFFFFFFFFFF8P1024Zv 830demangle.test!(0x0.FFFFFFFFFFFFF8p1024) 831# 832--format=dlang 833_D8demangle19__T4testVfe08PN125Zv 834demangle.test!(0x0.8p-125) 835# 836--format=dlang 837_D8demangle20__T4testVde08PN1021Zv 838demangle.test!(0x0.8p-1021) 839# 840--format=dlang 841_D8demangle51__T4testVrc0C4CCCCCCCCCCCCCDP4c0B666666666666666P6Zv 842demangle.test!(0x0.C4CCCCCCCCCCCCCDp4+0x0.B666666666666666p6i) 843# 844--format=dlang 845_D8demangle52__T4testVrcN0C4CCCCCCCCCCCCCDP4c0B666666666666666P6Zv 846demangle.test!(-0x0.C4CCCCCCCCCCCCCDp4+0x0.B666666666666666p6i) 847# 848--format=dlang 849_D8demangle91__T4testVde000111222333444555666777888999AAABBBCCCDDDEEEFFFP000111222333444555666777888999Zv 850demangle.test!(0x0.00111222333444555666777888999AAABBBCCCDDDEEEFFFp000111222333444555666777888999) 851# 852--format=dlang 853_D8demangle22__T4testVG3ua3_616263Zv 854demangle.test!("abc") 855# 856--format=dlang 857_D8demangle22__T4testVG3ud3_616263Zv 858demangle.test!("abc"d) 859# 860--format=dlang 861_D8demangle22__T4testVG3uw3_616263Zv 862demangle.test!("abc"w) 863# 864--format=dlang 865_D8demangle16__T4testVAyaa0_Zv 866demangle.test!("") 867# 868--format=dlang 869_D8demangle32__T4testVAyaa8_20090a0d0c0b00ffZv 870demangle.test!(" \t\n\r\f\v\x00\xff") 871# 872--format=dlang 873_D8demangle22__T4testVAiA4i1i2i3i4Zv 874demangle.test!([1, 2, 3, 4]) 875# 876--format=dlang 877_D8demangle25__T4testVAdA2e08P1eN08P1Zv 878demangle.test!([0x0.8p1, -0x0.8p1]) 879# 880--format=dlang 881_D8demangle23__T4testVHiiA2i1i2i3i4Zv 882demangle.test!([1:2, 3:4]) 883# 884--format=dlang 885_D8demangle39__T4testVHAxaiA2a3_616263i1a3_646566i2Zv 886demangle.test!(["abc":1, "def":2]) 887# 888--format=dlang 889_D8demangle28__T4testVS8demangle1SS2i1i2Zv 890demangle.test!(demangle.S(1, 2)) 891# 892--format=dlang 893_D8demangle35__T4testVS8demangle1SS2i1a3_616263Zv 894demangle.test!(demangle.S(1, "abc")) 895# 896--format=dlang 897_D8demangle13__T4testTFZaZ6mangleFZv 898demangle.test!(char() function).mangle() 899# 900--format=dlang 901_D8demangle4testMxFZv 902demangle.test() const 903# 904--format=dlang 905_D8demangle4testMyFZv 906demangle.test() immutable 907# 908--format=dlang 909_D8demangle4testMNgFZv 910demangle.test() inout 911# 912--format=dlang 913_D8demangle4testMNgxFZv 914demangle.test() inout const 915# 916--format=dlang 917_D8demangle4testMOFZv 918demangle.test() shared 919# 920--format=dlang 921_D8demangle4testMOxFZv 922demangle.test() shared const 923# 924--format=dlang 925_D8demangle4testMONgFZv 926demangle.test() shared inout 927# 928--format=dlang 929_D8demangle4testMONgxFZv 930demangle.test() shared inout const 931# 932--format=dlang 933_D8demangle4testFDxFZaZv 934demangle.test(char() delegate const) 935# 936--format=dlang 937_D8demangle4testFDyFZaZv 938demangle.test(char() delegate immutable) 939# 940--format=dlang 941_D8demangle4testFDNgFZaZv 942demangle.test(char() delegate inout) 943# 944--format=dlang 945_D8demangle4testFDNgxFZaZv 946demangle.test(char() delegate inout const) 947# 948--format=dlang 949_D8demangle4testFDOFZaZv 950demangle.test(char() delegate shared) 951# 952--format=dlang 953_D8demangle4testFDOxFZaZv 954demangle.test(char() delegate shared const) 955# 956--format=dlang 957_D8demangle4testFDONgFZaZv 958demangle.test(char() delegate shared inout) 959# 960--format=dlang 961_D8demangle4testFDONgxFZaZv 962demangle.test(char() delegate shared inout const) 963# 964--format=dlang 965_D8demangle004testFaZv 966demangle.test(char) 967# 968--format=dlang 969_D8demangle000000004testFaZv 970demangle.test(char) 971# 972# Unittests 973# 974--format=dlang 975printf 976printf 977# 978--format=dlang 979_foo 980_foo 981# 982--format=dlang 983_D88 984_D88 985# 986--format=dlang 987_D5__T1aZv 988_D5__T1aZv 989# 990--format=dlang 991_D00 992_D00 993# 994--format=dlang 995_D9223372036854775817 996_D9223372036854775817 997# 998--format=dlang 999_D1az 1000_D1az 1001# 1002--format=dlang 1003_D1aN 1004_D1aN 1005# 1006--format=dlang 1007_D1aF 1008_D1aF 1009# 1010--format=dlang 1011_D1aM 1012_D1aM 1013# 1014--format=dlang 1015_D1aFZNz 1016_D1aFZNz 1017# 1018--format=dlang 1019_D1aFNzZv 1020_D1aFNzZv 1021# 1022--format=dlang 1023_D4testFDX 1024_D4testFDX 1025# 1026--format=dlang 1027_D5__T0aZv 1028_D5__T0aZv 1029# 1030--format=dlang 1031_D10__T4testYZv 1032_D10__T4testYZv 1033# 1034--format=dlang 1035_D4testFBaZv 1036_D4testFBaZv 1037# 1038--format=dlang 1039_D8__T4test 1040_D8__T4test 1041# 1042--format=dlang 1043_D10__T4testVi 1044_D10__T4testVi 1045# 1046--format=dlang 1047_D10__T4testVai 1048_D10__T4testVai 1049# 1050--format=dlang 1051_D10__T4testVbi 1052_D10__T4testVbi 1053# 1054--format=dlang 1055_D11__T4testS1a 1056_D11__T4testS1a 1057# 1058--format=dlang 1059_D12__T4testViiZv 1060_D12__T4testViiZv 1061# 1062--format=dlang 1063_D12__T4testViYZv 1064_D12__T4testViYZv 1065# 1066--format=dlang 1067_D12__T4testVrcZv 1068_D12__T4testVrcZv 1069# 1070--format=dlang 1071_D13__T4testVdeYZv 1072_D13__T4testVdeYZv 1073# 1074--format=dlang 1075_D13__T4testViSiZv 1076_D13__T4testViSiZv 1077# 1078--format=dlang 1079_D14__T4testVAiAiZv 1080_D14__T4testVAiAiZv 1081# 1082--format=dlang 1083_D14__T4testS123aZv 1084_D14__T4testS123aZv 1085# 1086--format=dlang 1087_D15__T4testVHiiAiZv 1088_D15__T4testVHiiAiZv 1089# 1090--format=dlang 1091_D15__T4testVfe0p1Zv 1092_D15__T4testVfe0p1Zv 1093# 1094--format=dlang 1095_D15__T4testVAyaa1_ 1096_D15__T4testVAyaa1_ 1097# 1098--format=dlang 1099_D16__T4testVAyaa0aZv 1100_D16__T4testVAyaa0aZv 1101# 1102--format=dlang 1103_D18__T4testVAyaa1_0GZv 1104_D18__T4testVAyaa1_0GZv 1105# 1106--format=dlang 1107_D18__T4testVAyaa1_YYZv 1108_D18__T4testVAyaa1_YYZv 1109# 1110--format=dlang 1111_D4test3fooAa 1112test.foo 1113# 1114--format=dlang 1115_D8demangle8demangleFAaZAa 1116demangle.demangle(char[]) 1117# 1118--format=dlang 1119_D6object6Object8opEqualsFC6ObjectZi 1120object.Object.opEquals(Object) 1121# 1122--format=dlang 1123_D6object6Object8opAssignFC6ObjectZi 1124object.Object.opAssign(Object) 1125# 1126--format=dlang 1127_D4test2dgDFiYd 1128test.dg 1129# 1130--format=dlang 1131_D1a1bi 1132a.b 1133# 1134--format=dlang 1135_D1a1bPFiZi 1136a.b 1137# 1138--format=dlang 1139_D4test34__T3barVG3uw3_616263VG3wd3_646566Z1xi 1140test.bar!("abc"w, "def"d).x 1141# 1142--format=dlang 1143_D4test21__T3funVwi4294967295Z3funFNaNbNiNfZv 1144test.fun!('\Uffffffff').fun() 1145# 1146--format=dlang 1147_D4test21__T3funVwi4294967296Z3funFNaNbNiNfZv 1148_D4test21__T3funVwi4294967296Z3funFNaNbNiNfZv 1149# 1150--format=dlang 1151_D6plugin8generateFiiZAya 1152plugin.generate(int, int) 1153# 1154--format=dlang 1155_D6plugin8generateFiiZAxa 1156plugin.generate(int, int) 1157# 1158--format=dlang 1159_D6plugin8generateFiiZAOa 1160plugin.generate(int, int) 1161# 1162--format=dlang 1163_D8demangle3fnAFZ3fnBMFZv 1164demangle.fnA().fnB() 1165# 1166--format=dlang 1167_D8demangle4mainFZ1S3fnCMFZv 1168demangle.main().S.fnC() 1169# 1170--format=dlang 1171_D8demangle4mainFZ1S3fnDMFZv 1172demangle.main().S.fnD() 1173# 1174--format=dlang 1175_D8demangle4mainFZ5localMFZi 1176demangle.main().local() 1177# 1178--format=dlang 1179_D3std5ascii9uppercaseyAa 1180std.ascii.uppercase 1181# 1182--format=dlang 1183_D3std6stream9BOMEndianyG5E3std6system6Endian 1184std.stream.BOMEndian 1185# 1186--format=dlang 1187_D3std8internal7uni_tab10unicodeNkoyS3std8internal3uni12CodepointSet 1188std.internal.uni_tab.unicodeNko 1189# 1190--format=dlang 1191_D2gc2gc2GC6addrOfMFPvZPv 1192gc.gc.GC.addrOf(void*) 1193# 1194--format=dlang 1195_D3std7process10setCLOEXECFibZv 1196std.process.setCLOEXEC(int, bool) 1197# 1198--format=dlang 1199_D3std6digest2md3MD53putMFNaNbNeMAxhXv 1200std.digest.md.MD5.put(scope const(ubyte)[]...) 1201# 1202--format=dlang 1203_D3std6mmfile6MmFile13opIndexAssignMFhmZh 1204std.mmfile.MmFile.opIndexAssign(ubyte, ulong) 1205# 1206--format=dlang 1207_D3std7process18escapeShellCommandFxAAaXAya 1208std.process.escapeShellCommand(const(char[][])...) 1209# 1210--format=dlang 1211_D4core4sync5mutex5Mutex6__ctorMFC6ObjectZC4core4sync5mutex5Mutex 1212core.sync.mutex.Mutex.this(Object) 1213# 1214--format=dlang 1215_D6object14TypeInfo_Array8argTypesMFNbNfJC8TypeInfoJC8TypeInfoZi 1216object.TypeInfo_Array.argTypes(out TypeInfo, out TypeInfo) 1217# 1218--format=dlang 1219_D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ7tryExecMFMDFZvZv 1220rt.dmain2._d_run_main(int, char**, extern(C) int(char[][]) function).tryExec(scope void() delegate) 1221# 1222--format=dlang 1223_D6object9Exception6__ctorMFNaNbNfAyaAyamC6object9ThrowableZC9Exception 1224object.Exception.this(immutable(char)[], immutable(char)[], ulong, object.Throwable) 1225# 1226--format=dlang 1227_D3gcc3deh17parse_lsda_headerFPS3gcc6unwind7generic15_Unwind_ContextPhPS3gcc3deh16lsda_header_infoZPh 1228gcc.deh.parse_lsda_header(gcc.unwind.generic._Unwind_Context*, ubyte*, gcc.deh.lsda_header_info*) 1229# 1230--format=dlang 1231_D3std6socket23UnknownAddressReference6__ctorMFPS4core3sys5posix3sys6socket8sockaddrkZC3std6socket23UnknownAddressReference 1232std.socket.UnknownAddressReference.this(core.sys.posix.sys.socket.sockaddr*, uint) 1233# 1234--format=dlang 1235_D8demangle20__T2fnVAiA4i1i2i3i4Z2fnFZv 1236demangle.fn!([1, 2, 3, 4]).fn() 1237# 1238--format=dlang 1239_D8demangle11__T2fnVii1Z2fnFZv 1240demangle.fn!(1).fn() 1241# 1242--format=dlang 1243_D8demangle26__T2fnVS8demangle1SS2i1i2Z2fnFZv 1244demangle.fn!(demangle.S(1, 2)).fn() 1245# 1246--format=dlang 1247_D8demangle13__T2fnVeeNANZ2fnFZv 1248demangle.fn!(NaN).fn() 1249# 1250--format=dlang 1251_D8demangle14__T2fnVeeNINFZ2fnFZv 1252demangle.fn!(-Inf).fn() 1253# 1254--format=dlang 1255_D8demangle13__T2fnVeeINFZ2fnFZv 1256demangle.fn!(Inf).fn() 1257# 1258--format=dlang 1259_D8demangle21__T2fnVHiiA2i1i2i3i4Z2fnFZv 1260demangle.fn!([1:2, 3:4]).fn() 1261# 1262--format=dlang 1263_D8demangle2fnFNgiZNgi 1264demangle.fn(inout(int)) 1265# 1266--format=dlang 1267_D8demangle29__T2fnVa97Va9Va0Vu257Vw65537Z2fnFZv 1268demangle.fn!('a', '\x09', '\x00', '\u0101', '\U00010001').fn() 1269# 1270--format=dlang 1271_D8demangle32__T2fnTS3symVS3valS1a4_6e756c6cZ3fun13__T8positionZ13__T8confusesZ8demangleFDFxaZvZv 1272demangle.fn!(sym, val("null")).fun.position!().confuses!().demangle(void(const(char)) delegate) 1273# 1274--format=dlang 1275_D8demangle39__T2fnVAyaa12_d0bfd180d0b8d0bcd0b5d180Z2fnFZv 1276demangle.fn!("\xd0\xbf\xd1\x80\xd0\xb8\xd0\xbc\xd0\xb5\xd1\x80").fn() 1277# 1278--format=dlang 1279_D8demangle26__T2fnVAyaa6_e4b896e7958cZ2fnFZv 1280demangle.fn!("\xe4\xb8\x96\xe7\x95\x8c").fn() 1281# 1282--format=dlang 1283_D2gc11gctemplates56__T8mkBitmapTS3std5range13__T4iotaTiTiZ4iotaFiiZ6ResultZ8mkBitmapFNbNiNfPmmZv 1284gc.gctemplates.mkBitmap!(std.range.iota!(int, int).iota(int, int).Result).mkBitmap(ulong*, ulong) 1285# 1286--format=dlang 1287_D8serenity9persister6Sqlite69__T15SqlitePersisterTS8serenity9persister6Sqlite11__unittest6FZ4TestZ15SqlitePersister12__T7opIndexZ7opIndexMFmZS8serenity9persister6Sqlite11__unittest6FZ4Test 1288serenity.persister.Sqlite.SqlitePersister!(serenity.persister.Sqlite.__unittest6().Test).SqlitePersister.opIndex!().opIndex(ulong) 1289# 1290--format=dlang 1291_D3std6socket12InternetHost221__T13getHostNoSyncVAyaa96_0a09202020206175746f2078203d2068746f6e6c28706172616d293b0a09202020206175746f206865203d20676574686f73746279616464722826782c20342c206361737428696e74294164647265737346616d696c792e494e4554293b0a09TkZ13getHostNoSyncMFkZb 1292std.socket.InternetHost.getHostNoSync!("\n\t auto x = htonl(param);\n\t auto he = gethostbyaddr(&x, 4, cast(int)AddressFamily.INET);\n\t", uint).getHostNoSync(uint) 1293# 1294--format=dlang 1295_D2gc6config13__T5parseHTfZ5parseFNbNiAxaKAxaKfZb 1296gc.config.parse!(float).parse(const(char)[], ref const(char)[], ref float) 1297# 1298--format=dlang 1299_D3std11parallelism273__T4TaskS213std11parallelism3runTDFS3std9algorithm87__T9MapResultS27_D4test4mainFZ7getTermMFiZeTS3std5range13__T4iotaTiTiZ4iotaFiiZ6ResultZ9MapResultmmZeTS3std9algorithm87__T9MapResultS27_D4test4mainFZ7getTermMFiZeTS3std5range13__T4iotaTiTiZ4iotaFiiZ6ResultZ9MapResultTmTmZ4Task4implFPvZv 1300std.parallelism.Task!(std.parallelism.run, real(std.algorithm.MapResult!(test.main().getTerm(int), std.range.iota!(int, int).iota(int, int).Result).MapResult, ulong, ulong) delegate, std.algorithm.MapResult!(test.main().getTerm(int), std.range.iota!(int, int).iota(int, int).Result).MapResult, ulong, ulong).Task.impl(void*) 1301# 1302--format=dlang 1303_D2rt5minfo16__unittestL518_6FZ12UTModuleInfo6__ctorMFNckZS2rt5minfo16__unittestL518_6FZ12UTModuleInfo 1304rt.minfo.__unittestL518_6().UTModuleInfo.this(uint) 1305# 1306--format=dlang 1307_D3std6traits37__T7fqnTypeTC6ObjectVbi0Vbi0Vbi0Vbi0Z13addQualifiersFAyabbbbZAya 1308std.traits.fqnType!(Object, false, false, false, false).addQualifiers(immutable(char)[], bool, bool, bool, bool) 1309# 1310--format=dlang 1311_D3std9algorithm117__T9MapResultS153std5range4onlyTS3std9algorithm53__T12FilterResultS28_D3std3uni7isUpperFNaNbNfwZbTAyaZ12FilterResultZ9MapResult5frontMFNaNdNfZS3std5range22__T10OnlyResultTwVmi1Z10OnlyResult 1312std.algorithm.MapResult!(std.range.only, std.algorithm.FilterResult!(std.uni.isUpper(dchar), immutable(char)[]).FilterResult).MapResult.front() 1313# 1314--format=dlang 1315_D3std6traits17__T6fqnSymS43stdZ11adjustIdentFAyaZAya 1316std.traits.fqnSym!(std).adjustIdent(immutable(char)[]) 1317# 1318--format=dlang 1319_D2rt8lifetime36__T14_d_newarrayOpTS13_d_newarrayiTZ14_d_newarrayOpTFNaNbxC8TypeInfomPmZAv 1320rt.lifetime._d_newarrayOpT!(_d_newarrayiT)._d_newarrayOpT(const(TypeInfo), ulong, ulong*) 1321# 1322--format=dlang 1323_D4core8demangle16__T6mangleTFZPvZ6mangleFNaNbNfAxaAaZ11DotSplitter5emptyMxFNaNbNdNiNfZb 1324core.demangle.mangle!(void*() function).mangle(const(char)[], char[]).DotSplitter.empty() const 1325# Could crash 1326--format=dlang 1327_D8__T2fnVa8888888888888_ 1328_D8__T2fnVa8888888888888_ 1329# Could crash 1330--format=dlang 1331_D5__T2fnVmA1A1A911111111D 1332_D5__T2fnVmA1A1A911111111D 1333# Could crash 1334--format=dlang 1335_D7__T2fnVlS8S588888888888S6S5 1336_D7__T2fnVlS8S588888888888S6S5 1337# Could crash 1338--format=dlang 1339_D1_B699999999961* 1340_D1_B699999999961* 1341# Could crash 1342--format=dlang 1343_D5__T1fVHacA6666666666_ 1344_D5__T1fVHacA6666666666_ 1345# 1346--format=dlang 1347_D3std5range15__T4iotaTtTtTtZ4iotaFtttZ6Result7opIndexMNgFNaNbNiNfmZNgt 1348std.range.iota!(ushort, ushort, ushort).iota(ushort, ushort, ushort).Result.opIndex(ulong) inout 1349# 1350--format=dlang 1351_D3std6format77__T6getNthVAyaa13_696e7465676572207769647468S233std6traits10isIntegralTiTkTkZ6getNthFNaNfkkkZi 1352std.format.getNth!("integer width", std.traits.isIntegral, int, uint, uint).getNth(uint, uint, uint) 1353# 1354--format=dlang 1355_D3std11parallelism42__T16RoundRobinBufferTDFKAaZvTDxFNaNdNeZbZ16RoundRobinBuffer5primeMFZv 1356std.parallelism.RoundRobinBuffer!(void(ref char[]) delegate, bool() pure @property @trusted delegate const).RoundRobinBuffer.prime() 1357# 1358--format=dlang 1359_D4core4stdc5errnoQgFZi 1360core.stdc.errno.errno() 1361# 1362--format=dlang 1363_D4testFS10structnameQnZb 1364test(structname, structname) 1365# 1366--format=dlang 1367_D3std11parallelism__T4TaskS8unittest3cmpTAyaTQeZQBb6__dtorMFNfZv 1368std.parallelism.Task!(unittest.cmp, immutable(char)[], immutable(char)[]).Task.~this() 1369# 1370--format=dlang 1371_D13testexpansion44__T1sTS13testexpansion8__T1sTiZ1sFiZ6ResultZ1sFS13testexpansion8__T1sTiZ1sFiZ6ResultZ6Result3fooMFNaNfZv 1372testexpansion.s!(testexpansion.s!(int).s(int).Result).s(testexpansion.s!(int).s(int).Result).Result.foo() 1373# 1374--format=dlang 1375_D13testexpansion__T1sTSQw__TQjTiZQoFiZ6ResultZQBbFQBcZQq3fooMFNaNfZv 1376testexpansion.s!(testexpansion.s!(int).s(int).Result).s(testexpansion.s!(int).s(int).Result).Result.foo() 1377# 1378--format=dlang 1379_D3std4conv__T7enumRepTyAaTEQBa12experimental9allocator15building_blocks15stats_collector7OptionsVQCti64ZQDnyQDh 1380std.conv.enumRep!(immutable(char[]), std.experimental.allocator.building_blocks.stats_collector.Options, 64).enumRep 1381# 1382--format=dlang 1383_D3std12experimental9allocator6common__T10reallocateTSQCaQBzQBo15building_blocks17kernighan_ritchie__T8KRRegionTSQEhQEgQDvQCh14null_allocator13NullAllocatorZQCdZQErFNaNbNiKQEpKAvmZb 1384std.experimental.allocator.common.reallocate!(std.experimental.allocator.building_blocks.kernighan_ritchie.KRRegion!(std.experimental.allocator.building_blocks.null_allocator.NullAllocator).KRRegion).reallocate(ref std.experimental.allocator.building_blocks.kernighan_ritchie.KRRegion!(std.experimental.allocator.building_blocks.null_allocator.NullAllocator).KRRegion, ref void[], ulong) 1385# 1386--format=dlang 1387_D3std9exception__T11doesPointToTASQBh5regex8internal2ir10NamedGroupTQBkTvZQCeFNaNbNiNeKxASQDlQCeQCbQBvQBvKxQtZb 1388std.exception.doesPointTo!(std.regex.internal.ir.NamedGroup[], std.regex.internal.ir.NamedGroup[], void).doesPointTo(ref const(std.regex.internal.ir.NamedGroup[]), ref const(std.regex.internal.ir.NamedGroup[])) 1389# 1390--format=dlang 1391_D3std9algorithm9iteration__T14SplitterResultS_DQBu3uni7isWhiteFNaNbNiNfwZbTAyaZQBz9__xtoHashFNbNeKxSQDvQDuQDn__TQDgS_DQEnQCtQCsQCnTQCeZQEdZm 1392std.algorithm.iteration.SplitterResult!(std.uni.isWhite(dchar), immutable(char)[]).SplitterResult.__xtoHash(ref const(std.algorithm.iteration.SplitterResult!(std.uni.isWhite, immutable(char)[]).SplitterResult)) 1393# 1394--format=dlang 1395_D3std8typecons__T7TypedefTCQBaQz19__unittestL6513_208FNfZ7MyClassVQBonVAyanZQCh6__ctorMFNaNbNcNiNfQCuZSQDyQDx__TQDrTQDmVQDqnVQCcnZQEj 1396std.typecons.Typedef!(std.typecons.__unittestL6513_208().MyClass, null, null).Typedef.this(std.typecons.__unittestL6513_208().MyClass) 1397# 1398--format=dlang 1399_D3std6getopt__TQkTAyaTDFNaNbNiNfQoZvTQtTDQsZQBnFNfKAQBiQBlQBkQBrQyZSQCpQCo12GetoptResult 1400std.getopt.getopt!(immutable(char)[], void(immutable(char)[]) pure nothrow @nogc @safe delegate, immutable(char)[], void(immutable(char)[]) pure nothrow @nogc @safe delegate).getopt(ref immutable(char)[][], immutable(char)[], void(immutable(char)[]) pure nothrow @nogc @safe delegate, immutable(char)[], void(immutable(char)[]) pure nothrow @nogc @safe delegate) 1401# 1402--format=dlang 1403_D3std5regex8internal9kickstart__T7ShiftOrTaZQl11ShiftThread__T3setS_DQCqQCpQCmQCg__TQBzTaZQCfQBv10setInvMaskMFNaNbNiNfkkZvZQCjMFNaNfwZv 1404std.regex.internal.kickstart.ShiftOr!(char).ShiftOr.ShiftThread.set!(std.regex.internal.kickstart.ShiftOr!(char).ShiftOr.ShiftThread.setInvMask(uint, uint)).set(dchar) 1405# 1406--format=dlang 1407_D3std5stdio4File__T8lockImplX10LockFileExTykZQBaMFmmykZi 1408std.stdio.File.lockImpl!(LockFileEx, immutable(uint)).lockImpl(ulong, ulong, immutable(uint)) 1409# 1410--format=dlang 1411_D3std9algorithm9iteration__T12FilterResultSQBq8typecons__T5TupleTiVAyaa1_61TiVQla1_62TiVQva1_63ZQBm__T6renameVHiQBtA2i0a1_63i2a1_61ZQBeMFNcZ9__lambda1TAiZQEw9__xtoHashFNbNeKxSQGsQGrQGk__TQGdSQHiQFs__TQFmTiVQFja1_61TiVQFua1_62TiVQGfa1_63ZQGx__TQFlVQFhA2i0a1_63i2a1_61ZQGjMFNcZQFfTQEyZQJvZm 1412std.algorithm.iteration.FilterResult!(std.typecons.Tuple!(int, "a", int, "b", int, "c").Tuple.rename!([0:"c", 2:"a"]).rename().__lambda1, int[]).FilterResult.__xtoHash(ref const(std.algorithm.iteration.FilterResult!(std.typecons.Tuple!(int, "a", int, "b", int, "c").Tuple.rename!([0:"c", 2:"a"]).rename().__lambda1, int[]).FilterResult)) 1413# 1414--format=dlang 1415_D3std3uni__T6toCaseS_DQvQt12toLowerIndexFNaNbNiNewZtVii1043S_DQCjQCi10toLowerTabFNaNbNiNemZwSQDo5ascii7toLowerTAyaZQDzFNaNeQmZ14__foreachbody2MFNaNeKmKwZ14__foreachbody3MFNaNeKwZi 1416std.uni.toCase!(std.uni.toLowerIndex(dchar), 1043, std.uni.toLowerTab(ulong), std.ascii.toLower, immutable(char)[]).toCase(immutable(char)[]).__foreachbody2(ref ulong, ref dchar).__foreachbody3(ref dchar) 1417