diff --git a/src/protocol/ast.rs b/src/protocol/ast.rs index 6f42d75ea68749ad3cc38b3f8e6ff2e935512fd5..c73bcdf4b710390a3a21bc6c0202cf5dd089137f 100644 --- a/src/protocol/ast.rs +++ b/src/protocol/ast.rs @@ -1022,7 +1022,7 @@ pub struct MethodSymbolic { #[derive(Debug, Clone, serde::Serialize, serde::Deserialize)] pub enum Field { Length, - Symbolic(Identifier), + Symbolic(FieldSymbolic), } impl Field { pub fn is_length(&self) -> bool { @@ -1033,6 +1033,15 @@ impl Field { } } +#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)] +pub struct FieldSymbolic { + // Phase 1: Parser + pub(crate) identifier: Identifier, + // Phase 3: Typing + pub(crate) definition: Option, + pub(crate) field_idx: usize, +} + #[derive(Debug, Clone, Copy, serde::Serialize, serde::Deserialize)] pub enum Scope { Definition(DefinitionId),