diff --git a/crates/nu-protocol/src/value/mod.rs b/crates/nu-protocol/src/value/mod.rs index 07c45015d8..6f612b603b 100644 --- a/crates/nu-protocol/src/value/mod.rs +++ b/crates/nu-protocol/src/value/mod.rs @@ -565,18 +565,21 @@ impl Value { ) } Value::String { val, .. } => val.to_string(), - Value::List { ref vals, .. } => match &vals[..] { - [Value::Record { .. }, _end @ ..] => format!( - "[table {} row{}]", - vals.len(), - if vals.len() == 1 { "" } else { "s" } - ), - _ => format!( - "[list {} item{}]", - vals.len(), - if vals.len() == 1 { "" } else { "s" } - ), - }, + Value::List { ref vals, .. } => { + if !vals.is_empty() && vals.iter().all(|x| matches!(x, Value::Record { .. })) { + format!( + "[table {} row{}]", + vals.len(), + if vals.len() == 1 { "" } else { "s" } + ) + } else { + format!( + "[list {} item{}]", + vals.len(), + if vals.len() == 1 { "" } else { "s" } + ) + } + } Value::Record { cols, .. } => format!( "{{record {} field{}}}", cols.len(),