diff --git a/R/backport_linter.R b/R/backport_linter.R index 2050e1f115..c3e1ea0344 100644 --- a/R/backport_linter.R +++ b/R/backport_linter.R @@ -44,8 +44,9 @@ backport_linter <- function(r_version = getRversion(), except = character()) { backport_blacklist <- lapply(backport_blacklist, setdiff, except) backport_index <- rep(names(backport_blacklist), times = lengths(backport_blacklist)) names(backport_index) <- unlist(backport_blacklist) + backport_cond <- xp_text_in_table(names(backport_index)) - names_xpath <- "//SYMBOL | //SYMBOL_FUNCTION_CALL" + names_xpath <- glue("//SYMBOL[{backport_cond}] | //SYMBOL_FUNCTION_CALL[{backport_cond}]") Linter(linter_level = "expression", function(source_expression) { xml <- source_expression$xml_parsed_content @@ -55,19 +56,18 @@ backport_linter <- function(r_version = getRversion(), except = character()) { all_names <- xml_text(all_names_nodes) bad_versions <- unname(backport_index[all_names]) - needs_backport <- !is.na(bad_versions) lint_message <- sprintf( paste( "%s (R %s) is not available for dependency R >= %s.", "Use the `except` argument of `backport_linter()` to configure available backports." ), - all_names[needs_backport], - bad_versions[needs_backport], + all_names, + bad_versions, r_version ) xml_nodes_to_lints( - all_names_nodes[needs_backport], + all_names_nodes, source_expression = source_expression, lint_message = lint_message, type = "warning"