(ident: syn::Ident)
| 635 | } |
| 636 | |
| 637 | fn parse_local_id(ident: syn::Ident) -> syn::Result<LocalId> { |
| 638 | if ident.to_string().starts_with('l') { |
| 639 | let n = ident.to_string()[1..] |
| 640 | .parse::<u64>() |
| 641 | .map_err(|err| Error::new(ident.span(), err.to_string()))?; |
| 642 | Ok(mz_expr::LocalId::new(n)) |
| 643 | } else { |
| 644 | Err(Error::new(ident.span(), "invalid LocalId")) |
| 645 | } |
| 646 | } |
| 647 | |
| 648 | #[derive(Default)] |
| 649 | pub struct FixTypesCtx { |