Mercurial > projects > dang
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) |