diff --git a/src/protocol/ast.rs b/src/protocol/ast.rs index 61bb609a30e47f16729f36900525d3e3745007f0..e137985fa110c6e2cea9a0f83be7cedf79aef88d 100644 --- a/src/protocol/ast.rs +++ b/src/protocol/ast.rs @@ -807,7 +807,7 @@ pub struct Variable { pub unique_id_in_scope: i32, // Temporary fix until proper bytecode/asm is generated } -#[derive(Debug, Clone)] +#[derive(Debug)] pub enum Definition { Struct(StructDefinition), Enum(EnumDefinition), @@ -1018,6 +1018,7 @@ pub enum ProcedureKind { /// Monomorphed instantiation of a procedure (or the sole instantiation of a /// non-polymorphic procedure). +#[derive(Debug)] pub struct ProcedureDefinitionMonomorph { pub argument_types: Vec, pub expr_info: Vec @@ -1032,6 +1033,7 @@ impl ProcedureDefinitionMonomorph { } } +#[derive(Debug, Clone, Copy)] pub struct ExpressionInfo { pub type_id: TypeId, pub variant: ExpressionInfoVariant, @@ -1046,7 +1048,7 @@ impl ExpressionInfo { } } -#[derive(Clone, Copy)] +#[derive(Debug, Clone, Copy)] pub enum ExpressionInfoVariant { Generic, Procedure(TypeId, u32), // procedure TypeID and its monomorph index @@ -1073,7 +1075,7 @@ impl ExpressionInfoVariant { /// components. // Note that we will have function definitions for builtin functions as well. In // that case the span, the identifier span and the body are all invalid. -#[derive(Debug, Clone)] +#[derive(Debug)] pub struct ProcedureDefinition { pub this: ProcedureDefinitionId, pub defined_in: RootId, @@ -1090,8 +1092,6 @@ pub struct ProcedureDefinition { pub body: BlockStatementId, // Monomorphization of typed procedures pub monomorphs: Vec, - // Validation/linking - pub num_expressions_in_body: i32, } impl ProcedureDefinition { @@ -1109,7 +1109,6 @@ impl ProcedureDefinition { scope: ScopeId::new_invalid(), body: BlockStatementId::new_invalid(), monomorphs: Vec::new(), - num_expressions_in_body: -1, } } }