comparison sema/DType.d @ 179:2a1a635bd531

Changes the way messages can be displayed. Also added a toString to DType's for type printing.
author Anders Johnsen <skabet@gmail.com>
date Fri, 25 Jul 2008 01:21:07 +0200
parents dc9bf56b7ace
children 59cd211a1bd3
comparison
equal deleted inserted replaced
178:5f7e2f2344a5 179:2a1a635bd531
97 */ 97 */
98 hash_t toHash() 98 hash_t toHash()
99 { 99 {
100 return cast(hash_t)(cast(void*)this); 100 return cast(hash_t)(cast(void*)this);
101 } 101 }
102 /* 102
103 char[] toString() 103 char[] toString()
104 { 104 {
105 return id; 105 return id;
106 } 106 }
107 */ 107
108 char[] name() { return id; } 108 char[] name() { return id; }
109 SourceLocation getLoc() { return loc; } 109 SourceLocation getLoc() { return loc; }
110 int byteSize() { return 0; } 110 int byteSize() { return 0; }
111 111
112 /** 112 /**
546 return false; 546 return false;
547 547
548 return arrayOf.isSame(a.arrayOf); 548 return arrayOf.isSame(a.arrayOf);
549 } 549 }
550 550
551 char[] toString()
552 {
553 return arrayOf.toString~"["~Integer.toString(size)~"]";
554 }
555
556
551 override char[] mangle() 557 override char[] mangle()
552 { 558 {
553 return "G"~Integer.toString(size)~arrayOf.mangle; 559 return "G"~Integer.toString(size)~arrayOf.mangle;
554 } 560 }
555 561
615 auto p = d.asPointer; 621 auto p = d.asPointer;
616 622
617 return pointerOf.isSame(p.pointerOf); 623 return pointerOf.isSame(p.pointerOf);
618 } 624 }
619 625
626 char[] toString()
627 {
628 if (!pointerOf.isFunction)
629 return pointerOf.toString~"*";
630
631 auto f = pointerOf.asFunction;
632
633 char[] res = f.returnType.toString~" function(";
634
635 foreach (i, p ; f.params)
636 res ~= i ? ", "~p.toString : p.toString;
637
638 return res ~ ")";
639 }
640
620 override char[] mangle() 641 override char[] mangle()
621 { 642 {
622 return "P"~pointerOf.mangle; 643 return "P"~pointerOf.mangle;
623 } 644 }
624 645
651 672
652 res ~= "Z"; 673 res ~= "Z";
653 res ~= returnType.mangle; 674 res ~= returnType.mangle;
654 675
655 return res; 676 return res;
677 }
678
679 char[] toString()
680 {
681 char[] res = returnType.toString~" (";
682
683 foreach (i, p ; params)
684 res ~= i ? ", "~p.toString : p.toString;
685
686 return res ~ ")";
656 } 687 }
657 688
658 override bool isSame(DType f) 689 override bool isSame(DType f)
659 { 690 {
660 if (f is this) 691 if (f is this)