From 77055b80e79d82a61f6be53d35b8f35c45a273a5 Mon Sep 17 00:00:00 2001 From: elkowar <5300871+elkowar@users.noreply.github.com> Date: Sat, 21 Aug 2021 16:59:59 +0200 Subject: [PATCH] fix(diag): Add span to default values of custom widgets --- crates/eww/src/widgets/widget_node.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/eww/src/widgets/widget_node.rs b/crates/eww/src/widgets/widget_node.rs index d76484b..d4acd71 100644 --- a/crates/eww/src/widgets/widget_node.rs +++ b/crates/eww/src/widgets/widget_node.rs @@ -2,7 +2,7 @@ use crate::eww_state::EwwState; use anyhow::*; use dyn_clone; use eww_shared_util::{AttrName, Span, Spanned, VarName}; -use simplexpr::{dynval::DynVal, SimplExpr}; +use simplexpr::SimplExpr; use std::collections::HashMap; use yuck::{ config::{validate::ValidationError, widget_definition::WidgetDefinition, widget_use::WidgetUse}, @@ -123,10 +123,11 @@ pub fn generate_generic_widget_node( .map(|(name, value)| Ok((VarName(name.0), value.value.as_simplexpr()?.resolve_one_level(local_env)))) .collect::>>()?; + // handle default value for optional arguments for expected in def.expected_args.iter().filter(|x| x.optional) { let var_name = VarName(expected.name.clone().0); if !new_local_env.contains_key(&var_name) { - new_local_env.insert(var_name, SimplExpr::Literal(DynVal::from(String::new()))); + new_local_env.insert(var_name, SimplExpr::literal(expected.span, String::new())); } }