diff --git a/src/cfengine_cli/lint.py b/src/cfengine_cli/lint.py index 72e1e5a..4b9c052 100644 --- a/src/cfengine_cli/lint.py +++ b/src/cfengine_cli/lint.py @@ -679,6 +679,9 @@ def _lint_calling_identifier( """ assert node.type == "calling_identifier" name = _text(node) + if name.startswith("$"): + # Variable expansion so no point in checking if it's defined + return qualified_name = _qualify(name, state.namespace) is_bundle = qualified_name in state.bundles is_body = qualified_name in state.bodies diff --git a/tests/lint/020_bundle_name_expansion.cf b/tests/lint/020_bundle_name_expansion.cf new file mode 100644 index 0000000..9c5dcee --- /dev/null +++ b/tests/lint/020_bundle_name_expansion.cf @@ -0,0 +1,15 @@ +bundle agent my_bundle_name(arg) +{ + reports: + "$(arg)"; +} + +bundle agent main +{ + vars: + "handlers" slist => { "my_bundle_name" }; + "args" slist => { "foo" }; + + methods: + "" usebundle => $(handlers)(@(args)); +}