From 83ac6dd4d498f9cb0dce5c7f44e4bd0fd52a4da2 Mon Sep 17 00:00:00 2001 From: bjorn3 Date: Sat, 29 Jun 2019 16:23:07 +0200 Subject: [PATCH] [meta] Add some Debug derives --- cranelift/codegen/meta/src/cdsl/ast.rs | 2 ++ cranelift/codegen/meta/src/cdsl/instructions.rs | 4 +++- cranelift/codegen/meta/src/cdsl/type_inference.rs | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/cranelift/codegen/meta/src/cdsl/ast.rs b/cranelift/codegen/meta/src/cdsl/ast.rs index 141ffd84c2..798ee29d00 100644 --- a/cranelift/codegen/meta/src/cdsl/ast.rs +++ b/cranelift/codegen/meta/src/cdsl/ast.rs @@ -8,6 +8,7 @@ use cranelift_entity::{entity_impl, PrimaryMap}; use std::fmt; +#[derive(Debug)] pub enum Expr { Var(VarIndex), Literal(Literal), @@ -363,6 +364,7 @@ impl VarPool { /// /// An `Apply` AST expression is created by using function call syntax on instructions. This /// applies to both bound and unbound polymorphic instructions. +#[derive(Debug)] pub struct Apply { pub inst: Instruction, pub args: Vec, diff --git a/cranelift/codegen/meta/src/cdsl/instructions.rs b/cranelift/codegen/meta/src/cdsl/instructions.rs index 1689f2a5c0..5f91771797 100644 --- a/cranelift/codegen/meta/src/cdsl/instructions.rs +++ b/cranelift/codegen/meta/src/cdsl/instructions.rs @@ -79,12 +79,14 @@ impl InstructionGroup { } } +#[derive(Debug)] pub struct PolymorphicInfo { pub use_typevar_operand: bool, pub ctrl_typevar: TypeVar, pub other_typevars: Vec, } +#[derive(Debug)] pub struct InstructionContent { /// Instruction mnemonic, also becomes opcode name. pub name: String, @@ -139,7 +141,7 @@ pub struct InstructionContent { pub writes_cpu_flags: bool, } -#[derive(Clone)] +#[derive(Clone, Debug)] pub struct Instruction { content: Rc, } diff --git a/cranelift/codegen/meta/src/cdsl/type_inference.rs b/cranelift/codegen/meta/src/cdsl/type_inference.rs index 101cfa4104..a56d81463c 100644 --- a/cranelift/codegen/meta/src/cdsl/type_inference.rs +++ b/cranelift/codegen/meta/src/cdsl/type_inference.rs @@ -4,7 +4,7 @@ use crate::cdsl::typevar::{DerivedFunc, TypeSet, TypeVar}; use std::collections::{HashMap, HashSet}; use std::iter::FromIterator; -#[derive(Hash, PartialEq, Eq)] +#[derive(Debug, Hash, PartialEq, Eq)] pub enum Constraint { /// Constraint specifying that a type var tv1 must be wider than or equal to type var tv2 at /// runtime. This requires that: