diff --git a/src/config_files.rs b/src/config_files.rs index be8632b6c2..3793e4e570 100644 --- a/src/config_files.rs +++ b/src/config_files.rs @@ -4,7 +4,7 @@ use nu_cli::read_plugin_file; use nu_cli::{eval_config_contents, eval_source}; use nu_path::canonicalize_with; use nu_protocol::engine::{EngineState, Stack, StateWorkingSet}; -use nu_protocol::report_error; +use nu_protocol::{report_error, Span}; use nu_protocol::{ParseError, PipelineData, Spanned}; use nu_utils::{get_default_config, get_default_env}; use std::fs::File; @@ -207,8 +207,13 @@ pub(crate) fn setup_config( // Give a warning if we see `$config` for a few releases { let working_set = StateWorkingSet::new(engine_state); - if working_set.find_variable(b"$config").is_some() { - println!("warning: use `let-env config = ...` instead of `let config = ...`"); + if let Some(var) = working_set + .find_variable(b"$config") + .and_then(|id| stack.get_var(id, Span::unknown()).ok()) + { + if var.as_record().is_ok() { + println!("warning: use `let-env config = ...` instead of `let config = ...`"); + } } } }