comparison dmd/AggregateDeclaration.d @ 130:60bb0fe4563e

dmdfe 2.037 first main iteration
author Eldar Insafutdinov <e.insafutdinov@gmail.com>
date Thu, 09 Sep 2010 22:51:44 +0100
parents 767a01c2a272
children 206db751bd4c
comparison
equal deleted inserted replaced
129:010eb8f0e18d 130:60bb0fe4563e
139 } 139 }
140 140
141 class AggregateDeclaration : ScopeDsymbol 141 class AggregateDeclaration : ScopeDsymbol
142 { 142 {
143 Type type; 143 Type type;
144 uint storage_class; 144 STC storage_class;
145 PROT protection = PROT.PROTpublic; 145 PROT protection = PROT.PROTpublic;
146 Type handle; // 'this' type 146 Type handle; // 'this' type
147 uint structsize; // size of struct 147 uint structsize; // size of struct
148 uint alignsize; // size of struct for alignment purposes 148 uint alignsize; // size of struct for alignment purposes
149 uint structalign; // struct member alignment in effect 149 uint structalign; // struct member alignment in effect
152 uint sizeok; // set when structsize contains valid data 152 uint sizeok; // set when structsize contains valid data
153 // 0: no size 153 // 0: no size
154 // 1: size is correct 154 // 1: size is correct
155 // 2: cannot determine size; fwd referenced 155 // 2: cannot determine size; fwd referenced
156 bool isdeprecated; // true if deprecated 156 bool isdeprecated; // true if deprecated
157 157
158 version (DMDV2) {
158 bool isnested; // true if is nested 159 bool isnested; // true if is nested
159 VarDeclaration vthis; // 'this' parameter if this aggregate is nested 160 VarDeclaration vthis; // 'this' parameter if this aggregate is nested
160 161 }
161 // Special member functions 162 // Special member functions
162 InvariantDeclaration inv; // invariant 163 InvariantDeclaration inv; // invariant
163 NewDeclaration aggNew; // allocator 164 NewDeclaration aggNew; // allocator
164 DeleteDeclaration aggDelete; // deallocator 165 DeleteDeclaration aggDelete; // deallocator
165 166