From 207a08d112fabc678afd90fe2a8e1cdaefc3e0df Mon Sep 17 00:00:00 2001 From: Jeremy Wall Date: Sun, 13 Jan 2019 22:25:26 -0600 Subject: [PATCH] FEATURE: Better rendering of Val's to text. --- src/build/ir.rs | 25 +++++++++++++------------ src/build/test.rs | 2 +- std/testing.ucg | 8 ++++---- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/build/ir.rs b/src/build/ir.rs index 54a3584..65b9174 100644 --- a/src/build/ir.rs +++ b/src/build/ir.rs @@ -186,33 +186,34 @@ impl Val { impl Display for Val { fn fmt(&self, f: &mut Formatter) -> fmt::Result { match self { - &Val::Boolean(b) => write!(f, "Boolean({})", b), - &Val::Empty => write!(f, "EmptyValue"), - &Val::Float(ref ff) => write!(f, "Float({})", ff), - &Val::Int(ref i) => write!(f, "Int({})", i), - &Val::Str(ref s) => write!(f, "String({})", s), + &Val::Boolean(b) => write!(f, "{}", b), + &Val::Empty => write!(f, "NULL"), + &Val::Float(ref ff) => write!(f, "{}", ff), + &Val::Int(ref i) => write!(f, "{}", i), + // TODO(jwall): Escape quotes in the string. + &Val::Str(ref s) => write!(f, "\"{}\"", s), &Val::List(ref def) => { - write!(f, "[\n")?; + write!(f, "[")?; for v in def.iter() { - write!(f, "\t{},\n", v)?; + write!(f, "{}, ", v)?; } write!(f, "]") } &Val::Macro(_) => write!(f, "Macro(..)"), &Val::Module(_) => write!(f, "Module{{..}}"), &Val::Tuple(ref def) => { - write!(f, "Tuple(\n")?; + write!(f, "{{\n")?; for v in def.iter() { write!(f, "\t{} = {},\n", v.0.val, v.1)?; } - write!(f, ")") + write!(f, "}}") } &Val::Env(ref def) => { - write!(f, "Env(\n")?; + write!(f, "{{\n")?; for v in def.iter() { write!(f, "\t{}=\"{}\"\n", v.0, v.1)?; } - write!(f, ")") + write!(f, "}}") } } } @@ -226,7 +227,7 @@ impl From for String { Val::Str(ref s) => s.to_string(), Val::Boolean(ref b) => format!("{}", b), Val::Empty => "NULL".to_string(), - val => format!("<{}>", val), + val => format!("{}", val), } } } diff --git a/src/build/test.rs b/src/build/test.rs index af32496..b7f41bd 100644 --- a/src/build/test.rs +++ b/src/build/test.rs @@ -171,7 +171,7 @@ fn test_expr_copy_no_such_tuple() { } #[test] -#[should_panic(expected = "Expected Tuple or Module got Int(1)")] +#[should_panic(expected = "Expected Tuple or Module got 1")] fn test_expr_copy_not_a_tuple() { let i_paths = Vec::new(); let cache = Rc::new(RefCell::new(MemoryCache::new())); diff --git a/std/testing.ucg b/std/testing.ucg index 3c69b79..7c6208b 100644 --- a/std/testing.ucg +++ b/std/testing.ucg @@ -42,11 +42,11 @@ let asserts = module{ left=NULL, // right value for deep equal comparison. right=NULL, - desc=NULL, + desc="", } => { let ok = mod.left == mod.right; - let desc = select (mod.desc == NULL), "@ == @" % (mod.left, mod.right), { + let desc = select (mod.desc == ""), "@ == @" % (mod.left, mod.right), { false = mod.desc, }; }; @@ -57,11 +57,11 @@ let asserts = module{ left=NULL, // right value for deep equal comparison. right=NULL, - desc=NULL, + desc="", } => { let ok = mod.left != mod.right; - let desc = select (mod.desc == NULL), "@ != @" % (mod.left, mod.right), { + let desc = select (mod.desc == ""), "@ != @" % (mod.left, mod.right), { false = mod.desc, }; };