@@ -144,41 +144,58 @@ export enum LocalFlags {
144144
145145 /** Local is constant. */
146146 CONSTANT = 1 << 0 ,
147+ /** Local is a function parameter. */
148+ PARAMETER = 1 << 1 ,
147149 /** Local is properly wrapped. Relevant for small integers. */
148- WRAPPED = 1 << 1 ,
150+ WRAPPED = 1 << 2 ,
149151 /** Local is non-null. */
150- NONNULL = 1 << 2 ,
152+ NONNULL = 1 << 3 ,
151153 /** Local is read from. */
152- READFROM = 1 << 3 ,
154+ READFROM = 1 << 4 ,
153155 /** Local is written to. */
154- WRITTENTO = 1 << 4 ,
156+ WRITTENTO = 1 << 5 ,
155157 /** Local is retained. */
156- RETAINED = 1 << 5 ,
158+ RETAINED = 1 << 6 ,
159+ /** Local is returned. */
160+ RETURNED = 1 << 7 ,
157161
158162 /** Local is conditionally read from. */
159- CONDITIONALLY_READFROM = 1 << 6 ,
163+ CONDITIONALLY_READFROM = 1 << 8 ,
160164 /** Local is conditionally written to. */
161- CONDITIONALLY_WRITTENTO = 1 << 7 ,
165+ CONDITIONALLY_WRITTENTO = 1 << 9 ,
162166 /** Local must be conditionally retained. */
163- CONDITIONALLY_RETAINED = 1 << 8 ,
167+ CONDITIONALLY_RETAINED = 1 << 10 ,
168+ /** Local is conditionally returned. */
169+ CONDITIONALLY_RETURNED = 1 << 11 ,
164170
165171 /** Any categorical flag. */
166172 ANY_CATEGORICAL = CONSTANT
173+ | PARAMETER
167174 | WRAPPED
168175 | NONNULL
169176 | READFROM
170177 | WRITTENTO
171- | RETAINED ,
178+ | RETAINED
179+ | RETURNED ,
172180
173181 /** Any conditional flag. */
174182 ANY_CONDITIONAL = RETAINED
175183 | CONDITIONALLY_READFROM
176184 | CONDITIONALLY_WRITTENTO
177- | CONDITIONALLY_RETAINED ,
185+ | CONDITIONALLY_RETAINED
186+ | CONDITIONALLY_RETURNED ,
187+
188+ /** Any written to flag. */
189+ ANY_WRITTENTO = WRITTENTO
190+ | CONDITIONALLY_WRITTENTO ,
178191
179192 /** Any retained flag. */
180193 ANY_RETAINED = RETAINED
181- | CONDITIONALLY_RETAINED
194+ | CONDITIONALLY_RETAINED ,
195+
196+ /** Any returned flag. */
197+ ANY_RETURNED = RETURNED
198+ | CONDITIONALLY_RETURNED
182199}
183200export namespace LocalFlags {
184201 export function join ( left : LocalFlags , right : LocalFlags ) : LocalFlags {
@@ -565,6 +582,7 @@ export class Flow {
565582 if ( flags & LocalFlags . RETAINED ) this . setLocalFlag ( i , LocalFlags . CONDITIONALLY_RETAINED ) ;
566583 if ( flags & LocalFlags . READFROM ) this . setLocalFlag ( i , LocalFlags . CONDITIONALLY_READFROM ) ;
567584 if ( flags & LocalFlags . WRITTENTO ) this . setLocalFlag ( i , LocalFlags . CONDITIONALLY_WRITTENTO ) ;
585+ if ( flags & LocalFlags . RETURNED ) this . setLocalFlag ( i , LocalFlags . CONDITIONALLY_RETURNED ) ;
568586 }
569587 }
570588
0 commit comments