- Timestamp:
- Dec 17, 2020, 10:34:27 AM (5 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 852ae0ea
- Parents:
- 72a3aff (diff), 28e88d7 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - Location:
- tests
- Files:
-
- 11 edited
-
.expect/KRfunctions.nast.x86.txt (modified) (1 diff)
-
.expect/attributes.nast.x86.txt (modified) (4 diffs)
-
.expect/functions.nast.x86.txt (modified) (2 diffs)
-
errors/.expect/completeType.nast.x64.txt (modified) (12 diffs)
-
errors/.expect/completeType.nast.x86.txt (modified) (12 diffs)
-
heap.cfa (modified) (2 diffs)
-
multi_list.cfa (modified) (2 diffs)
-
queue.cfa (modified) (2 diffs)
-
raii/.expect/ctor-autogen-ERR1.nast.txt (modified) (1 diff)
-
sequence.cfa (modified) (2 diffs)
-
stack.cfa (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tests/.expect/KRfunctions.nast.x86.txt
r72a3aff r7a70fb2 86 86 __attribute__ ((unused)) signed int (*_X11_retval_f11PA0i_1)[]; 87 87 } 88 signed int (*_X3f12FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned longint )10)]{89 __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned longint )10)];88 signed int (*_X3f12FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned int )10)]{ 89 __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned int )10)]; 90 90 } 91 signed int (*_X3f13FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned longint )10)]{92 __attribute__ ((unused)) signed int (*_X11_retval_f13PA0A0i_1)[][((unsigned longint )10)];91 signed int (*_X3f13FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned int )10)]{ 92 __attribute__ ((unused)) signed int (*_X11_retval_f13PA0A0i_1)[][((unsigned int )10)]; 93 93 } 94 signed int (*_X3f14FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned longint )10)]{95 __attribute__ ((unused)) signed int (*_X11_retval_f14PA0A0i_1)[][((unsigned longint )10)];94 signed int (*_X3f14FPA0A0i_iPiPi__1(signed int _X1ai_1, signed int *_X1bPi_1, signed int *_X1cPi_1))[][((unsigned int )10)]{ 95 __attribute__ ((unused)) signed int (*_X11_retval_f14PA0A0i_1)[][((unsigned int )10)]; 96 96 } 97 97 signed int _X3f15Fi_iii__1(signed int _X1ai_1, signed int _X1bi_1, signed int _X1ci_1){ -
tests/.expect/attributes.nast.x86.txt
r72a3aff r7a70fb2 623 623 __attribute__ ((used,used,used,used)) const signed int *_X3vd3PKi_1; 624 624 __attribute__ ((used,used,unused,used,unused)) const signed int *_X3vd4PKi_1; 625 __attribute__ ((used,used,used)) const signed int _X3vd5A0Ki_1[((unsigned longint )5)];626 __attribute__ ((used,used,unused,used)) const signed int _X3vd6A0Ki_1[((unsigned longint )5)];625 __attribute__ ((used,used,used)) const signed int _X3vd5A0Ki_1[((unsigned int )5)]; 626 __attribute__ ((used,used,unused,used)) const signed int _X3vd6A0Ki_1[((unsigned int )5)]; 627 627 __attribute__ ((used,used,used,used)) const signed int (*_X3vd7Fi___1)(); 628 628 __attribute__ ((used,used,unused,used,used)) const signed int (*_X3vd8Fi___1)(); … … 647 647 __attribute__ ((unused,unused,used)) signed int _X2t1i_2; 648 648 __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t2PPi_2; 649 __attribute__ ((unused,unused,unused)) signed int _X2t3A0i_2[((unsigned longint )5)];650 __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned longint )5)];649 __attribute__ ((unused,unused,unused)) signed int _X2t3A0i_2[((unsigned int )5)]; 650 __attribute__ ((unused,unused,unused,unused,unused)) signed int **_X2t4A0PPi_2[((unsigned int )5)]; 651 651 __attribute__ ((unused,unused,unused)) signed int _X2t5Fi___2(); 652 652 __attribute__ ((unused,unused,unused,unused)) signed int *_X2t6FPi___2(); … … 671 671 signed int _X4tpr2Fi_PPi__1(__attribute__ ((unused,unused,unused,unused,unused,unused)) signed int **_X3FooPPi_1); 672 672 signed int _X4tpr3Fi_Pi__1(__attribute__ ((unused,unused,unused)) signed int *_X3FooPi_1); 673 signed int _X4tpr4Fi_Fi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object1)(signed int __param_0[((unsigned longint )5)]));673 signed int _X4tpr4Fi_Fi_Pi___1(__attribute__ ((unused,unused)) signed int (*__anonymous_object1)(signed int __param_0[((unsigned int )5)])); 674 674 signed int _X4tpr5Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)()); 675 675 signed int _X4tpr6Fi_Fi____1(__attribute__ ((unused,unused,unused)) signed int (*_X3FooFi___1)()); … … 679 679 __attribute__ ((used,unused)) signed int _X3ad1i_2; 680 680 __attribute__ ((unused,unused,unused)) signed int *_X3ad2Pi_2; 681 __attribute__ ((unused,unused,unused)) signed int _X3ad3A0i_2[((unsigned longint )5)];682 __attribute__ ((unused,unused,unused,unused,unused)) signed int (*_X3ad4PA0i_2)[((unsigned longint )10)];681 __attribute__ ((unused,unused,unused)) signed int _X3ad3A0i_2[((unsigned int )5)]; 682 __attribute__ ((unused,unused,unused,unused,unused)) signed int (*_X3ad4PA0i_2)[((unsigned int )10)]; 683 683 __attribute__ ((unused,unused,unused,unused,used)) signed int _X3ad5i_2; 684 684 __attribute__ ((unused,unused,unused,unused,unused)) signed int _X3ad6Fi___2(); -
tests/.expect/functions.nast.x86.txt
r72a3aff r7a70fb2 46 46 __attribute__ ((unused)) signed int (*_X11_retval_f10PA0i_1)[]; 47 47 } 48 signed int (*_X3f11FPA0A0i___1())[][((unsigned longint )3)]{49 __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned longint )3)];50 } 51 signed int (*_X3f12FPA0A0i___1())[][((unsigned longint )3)]{52 __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned longint )3)];48 signed int (*_X3f11FPA0A0i___1())[][((unsigned int )3)]{ 49 __attribute__ ((unused)) signed int (*_X11_retval_f11PA0A0i_1)[][((unsigned int )3)]; 50 } 51 signed int (*_X3f12FPA0A0i___1())[][((unsigned int )3)]{ 52 __attribute__ ((unused)) signed int (*_X11_retval_f12PA0A0i_1)[][((unsigned int )3)]; 53 53 } 54 54 signed int _X4fII1Fi_i__1(signed int _X1ii_1){ … … 250 250 signed int _X1fFi_Fi_ii_Fi_i___1(__attribute__ ((unused)) signed int (*__anonymous_object20)(signed int __param_0, signed int __param_1), __attribute__ ((unused)) signed int (*__anonymous_object21)(signed int __param_0)){ 251 251 __attribute__ ((unused)) signed int _X9_retval_fi_1; 252 signed int (*(*_X2pcPA0A0PA0A0i_2)[][((unsigned long int )10)])[][((unsigned longint )3)];253 signed int (*(*_X1pPA0A0PA0A0i_2)[][((unsigned long int )10)])[][((unsigned longint )3)];252 signed int (*(*_X2pcPA0A0PA0A0i_2)[][((unsigned int )10)])[][((unsigned int )3)]; 253 signed int (*(*_X1pPA0A0PA0A0i_2)[][((unsigned int )10)])[][((unsigned int )3)]; 254 254 signed int (*(*_X1pPA0Fi_i__2)[])(signed int __param_0); 255 255 } -
tests/errors/.expect/completeType.nast.x64.txt
r72a3aff r7a70fb2 12 12 Application of 13 13 Variable Expression: *?: forall 14 DT: data type14 instance of type DT (not function type) 15 15 function 16 16 ... with parameters … … 21 21 ... with resolved type: 22 22 pointer to forall 23 [unbound]:data type23 instance of type [unbound] (not function type) 24 24 function 25 25 ... with parameters … … 41 41 void 42 42 ) 43 Environment:([unbound] ) -> instance of struct A without body (no widening)43 Environment:([unbound]DT) -> instance of struct A without body (no widening) 44 44 45 45 … … 47 47 Application of 48 48 Variable Expression: *?: forall 49 DT: data type49 instance of type DT (not function type) 50 50 function 51 51 ... with parameters … … 56 56 ... with resolved type: 57 57 pointer to forall 58 [unbound]:data type58 instance of type [unbound] (not function type) 59 59 function 60 60 ... with parameters … … 76 76 void 77 77 ) 78 Environment:([unbound] ) -> instance of struct B with body (no widening)78 Environment:([unbound]DT) -> instance of struct B with body (no widening) 79 79 80 80 … … 113 113 Cost ( 0, 1, 0, 0, 1, -5, 0 ): Application of 114 114 Variable Expression: baz: forall 115 T: sized data type 116 ... with assertions 117 ?=?: pointer to function 115 instance of type T (not function type) 116 with assertions 117 Variable Expression: ?=?: pointer to function 118 ... with parameters 119 reference to instance of type T (not function type) 120 instance of type T (not function type) 121 ... returning 122 instance of type T (not function type) 123 124 ... with resolved type: 125 pointer to function 118 126 ... with parameters 119 127 reference to instance of type T (not function type) … … 122 130 instance of type T (not function type) 123 131 124 ?{}: pointer to function 125 ... with parameters 126 reference to instance of type T (not function type) 127 ... returning nothing 128 129 ?{}: pointer to function 130 ... with parameters 131 reference to instance of type T (not function type) 132 instance of type T (not function type) 133 ... returning nothing 134 135 ^?{}: pointer to function 136 ... with parameters 137 reference to instance of type T (not function type) 138 ... returning nothing 139 132 Variable Expression: ?{}: pointer to function 133 ... with parameters 134 reference to instance of type T (not function type) 135 ... returning nothing 136 137 ... with resolved type: 138 pointer to function 139 ... with parameters 140 reference to instance of type T (not function type) 141 ... returning nothing 142 143 Variable Expression: ?{}: pointer to function 144 ... with parameters 145 reference to instance of type T (not function type) 146 instance of type T (not function type) 147 ... returning nothing 148 149 ... with resolved type: 150 pointer to function 151 ... with parameters 152 reference to instance of type T (not function type) 153 instance of type T (not function type) 154 ... returning nothing 155 156 Variable Expression: ^?{}: pointer to function 157 ... with parameters 158 reference to instance of type T (not function type) 159 ... returning nothing 160 161 ... with resolved type: 162 pointer to function 163 ... with parameters 164 reference to instance of type T (not function type) 165 ... returning nothing 140 166 141 167 function … … 146 172 ... with resolved type: 147 173 pointer to forall 148 [unbound]:sized data type 149 ... with assertions 150 ?=?: pointer to function 174 instance of type [unbound] (not function type) 175 with assertions 176 Variable Expression: ?=?: pointer to function 177 ... with parameters 178 reference to instance of type T (not function type) 179 instance of type T (not function type) 180 ... returning 181 instance of type T (not function type) 182 183 ... with resolved type: 184 pointer to function 151 185 ... with parameters 152 186 reference to instance of type [unbound] (not function type) … … 155 189 instance of type [unbound] (not function type) 156 190 157 ?{}: pointer to function 191 Variable Expression: ?{}: pointer to function 192 ... with parameters 193 reference to instance of type T (not function type) 194 ... returning nothing 195 196 ... with resolved type: 197 pointer to function 158 198 ... with parameters 159 199 reference to instance of type [unbound] (not function type) 160 200 ... returning nothing 161 201 162 ?{}: pointer to function 202 Variable Expression: ?{}: pointer to function 203 ... with parameters 204 reference to instance of type T (not function type) 205 instance of type T (not function type) 206 ... returning nothing 207 208 ... with resolved type: 209 pointer to function 163 210 ... with parameters 164 211 reference to instance of type [unbound] (not function type) … … 166 213 ... returning nothing 167 214 168 ^?{}: pointer to function 215 Variable Expression: ^?{}: pointer to function 216 ... with parameters 217 reference to instance of type T (not function type) 218 ... returning nothing 219 220 ... with resolved type: 221 pointer to function 169 222 ... with parameters 170 223 reference to instance of type [unbound] (not function type) 171 224 ... returning nothing 172 173 225 174 226 function … … 188 240 void 189 241 ) 190 Environment:([unbound] ) -> instance of type T (not function type) (no widening)242 Environment:([unbound]T) -> instance of type T (not function type) (no widening) 191 243 192 244 Could not satisfy assertion: 193 ?=?: pointer to function245 Variable Expression: ?=?: pointer to function 194 246 ... with parameters 195 reference to instance of type [unbound](not function type)196 instance of type [unbound](not function type)247 reference to instance of type T (not function type) 248 instance of type T (not function type) 197 249 ... returning 198 instance of type [unbound] (not function type) 199 250 instance of type T (not function type) 251 252 ... with resolved type: 253 pointer to function 254 ... with parameters 255 reference to instance of type [unbound] (not function type) 256 instance of type [unbound] (not function type) 257 ... returning 258 instance of type [unbound] (not function type) 259 -
tests/errors/.expect/completeType.nast.x86.txt
r72a3aff r7a70fb2 12 12 Application of 13 13 Variable Expression: *?: forall 14 DT: data type14 instance of type DT (not function type) 15 15 function 16 16 ... with parameters … … 21 21 ... with resolved type: 22 22 pointer to forall 23 [unbound]:data type23 instance of type [unbound] (not function type) 24 24 function 25 25 ... with parameters … … 41 41 void 42 42 ) 43 Environment:([unbound] ) -> instance of struct A without body (no widening)43 Environment:([unbound]DT) -> instance of struct A without body (no widening) 44 44 45 45 … … 47 47 Application of 48 48 Variable Expression: *?: forall 49 DT: data type49 instance of type DT (not function type) 50 50 function 51 51 ... with parameters … … 56 56 ... with resolved type: 57 57 pointer to forall 58 [unbound]:data type58 instance of type [unbound] (not function type) 59 59 function 60 60 ... with parameters … … 76 76 void 77 77 ) 78 Environment:([unbound] ) -> instance of struct B with body (no widening)78 Environment:([unbound]DT) -> instance of struct B with body (no widening) 79 79 80 80 … … 113 113 Cost ( 0, 1, 0, 0, 1, -5, 0 ): Application of 114 114 Variable Expression: baz: forall 115 T: sized data type 116 ... with assertions 117 ?=?: pointer to function 115 instance of type T (not function type) 116 with assertions 117 Variable Expression: ?=?: pointer to function 118 ... with parameters 119 reference to instance of type T (not function type) 120 instance of type T (not function type) 121 ... returning 122 instance of type T (not function type) 123 124 ... with resolved type: 125 pointer to function 118 126 ... with parameters 119 127 reference to instance of type T (not function type) … … 122 130 instance of type T (not function type) 123 131 124 ?{}: pointer to function 125 ... with parameters 126 reference to instance of type T (not function type) 127 ... returning nothing 128 129 ?{}: pointer to function 130 ... with parameters 131 reference to instance of type T (not function type) 132 instance of type T (not function type) 133 ... returning nothing 134 135 ^?{}: pointer to function 136 ... with parameters 137 reference to instance of type T (not function type) 138 ... returning nothing 139 132 Variable Expression: ?{}: pointer to function 133 ... with parameters 134 reference to instance of type T (not function type) 135 ... returning nothing 136 137 ... with resolved type: 138 pointer to function 139 ... with parameters 140 reference to instance of type T (not function type) 141 ... returning nothing 142 143 Variable Expression: ?{}: pointer to function 144 ... with parameters 145 reference to instance of type T (not function type) 146 instance of type T (not function type) 147 ... returning nothing 148 149 ... with resolved type: 150 pointer to function 151 ... with parameters 152 reference to instance of type T (not function type) 153 instance of type T (not function type) 154 ... returning nothing 155 156 Variable Expression: ^?{}: pointer to function 157 ... with parameters 158 reference to instance of type T (not function type) 159 ... returning nothing 160 161 ... with resolved type: 162 pointer to function 163 ... with parameters 164 reference to instance of type T (not function type) 165 ... returning nothing 140 166 141 167 function … … 146 172 ... with resolved type: 147 173 pointer to forall 148 [unbound]:sized data type 149 ... with assertions 150 ?=?: pointer to function 174 instance of type [unbound] (not function type) 175 with assertions 176 Variable Expression: ?=?: pointer to function 177 ... with parameters 178 reference to instance of type T (not function type) 179 instance of type T (not function type) 180 ... returning 181 instance of type T (not function type) 182 183 ... with resolved type: 184 pointer to function 151 185 ... with parameters 152 186 reference to instance of type [unbound] (not function type) … … 155 189 instance of type [unbound] (not function type) 156 190 157 ?{}: pointer to function 191 Variable Expression: ?{}: pointer to function 192 ... with parameters 193 reference to instance of type T (not function type) 194 ... returning nothing 195 196 ... with resolved type: 197 pointer to function 158 198 ... with parameters 159 199 reference to instance of type [unbound] (not function type) 160 200 ... returning nothing 161 201 162 ?{}: pointer to function 202 Variable Expression: ?{}: pointer to function 203 ... with parameters 204 reference to instance of type T (not function type) 205 instance of type T (not function type) 206 ... returning nothing 207 208 ... with resolved type: 209 pointer to function 163 210 ... with parameters 164 211 reference to instance of type [unbound] (not function type) … … 166 213 ... returning nothing 167 214 168 ^?{}: pointer to function 215 Variable Expression: ^?{}: pointer to function 216 ... with parameters 217 reference to instance of type T (not function type) 218 ... returning nothing 219 220 ... with resolved type: 221 pointer to function 169 222 ... with parameters 170 223 reference to instance of type [unbound] (not function type) 171 224 ... returning nothing 172 173 225 174 226 function … … 188 240 void 189 241 ) 190 Environment:([unbound] ) -> instance of type T (not function type) (no widening)242 Environment:([unbound]T) -> instance of type T (not function type) (no widening) 191 243 192 244 Could not satisfy assertion: 193 ?=?: pointer to function245 Variable Expression: ?=?: pointer to function 194 246 ... with parameters 195 reference to instance of type [unbound](not function type)196 instance of type [unbound](not function type)247 reference to instance of type T (not function type) 248 instance of type T (not function type) 197 249 ... returning 198 instance of type [unbound] (not function type) 199 250 instance of type T (not function type) 251 252 ... with resolved type: 253 pointer to function 254 ... with parameters 255 reference to instance of type [unbound] (not function type) 256 instance of type [unbound] (not function type) 257 ... returning 258 instance of type [unbound] (not function type) 259 -
tests/heap.cfa
r72a3aff r7a70fb2 10 10 // Created On : Tue Nov 6 17:54:56 2018 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Sep 25 15:21:52202013 // Update Count : 7 312 // Last Modified On : Tue Dec 15 12:11:51 2020 13 // Update Count : 79 14 14 // 15 15 … … 27 27 // } 28 28 29 #define __U_DEFAULT_MMAP_START__ (512 * 1024 + 1) 30 size_t default_mmap_start() __attribute__(( weak )) { 31 return __U_DEFAULT_MMAP_START__; 29 size_t default_heap_expansion() { 30 return 10 * 1024 * 1024; 31 } // default_heap_expansion 32 33 size_t default_mmap_start() { 34 return 512 * 1024 + 1; 32 35 } // default_mmap_start 33 36 -
tests/multi_list.cfa
r72a3aff r7a70fb2 19 19 } 20 20 21 TaskDL *& Back( TaskDL * n ) { 22 return (TaskDL *)Back( (Seqable *)n ); 23 } 24 25 TaskDL *& Next( TaskDL * n ) { 26 return (TaskDL *)Next( (Colable *)n ); 27 } 28 29 bool listed( TaskDL * n ) { 30 return Next( (Colable *)n ) != 0p; 31 } 32 21 33 struct TaskSL { 22 34 inline Colable; … … 29 41 Task & task( TaskSL & this ) with( this ) { // getter routine for containing node 30 42 return node; 43 } 44 45 TaskSL *& Next( TaskSL * n ) { 46 return (TaskSL *)Next( (Colable *)n ); 47 } 48 49 bool listed( TaskSL * n ) { 50 return Next( (Colable *)n ) != 0p; 31 51 } 32 52 -
tests/queue.cfa
r72a3aff r7a70fb2 13 13 void ?{}( Fred & fred, int p ) with( fred ) { 14 14 i = p; 15 } 16 Fred *& Next( Fred * n ) { 17 return (Fred *)Next( (Colable *)n ); 18 } 19 20 bool listed( Fred * n ) { 21 return Next( (Colable *)n ) != 0p; 15 22 } 16 23 … … 68 75 } 69 76 77 Mary *& Next( Mary * n ) { 78 return (Mary *)Next( (Colable *)n ); 79 } 80 81 bool listed( Mary * n ) { 82 return Next( (Colable *)n ) != 0p; 83 } 84 70 85 Queue(Mary) mary; 71 86 QueueIter(Mary) maryIter = { mary }; -
tests/raii/.expect/ctor-autogen-ERR1.nast.txt
r72a3aff r7a70fb2 70 70 ... with environment: 71 71 Types: 72 Non-types:73 72 74 73 -
tests/sequence.cfa
r72a3aff r7a70fb2 13 13 void ?{}( Fred & fred, int p ) with( fred ) { 14 14 i = p; 15 } 16 17 Fred *& Back( Fred * n ) { 18 return (Fred *)Back( (Seqable *)n ); 19 } 20 21 Fred *& Next( Fred * n ) { 22 return (Fred *)Next( (Colable *)n ); 23 } 24 25 bool listed( Fred * n ) { 26 return Next( (Colable *)n ) != 0p; 15 27 } 16 28 … … 76 88 } 77 89 90 Mary *& Back( Mary * n ) { 91 return (Mary *)Back( (Seqable *)n ); 92 } 93 94 Mary *& Next( Mary * n ) { 95 return (Mary *)Next( (Colable *)n ); 96 } 97 98 bool listed( Mary * n ) { 99 return Next( (Colable *)n ) != 0p; 100 } 101 78 102 Sequence(Mary) mary; 79 103 Sequence(Mary) baz; -
tests/stack.cfa
r72a3aff r7a70fb2 13 13 void ?{}( Fred & fred, int p ) with( fred ) { 14 14 i = p; 15 } 16 Fred *& Next( Fred * n ) { 17 return (Fred *)Next( (Colable *)n ); 18 } 19 20 bool listed( Fred * n ) { 21 return Next( (Colable *)n ) != 0p; 15 22 } 16 23 … … 68 75 } 69 76 77 Mary *& Next( Mary * n ) { 78 return (Mary *)Next( (Colable *)n ); 79 } 80 81 bool listed( Mary * n ) { 82 return Next( (Colable *)n ) != 0p; 83 } 84 70 85 Stack(Mary) mary; 71 86 StackIter(Mary) maryIter = { mary };
Note:
See TracChangeset
for help on using the changeset viewer.