| 439 | } |
| 440 | |
| 441 | fn body_with_hoisted(&self, hoisted: &[&Ident], where_collector: &mut WhereCollector) -> TokenStream { |
| 442 | let ident = &self.ident; |
| 443 | MustOccurPlan { |
| 444 | fields: &self.fields, |
| 445 | members: &self.members, |
| 446 | post_parse_steps: &self.post_parse_steps, |
| 447 | parse_mode: FieldParseMode::OneMustOccur, |
| 448 | constructor: quote! { Self::#ident }, |
| 449 | hoisted, |
| 450 | } |
| 451 | .render(where_collector) |
| 452 | } |
| 453 | |
| 454 | /// Emit only the occurrence check + return for hoisted-only fallback. |
| 455 | /// Used when all variant discriminants failed but hoisted shared fields |