Running 'testthat.R' [15s]
Running the tests in 'tests/testthat.R' failed.
Complete output:
  > library(testthat)
  > library(rmonad)
  > 
  > test_check("rmonad")
  -- 1. Error: %*>% preserves keyword arguments (@test-binops.R#94)  -------------
  undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_subset_regex, stri_timezone_get, stri_timezone_info, stri_timezone_list, stri_timezone_set, stri_trans_char, stri_trans_general, stri_trans_isnfc, stri_trans_isnfd, stri_trans_isnfkc, stri_trans_isnfkc_casefold, stri_trans_isnfkd, stri_trans_list, stri_trans_nfc, stri_trans_nfd, stri_trans_nfkc, stri_trans_nfkc_casefold, stri_trans_nfkd, stri_trans_tolower, stri_trans_totitle, stri_trans_toupper, stri_trim, stri_trim_both, stri_trim_left, stri_trim_right, stri_unescape_unicode, stri_unique, stri_width, stri_wrap, stri_write_lines
  1: expect_equal(5 %>>% funnel(y = 1, z = 2) %*>% {
         . + y + z
     } %>% esc, 8) at testthat/test-binops.R:94
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: 5 %>>% funnel(y = 1, z = 2) %*>% {
         . + y + z
     } %>% esc
  5: eval(lhs, parent, parent)
  6: eval(lhs, parent, parent)
  7: 5 %>>% funnel(y = 1, z = 2) %*>% {
         . + y + z
     }
  8: eval(as.call(cmd), envir = envir)
  9: eval(as.call(cmd), envir = envir)
  10: (function (x, f, entry_lhs_transform = entry_lhs_transform_default, bind_if = function(m) .single_OK(m), 
         bind_else = default_bind_else, emit = emit_default, m_on_bind = function(x, ...) {
             x
         }, io_combine = default_combine, bind_args = function(m) list(.single_value(m, 
             warn = FALSE)), parent_ids = function(m) list(.get_ids(m)[.single_id(m)]), 
         expect_rhs_function = TRUE, envir = parent.frame()) 
     {
         fdecon <- extract_metadata(substitute(f), env = envir, skip_name = !expect_rhs_function)
         rhs_str <- deparse(fdecon$expr)
         rhs_doc <- fdecon$docstring
         rhs_met_raw <- fdecon$metadata
         rhs_enclos <- fdecon$enclos
         xdecon <- extract_metadata(substitute(x), env = envir)
         lhs_str <- deparse(xdecon$expr)
         lhs_doc <- xdecon$docstring
         lhs_met_raw <- xdecon$metadata
         lhs_enclos <- xdecon$enclos
         m <- entry_lhs_transform(x, f, desc = lhs_str)
         if (!has_doc(m, index = m@head)) {
             .single_doc(m) <- lhs_doc
         }
         if (!has_meta(m, index = m@head)) {
             .single_meta(m) <- eval(lhs_met_raw, envir = lhs_enclos)
         }
         o <- if (bind_if(m)) {
             fs <- fdecon$expr
             fl <- as.list(fs)
             bound_args <- bind_args(m)
             final_args <- bound_args
             if (fl[[1]] == "::" && length(fl) == 3) {
                 new_function <- f
             }
             else if (fl[[1]] == "{") {
                 keys <- names(final_args)
                 if (is.null(keys)) {
                     keys <- rep("", length(final_args))
                 }
                 if (keys[1] == "") {
                     keys[1] <- "."
                 }
                 if (any(keys == "")) {
                     msg <- "Error in %s: Arguments to an anonymous function must be named"
                     stop(msg)
                 }
                 names(final_args) <- keys
                 new_function <- pryr::make_function(.as_positional_formals(names(final_args)), 
                     fs, env = envir)
                 rhs_str <- deparse(new_function)
             }
             else if (fl[[1]] == "function") {
                 stop("Anonymous functions must be parenthesized", call. = FALSE)
             }
             else if (fl[[1]] == "(" && fl[[2]][[1]] == "function") {
                 new_function <- eval(fl[[2]], envir = envir)
             }
             else {
                 new_function <- eval(fl[[1]], envir = envir)
                 final_args <- append(bound_args, fl[-1])
             }
             o <- .eval(m = m, func = new_function, args = final_args, env = envir, code = rhs_str)
             m <- m_on_bind(m)
             o <- io_combine(m = m, o = o, f = new_function, margs = parent_ids(m))
             rhs_met <- eval_function_metadata(f = new_function, args = final_args, meta_expr = rhs_met_raw, 
                 env = envir, enclos = rhs_enclos)
             apply_rewriters(o, rhs_met)
         }
         else {
             rhs_met <- eval(rhs_met_raw, envir = envir, enclos = rhs_enclos)
             bind_else(m, f)
         }
         if (!is.null(o)) {
             .single_doc(o) <- rhs_doc
             .single_meta(o) <- rhs_met
             .single_code(o) <- rhs_str
         }
         result <- emit(m, o)
         .single_mem(result) <- as.integer(object.size(.single_value(result, warn = FALSE)))
         result
     })(5 %>>% funnel(y = 1, z = 2), {
         . + y + z
     }, bind_args = function (m, warn = TRUE, ...) 
     {
         .get_single_attribute(m, attribute = "value", ...)@get(warn = warn)
     }, parent_ids = function (m) 
     {
         pnames <- names(.single_value(m))
         pids <- lapply(.single_parents(m), function(i) .get_ids(m, index = i))
         names(pids) <- pnames
         pids
     }, entry_lhs_transform = function (m, f, ...) 
     {
         as_monad(m, lossy = TRUE, ...)
     })
  11: pryr::make_function
  12: getExportedValue(pkg, name)
  13: asNamespace(ns)
  14: getNamespace(ns)
  15: tryCatch(loadNamespace(name), error = function(e) stop(e))
  16: tryCatchList(expr, classes, parentenv, handlers)
  17: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  18: value[[3L]](cond)
  
  -- 2. Error: %*>% evaluates lists in variables (@test-binops.R#108)  -----------
  in "1:6 %>>% {":
    undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_subset_regex, stri_timezone_get, stri_timezone_info, stri_timezone_list, stri_timezone_set, stri_trans_char, stri_trans_general, stri_trans_isnfc, stri_trans_isnfd, stri_trans_isnfkc, stri_trans_isnfkc_casefold, stri_trans_isnfkd, stri_trans_list, stri_trans_nfc, stri_trans_nfd, stri_trans_nfkc, stri_trans_nfkc_casefold, stri_trans_nfkd, stri_trans_tolower, stri_trans_totitle, stri_trans_toupper, stri_trim, stri_trim_both, stri_trim_left, stri_trim_right, stri_unescape_unicode, stri_unique, stri_width, stri_wrap, stri_write_linesin "    list(a = min(.), b = max(.))":
    undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_s
  1: expect_equal(1:6 %>>% {
         list(a = min(.), b = max(.))
     } %*>% sum %>% esc, 7) at testthat/test-binops.R:108
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: 1:6 %>>% {
         list(a = min(.), b = max(.))
     } %*>% sum %>% esc
  5: withVisible(eval(quote(`_fseq`(`_lhs`)), env, env))
  6: eval(quote(`_fseq`(`_lhs`)), env, env)
  7: eval(quote(`_fseq`(`_lhs`)), env, env)
  8: `_fseq`(`_lhs`)
  9: freduce(value, `_function_list`)
  10: withVisible(function_list[[k]](value))
  11: function_list[[k]](value)
  12: esc(.)
  13: fe(.single_code(m), .single_error(m))
  14: stop(paste0("in \"", code, "\":\n  ", msg), call. = FALSE)
  
  -- 3. Error: anonymous expressions can be run (@test-binops.R#112)  ------------
  undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_subset_regex, stri_timezone_get, stri_timezone_info, stri_timezone_list, stri_timezone_set, stri_trans_char, stri_trans_general, stri_trans_isnfc, stri_trans_isnfd, stri_trans_isnfkc, stri_trans_isnfkc_casefold, stri_trans_isnfkd, stri_trans_list, stri_trans_nfc, stri_trans_nfd, stri_trans_nfkc, stri_trans_nfkc_casefold, stri_trans_nfkd, stri_trans_tolower, stri_trans_totitle, stri_trans_toupper, stri_trim, stri_trim_both, stri_trim_left, stri_trim_right, stri_unescape_unicode, stri_unique, stri_width, stri_wrap, stri_write_lines
  1: expect_equal(1:10 %>>% {
         4
     } %>% esc, 4) at testthat/test-binops.R:112
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: 1:10 %>>% {
         4
     } %>% esc
  5: eval(lhs, parent, parent)
  6: eval(lhs, parent, parent)
  7: 1:10 %>>% {
         4
     }
  8: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  9: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  10: (function (x, f, entry_lhs_transform = entry_lhs_transform_default, bind_if = function(m) .single_OK(m), 
         bind_else = default_bind_else, emit = emit_default, m_on_bind = function(x, ...) {
             x
         }, io_combine = default_combine, bind_args = function(m) list(.single_value(m, 
             warn = FALSE)), parent_ids = function(m) list(.get_ids(m)[.single_id(m)]), 
         expect_rhs_function = TRUE, envir = parent.frame()) 
     {
         fdecon <- extract_metadata(substitute(f), env = envir, skip_name = !expect_rhs_function)
         rhs_str <- deparse(fdecon$expr)
         rhs_doc <- fdecon$docstring
         rhs_met_raw <- fdecon$metadata
         rhs_enclos <- fdecon$enclos
         xdecon <- extract_metadata(substitute(x), env = envir)
         lhs_str <- deparse(xdecon$expr)
         lhs_doc <- xdecon$docstring
         lhs_met_raw <- xdecon$metadata
         lhs_enclos <- xdecon$enclos
         m <- entry_lhs_transform(x, f, desc = lhs_str)
         if (!has_doc(m, index = m@head)) {
             .single_doc(m) <- lhs_doc
         }
         if (!has_meta(m, index = m@head)) {
             .single_meta(m) <- eval(lhs_met_raw, envir = lhs_enclos)
         }
         o <- if (bind_if(m)) {
             fs <- fdecon$expr
             fl <- as.list(fs)
             bound_args <- bind_args(m)
             final_args <- bound_args
             if (fl[[1]] == "::" && length(fl) == 3) {
                 new_function <- f
             }
             else if (fl[[1]] == "{") {
                 keys <- names(final_args)
                 if (is.null(keys)) {
                     keys <- rep("", length(final_args))
                 }
                 if (keys[1] == "") {
                     keys[1] <- "."
                 }
                 if (any(keys == "")) {
                     msg <- "Error in %s: Arguments to an anonymous function must be named"
                     stop(msg)
                 }
                 names(final_args) <- keys
                 new_function <- pryr::make_function(.as_positional_formals(names(final_args)), 
                     fs, env = envir)
                 rhs_str <- deparse(new_function)
             }
             else if (fl[[1]] == "function") {
                 stop("Anonymous functions must be parenthesized", call. = FALSE)
             }
             else if (fl[[1]] == "(" && fl[[2]][[1]] == "function") {
                 new_function <- eval(fl[[2]], envir = envir)
             }
             else {
                 new_function <- eval(fl[[1]], envir = envir)
                 final_args <- append(bound_args, fl[-1])
             }
             o <- .eval(m = m, func = new_function, args = final_args, env = envir, code = rhs_str)
             m <- m_on_bind(m)
             o <- io_combine(m = m, o = o, f = new_function, margs = parent_ids(m))
             rhs_met <- eval_function_metadata(f = new_function, args = final_args, meta_expr = rhs_met_raw, 
                 env = envir, enclos = rhs_enclos)
             apply_rewriters(o, rhs_met)
         }
         else {
             rhs_met <- eval(rhs_met_raw, envir = envir, enclos = rhs_enclos)
             bind_else(m, f)
         }
         if (!is.null(o)) {
             .single_doc(o) <- rhs_doc
             .single_meta(o) <- rhs_met
             .single_code(o) <- rhs_str
         }
         result <- emit(m, o)
         .single_mem(result) <- as.integer(object.size(.single_value(result, warn = FALSE)))
         result
     })(1:10, {
         4
     })
  11: pryr::make_function
  12: getExportedValue(pkg, name)
  13: asNamespace(ns)
  14: getNamespace(ns)
  15: tryCatch(loadNamespace(name), error = function(e) stop(e))
  16: tryCatchList(expr, classes, parentenv, handlers)
  17: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  18: value[[3L]](cond)
  
  -- 4. Error: dot substitution is performed in anonymous expressions (@test-binop
  undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_subset_regex, stri_timezone_get, stri_timezone_info, stri_timezone_list, stri_timezone_set, stri_trans_char, stri_trans_general, stri_trans_isnfc, stri_trans_isnfd, stri_trans_isnfkc, stri_trans_isnfkc_casefold, stri_trans_isnfkd, stri_trans_list, stri_trans_nfc, stri_trans_nfd, stri_trans_nfkc, stri_trans_nfkc_casefold, stri_trans_nfkd, stri_trans_tolower, stri_trans_totitle, stri_trans_toupper, stri_trim, stri_trim_both, stri_trim_left, stri_trim_right, stri_unescape_unicode, stri_unique, stri_width, stri_wrap, stri_write_lines
  1: expect_equal(1:10 %>>% {
         . * 2
     } %>% esc, (1:10) * 2) at testthat/test-binops.R:117
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: 1:10 %>>% {
         . * 2
     } %>% esc
  5: eval(lhs, parent, parent)
  6: eval(lhs, parent, parent)
  7: 1:10 %>>% {
         . * 2
     }
  8: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  9: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  10: (function (x, f, entry_lhs_transform = entry_lhs_transform_default, bind_if = function(m) .single_OK(m), 
         bind_else = default_bind_else, emit = emit_default, m_on_bind = function(x, ...) {
             x
         }, io_combine = default_combine, bind_args = function(m) list(.single_value(m, 
             warn = FALSE)), parent_ids = function(m) list(.get_ids(m)[.single_id(m)]), 
         expect_rhs_function = TRUE, envir = parent.frame()) 
     {
         fdecon <- extract_metadata(substitute(f), env = envir, skip_name = !expect_rhs_function)
         rhs_str <- deparse(fdecon$expr)
         rhs_doc <- fdecon$docstring
         rhs_met_raw <- fdecon$metadata
         rhs_enclos <- fdecon$enclos
         xdecon <- extract_metadata(substitute(x), env = envir)
         lhs_str <- deparse(xdecon$expr)
         lhs_doc <- xdecon$docstring
         lhs_met_raw <- xdecon$metadata
         lhs_enclos <- xdecon$enclos
         m <- entry_lhs_transform(x, f, desc = lhs_str)
         if (!has_doc(m, index = m@head)) {
             .single_doc(m) <- lhs_doc
         }
         if (!has_meta(m, index = m@head)) {
             .single_meta(m) <- eval(lhs_met_raw, envir = lhs_enclos)
         }
         o <- if (bind_if(m)) {
             fs <- fdecon$expr
             fl <- as.list(fs)
             bound_args <- bind_args(m)
             final_args <- bound_args
             if (fl[[1]] == "::" && length(fl) == 3) {
                 new_function <- f
             }
             else if (fl[[1]] == "{") {
                 keys <- names(final_args)
                 if (is.null(keys)) {
                     keys <- rep("", length(final_args))
                 }
                 if (keys[1] == "") {
                     keys[1] <- "."
                 }
                 if (any(keys == "")) {
                     msg <- "Error in %s: Arguments to an anonymous function must be named"
                     stop(msg)
                 }
                 names(final_args) <- keys
                 new_function <- pryr::make_function(.as_positional_formals(names(final_args)), 
                     fs, env = envir)
                 rhs_str <- deparse(new_function)
             }
             else if (fl[[1]] == "function") {
                 stop("Anonymous functions must be parenthesized", call. = FALSE)
             }
             else if (fl[[1]] == "(" && fl[[2]][[1]] == "function") {
                 new_function <- eval(fl[[2]], envir = envir)
             }
             else {
                 new_function <- eval(fl[[1]], envir = envir)
                 final_args <- append(bound_args, fl[-1])
             }
             o <- .eval(m = m, func = new_function, args = final_args, env = envir, code = rhs_str)
             m <- m_on_bind(m)
             o <- io_combine(m = m, o = o, f = new_function, margs = parent_ids(m))
             rhs_met <- eval_function_metadata(f = new_function, args = final_args, meta_expr = rhs_met_raw, 
                 env = envir, enclos = rhs_enclos)
             apply_rewriters(o, rhs_met)
         }
         else {
             rhs_met <- eval(rhs_met_raw, envir = envir, enclos = rhs_enclos)
             bind_else(m, f)
         }
         if (!is.null(o)) {
             .single_doc(o) <- rhs_doc
             .single_meta(o) <- rhs_met
             .single_code(o) <- rhs_str
         }
         result <- emit(m, o)
         .single_mem(result) <- as.integer(object.size(.single_value(result, warn = FALSE)))
         result
     })(1:10, {
         . * 2
     })
  11: pryr::make_function
  12: getExportedValue(pkg, name)
  13: asNamespace(ns)
  14: getNamespace(ns)
  15: tryCatch(loadNamespace(name), error = function(e) stop(e))
  16: tryCatchList(expr, classes, parentenv, handlers)
  17: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  18: value[[3L]](cond)
  
  -- 5. Error: New rmonad dont overwrite old ones (not an issue without R6) (@test
  undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_subset_regex, stri_timezone_get, stri_timezone_info, stri_timezone_list, stri_timezone_set, stri_trans_char, stri_trans_general, stri_trans_isnfc, stri_trans_isnfd, stri_trans_isnfkc, stri_trans_isnfkc_casefold, stri_trans_isnfkd, stri_trans_list, stri_trans_nfc, stri_trans_nfd, stri_trans_nfkc, stri_trans_nfkc_casefold, stri_trans_nfkd, stri_trans_tolower, stri_trans_totitle, stri_trans_toupper, stri_trim, stri_trim_both, stri_trim_left, stri_trim_right, stri_unescape_unicode, stri_unique, stri_width, stri_wrap, stri_write_lines
  1: expect_equal({
         foo_ <- as_monad({
             "yolo"
             64
         })
         foo_ %>>% {
             "ggg"
             sqrt(.)
         }
         foo_ %>>% {
             "hhh"
             sqrt(.)
         } %>% esc
     }, 8) at testthat/test-branch.R:36
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: foo_ %>>% {
         "ggg"
         sqrt(.)
     } at testthat/test-branch.R:39
  5: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  6: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  7: (function (x, f, entry_lhs_transform = entry_lhs_transform_default, bind_if = function(m) .single_OK(m), 
         bind_else = default_bind_else, emit = emit_default, m_on_bind = function(x, ...) {
             x
         }, io_combine = default_combine, bind_args = function(m) list(.single_value(m, 
             warn = FALSE)), parent_ids = function(m) list(.get_ids(m)[.single_id(m)]), 
         expect_rhs_function = TRUE, envir = parent.frame()) 
     {
         fdecon <- extract_metadata(substitute(f), env = envir, skip_name = !expect_rhs_function)
         rhs_str <- deparse(fdecon$expr)
         rhs_doc <- fdecon$docstring
         rhs_met_raw <- fdecon$metadata
         rhs_enclos <- fdecon$enclos
         xdecon <- extract_metadata(substitute(x), env = envir)
         lhs_str <- deparse(xdecon$expr)
         lhs_doc <- xdecon$docstring
         lhs_met_raw <- xdecon$metadata
         lhs_enclos <- xdecon$enclos
         m <- entry_lhs_transform(x, f, desc = lhs_str)
         if (!has_doc(m, index = m@head)) {
             .single_doc(m) <- lhs_doc
         }
         if (!has_meta(m, index = m@head)) {
             .single_meta(m) <- eval(lhs_met_raw, envir = lhs_enclos)
         }
         o <- if (bind_if(m)) {
             fs <- fdecon$expr
             fl <- as.list(fs)
             bound_args <- bind_args(m)
             final_args <- bound_args
             if (fl[[1]] == "::" && length(fl) == 3) {
                 new_function <- f
             }
             else if (fl[[1]] == "{") {
                 keys <- names(final_args)
                 if (is.null(keys)) {
                     keys <- rep("", length(final_args))
                 }
                 if (keys[1] == "") {
                     keys[1] <- "."
                 }
                 if (any(keys == "")) {
                     msg <- "Error in %s: Arguments to an anonymous function must be named"
                     stop(msg)
                 }
                 names(final_args) <- keys
                 new_function <- pryr::make_function(.as_positional_formals(names(final_args)), 
                     fs, env = envir)
                 rhs_str <- deparse(new_function)
             }
             else if (fl[[1]] == "function") {
                 stop("Anonymous functions must be parenthesized", call. = FALSE)
             }
             else if (fl[[1]] == "(" && fl[[2]][[1]] == "function") {
                 new_function <- eval(fl[[2]], envir = envir)
             }
             else {
                 new_function <- eval(fl[[1]], envir = envir)
                 final_args <- append(bound_args, fl[-1])
             }
             o <- .eval(m = m, func = new_function, args = final_args, env = envir, code = rhs_str)
             m <- m_on_bind(m)
             o <- io_combine(m = m, o = o, f = new_function, margs = parent_ids(m))
             rhs_met <- eval_function_metadata(f = new_function, args = final_args, meta_expr = rhs_met_raw, 
                 env = envir, enclos = rhs_enclos)
             apply_rewriters(o, rhs_met)
         }
         else {
             rhs_met <- eval(rhs_met_raw, envir = envir, enclos = rhs_enclos)
             bind_else(m, f)
         }
         if (!is.null(o)) {
             .single_doc(o) <- rhs_doc
             .single_meta(o) <- rhs_met
             .single_code(o) <- rhs_str
         }
         result <- emit(m, o)
         .single_mem(result) <- as.integer(object.size(.single_value(result, warn = FALSE)))
         result
     })(foo_, {
         "ggg"
         sqrt(.)
     })
  8: pryr::make_function
  9: getExportedValue(pkg, name)
  10: asNamespace(ns)
  11: getNamespace(ns)
  12: tryCatch(loadNamespace(name), error = function(e) stop(e))
  13: tryCatchList(expr, classes, parentenv, handlers)
  14: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  15: value[[3L]](cond)
  
  -- 6. Failure: Branching into nests correctly makes transitive links (@test-bran
  get_value(m, warn = F) not equal to list(...).
  Length mismatch: comparison on first 1 components
  Component 1: target is NULL, current is character
  
  -- 7. Failure: Branching into nests correctly makes transitive links (@test-bran
  get_dependents(m) not equal to list(2, c(6, 7), 4, 5, integer(0), integer(0), 8, 9, integer(0)).
  Length mismatch: comparison on first 1 components
  Component 1: Numeric: lengths (0, 1) differ
  
  -- 8. Failure: Branching into nests correctly makes transitive links (@test-bran
  get_parents(m) not equal to list(integer(0), 1, 2, 3, 4, 2, 2, 7, 8).
  Length mismatch: comparison on first 1 components
  
  -- 9. Error: Blocks are expanded into functions (@test-codestr.R#47)  ----------
  undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_subset_regex, stri_timezone_get, stri_timezone_info, stri_timezone_list, stri_timezone_set, stri_trans_char, stri_trans_general, stri_trans_isnfc, stri_trans_isnfd, stri_trans_isnfkc, stri_trans_isnfkc_casefold, stri_trans_isnfkd, stri_trans_list, stri_trans_nfc, stri_trans_nfd, stri_trans_nfkc, stri_trans_nfkc_casefold, stri_trans_nfkd, stri_trans_tolower, stri_trans_totitle, stri_trans_toupper, stri_trim, stri_trim_both, stri_trim_left, stri_trim_right, stri_unescape_unicode, stri_unique, stri_width, stri_wrap, stri_write_lines
  1: expect_equal(2 %>>% {
         . * 3
     } %>% .single_code %>% paste0(collapse = " ") %>% gsub(pattern = " ", replacement = ""), 
         "function(.){.*3}") at testthat/test-codestr.R:47
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: 2 %>>% {
         . * 3
     } %>% .single_code %>% paste0(collapse = " ") %>% gsub(pattern = " ", replacement = "")
  5: eval(lhs, parent, parent)
  6: eval(lhs, parent, parent)
  7: 2 %>>% {
         . * 3
     }
  8: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  9: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  10: (function (x, f, entry_lhs_transform = entry_lhs_transform_default, bind_if = function(m) .single_OK(m), 
         bind_else = default_bind_else, emit = emit_default, m_on_bind = function(x, ...) {
             x
         }, io_combine = default_combine, bind_args = function(m) list(.single_value(m, 
             warn = FALSE)), parent_ids = function(m) list(.get_ids(m)[.single_id(m)]), 
         expect_rhs_function = TRUE, envir = parent.frame()) 
     {
         fdecon <- extract_metadata(substitute(f), env = envir, skip_name = !expect_rhs_function)
         rhs_str <- deparse(fdecon$expr)
         rhs_doc <- fdecon$docstring
         rhs_met_raw <- fdecon$metadata
         rhs_enclos <- fdecon$enclos
         xdecon <- extract_metadata(substitute(x), env = envir)
         lhs_str <- deparse(xdecon$expr)
         lhs_doc <- xdecon$docstring
         lhs_met_raw <- xdecon$metadata
         lhs_enclos <- xdecon$enclos
         m <- entry_lhs_transform(x, f, desc = lhs_str)
         if (!has_doc(m, index = m@head)) {
             .single_doc(m) <- lhs_doc
         }
         if (!has_meta(m, index = m@head)) {
             .single_meta(m) <- eval(lhs_met_raw, envir = lhs_enclos)
         }
         o <- if (bind_if(m)) {
             fs <- fdecon$expr
             fl <- as.list(fs)
             bound_args <- bind_args(m)
             final_args <- bound_args
             if (fl[[1]] == "::" && length(fl) == 3) {
                 new_function <- f
             }
             else if (fl[[1]] == "{") {
                 keys <- names(final_args)
                 if (is.null(keys)) {
                     keys <- rep("", length(final_args))
                 }
                 if (keys[1] == "") {
                     keys[1] <- "."
                 }
                 if (any(keys == "")) {
                     msg <- "Error in %s: Arguments to an anonymous function must be named"
                     stop(msg)
                 }
                 names(final_args) <- keys
                 new_function <- pryr::make_function(.as_positional_formals(names(final_args)), 
                     fs, env = envir)
                 rhs_str <- deparse(new_function)
             }
             else if (fl[[1]] == "function") {
                 stop("Anonymous functions must be parenthesized", call. = FALSE)
             }
             else if (fl[[1]] == "(" && fl[[2]][[1]] == "function") {
                 new_function <- eval(fl[[2]], envir = envir)
             }
             else {
                 new_function <- eval(fl[[1]], envir = envir)
                 final_args <- append(bound_args, fl[-1])
             }
             o <- .eval(m = m, func = new_function, args = final_args, env = envir, code = rhs_str)
             m <- m_on_bind(m)
             o <- io_combine(m = m, o = o, f = new_function, margs = parent_ids(m))
             rhs_met <- eval_function_metadata(f = new_function, args = final_args, meta_expr = rhs_met_raw, 
                 env = envir, enclos = rhs_enclos)
             apply_rewriters(o, rhs_met)
         }
         else {
             rhs_met <- eval(rhs_met_raw, envir = envir, enclos = rhs_enclos)
             bind_else(m, f)
         }
         if (!is.null(o)) {
             .single_doc(o) <- rhs_doc
             .single_meta(o) <- rhs_met
             .single_code(o) <- rhs_str
         }
         result <- emit(m, o)
         .single_mem(result) <- as.integer(object.size(.single_value(result, warn = FALSE)))
         result
     })(2, {
         . * 3
     })
  11: pryr::make_function
  12: getExportedValue(pkg, name)
  13: asNamespace(ns)
  14: getNamespace(ns)
  15: tryCatch(loadNamespace(name), error = function(e) stop(e))
  16: tryCatchList(expr, classes, parentenv, handlers)
  17: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  18: value[[3L]](cond)
  
  -- 10. Error: Blocks are built into functions in the correct environment (@test-
  undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_subset_regex, stri_timezone_get, stri_timezone_info, stri_timezone_list, stri_timezone_set, stri_trans_char, stri_trans_general, stri_trans_isnfc, stri_trans_isnfd, stri_trans_isnfkc, stri_trans_isnfkc_casefold, stri_trans_isnfkd, stri_trans_list, stri_trans_nfc, stri_trans_nfd, stri_trans_nfkc, stri_trans_nfkc_casefold, stri_trans_nfkd, stri_trans_tolower, stri_trans_totitle, stri_trans_toupper, stri_trim, stri_trim_both, stri_trim_left, stri_trim_right, stri_unescape_unicode, stri_unique, stri_width, stri_wrap, stri_write_lines
  1: expect_equal(16 %>>% {
         foo(.)
     } %>% get_value(warn = FALSE), 16 %>>% foo %>% get_value(warn = FALSE)) at testthat/test-environment.R:6
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: 16 %>>% {
         foo(.)
     } %>% get_value(warn = FALSE)
  5: eval(lhs, parent, parent)
  6: eval(lhs, parent, parent)
  7: 16 %>>% {
         foo(.)
     }
  8: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  9: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  10: (function (x, f, entry_lhs_transform = entry_lhs_transform_default, bind_if = function(m) .single_OK(m), 
         bind_else = default_bind_else, emit = emit_default, m_on_bind = function(x, ...) {
             x
         }, io_combine = default_combine, bind_args = function(m) list(.single_value(m, 
             warn = FALSE)), parent_ids = function(m) list(.get_ids(m)[.single_id(m)]), 
         expect_rhs_function = TRUE, envir = parent.frame()) 
     {
         fdecon <- extract_metadata(substitute(f), env = envir, skip_name = !expect_rhs_function)
         rhs_str <- deparse(fdecon$expr)
         rhs_doc <- fdecon$docstring
         rhs_met_raw <- fdecon$metadata
         rhs_enclos <- fdecon$enclos
         xdecon <- extract_metadata(substitute(x), env = envir)
         lhs_str <- deparse(xdecon$expr)
         lhs_doc <- xdecon$docstring
         lhs_met_raw <- xdecon$metadata
         lhs_enclos <- xdecon$enclos
         m <- entry_lhs_transform(x, f, desc = lhs_str)
         if (!has_doc(m, index = m@head)) {
             .single_doc(m) <- lhs_doc
         }
         if (!has_meta(m, index = m@head)) {
             .single_meta(m) <- eval(lhs_met_raw, envir = lhs_enclos)
         }
         o <- if (bind_if(m)) {
             fs <- fdecon$expr
             fl <- as.list(fs)
             bound_args <- bind_args(m)
             final_args <- bound_args
             if (fl[[1]] == "::" && length(fl) == 3) {
                 new_function <- f
             }
             else if (fl[[1]] == "{") {
                 keys <- names(final_args)
                 if (is.null(keys)) {
                     keys <- rep("", length(final_args))
                 }
                 if (keys[1] == "") {
                     keys[1] <- "."
                 }
                 if (any(keys == "")) {
                     msg <- "Error in %s: Arguments to an anonymous function must be named"
                     stop(msg)
                 }
                 names(final_args) <- keys
                 new_function <- pryr::make_function(.as_positional_formals(names(final_args)), 
                     fs, env = envir)
                 rhs_str <- deparse(new_function)
             }
             else if (fl[[1]] == "function") {
                 stop("Anonymous functions must be parenthesized", call. = FALSE)
             }
             else if (fl[[1]] == "(" && fl[[2]][[1]] == "function") {
                 new_function <- eval(fl[[2]], envir = envir)
             }
             else {
                 new_function <- eval(fl[[1]], envir = envir)
                 final_args <- append(bound_args, fl[-1])
             }
             o <- .eval(m = m, func = new_function, args = final_args, env = envir, code = rhs_str)
             m <- m_on_bind(m)
             o <- io_combine(m = m, o = o, f = new_function, margs = parent_ids(m))
             rhs_met <- eval_function_metadata(f = new_function, args = final_args, meta_expr = rhs_met_raw, 
                 env = envir, enclos = rhs_enclos)
             apply_rewriters(o, rhs_met)
         }
         else {
             rhs_met <- eval(rhs_met_raw, envir = envir, enclos = rhs_enclos)
             bind_else(m, f)
         }
         if (!is.null(o)) {
             .single_doc(o) <- rhs_doc
             .single_meta(o) <- rhs_met
             .single_code(o) <- rhs_str
         }
         result <- emit(m, o)
         .single_mem(result) <- as.integer(object.size(.single_value(result, warn = FALSE)))
         result
     })(16, {
         foo(.)
     })
  11: pryr::make_function
  12: getExportedValue(pkg, name)
  13: asNamespace(ns)
  14: getNamespace(ns)
  15: tryCatch(loadNamespace(name), error = function(e) stop(e))
  16: tryCatchList(expr, classes, parentenv, handlers)
  17: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  18: value[[3L]](cond)
  
  -- 11. Error: issue #3: nested errors are localized (@test-issues.R#21)  -------
  undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_subset_regex, stri_timezone_get, stri_timezone_info, stri_timezone_list, stri_timezone_set, stri_trans_char, stri_trans_general, stri_trans_isnfc, stri_trans_isnfd, stri_trans_isnfkc, stri_trans_isnfkc_casefold, stri_trans_isnfkd, stri_trans_list, stri_trans_nfc, stri_trans_nfd, stri_trans_nfkc, stri_trans_nfkc_casefold, stri_trans_nfkd, stri_trans_tolower, stri_trans_totitle, stri_trans_toupper, stri_trim, stri_trim_both, stri_trim_left, stri_trim_right, stri_unescape_unicode, stri_unique, stri_width, stri_wrap, stri_write_lines
  1: expect_equal("a" %>>% {
         "Level One"
         . %>>% paste("b") %>>% {
             "Level Two"
             . %>>% paste("c") %>>% stop
         }
     } %>% get_value(warn = FALSE), list(NULL, NULL, NULL, NULL, NULL, "a b c", "a b", 
         "a")) at testthat/test-issues.R:21
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: "a" %>>% {
         "Level One"
         . %>>% paste("b") %>>% {
             "Level Two"
             . %>>% paste("c") %>>% stop
         }
     } %>% get_value(warn = FALSE)
  5: eval(lhs, parent, parent)
  6: eval(lhs, parent, parent)
  7: "a" %>>% {
         "Level One"
         . %>>% paste("b") %>>% {
             "Level Two"
             . %>>% paste("c") %>>% stop
         }
     }
  8: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  9: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  10: (function (x, f, entry_lhs_transform = entry_lhs_transform_default, bind_if = function(m) .single_OK(m), 
         bind_else = default_bind_else, emit = emit_default, m_on_bind = function(x, ...) {
             x
         }, io_combine = default_combine, bind_args = function(m) list(.single_value(m, 
             warn = FALSE)), parent_ids = function(m) list(.get_ids(m)[.single_id(m)]), 
         expect_rhs_function = TRUE, envir = parent.frame()) 
     {
         fdecon <- extract_metadata(substitute(f), env = envir, skip_name = !expect_rhs_function)
         rhs_str <- deparse(fdecon$expr)
         rhs_doc <- fdecon$docstring
         rhs_met_raw <- fdecon$metadata
         rhs_enclos <- fdecon$enclos
         xdecon <- extract_metadata(substitute(x), env = envir)
         lhs_str <- deparse(xdecon$expr)
         lhs_doc <- xdecon$docstring
         lhs_met_raw <- xdecon$metadata
         lhs_enclos <- xdecon$enclos
         m <- entry_lhs_transform(x, f, desc = lhs_str)
         if (!has_doc(m, index = m@head)) {
             .single_doc(m) <- lhs_doc
         }
         if (!has_meta(m, index = m@head)) {
             .single_meta(m) <- eval(lhs_met_raw, envir = lhs_enclos)
         }
         o <- if (bind_if(m)) {
             fs <- fdecon$expr
             fl <- as.list(fs)
             bound_args <- bind_args(m)
             final_args <- bound_args
             if (fl[[1]] == "::" && length(fl) == 3) {
                 new_function <- f
             }
             else if (fl[[1]] == "{") {
                 keys <- names(final_args)
                 if (is.null(keys)) {
                     keys <- rep("", length(final_args))
                 }
                 if (keys[1] == "") {
                     keys[1] <- "."
                 }
                 if (any(keys == "")) {
                     msg <- "Error in %s: Arguments to an anonymous function must be named"
                     stop(msg)
                 }
                 names(final_args) <- keys
                 new_function <- pryr::make_function(.as_positional_formals(names(final_args)), 
                     fs, env = envir)
                 rhs_str <- deparse(new_function)
             }
             else if (fl[[1]] == "function") {
                 stop("Anonymous functions must be parenthesized", call. = FALSE)
             }
             else if (fl[[1]] == "(" && fl[[2]][[1]] == "function") {
                 new_function <- eval(fl[[2]], envir = envir)
             }
             else {
                 new_function <- eval(fl[[1]], envir = envir)
                 final_args <- append(bound_args, fl[-1])
             }
             o <- .eval(m = m, func = new_function, args = final_args, env = envir, code = rhs_str)
             m <- m_on_bind(m)
             o <- io_combine(m = m, o = o, f = new_function, margs = parent_ids(m))
             rhs_met <- eval_function_metadata(f = new_function, args = final_args, meta_expr = rhs_met_raw, 
                 env = envir, enclos = rhs_enclos)
             apply_rewriters(o, rhs_met)
         }
         else {
             rhs_met <- eval(rhs_met_raw, envir = envir, enclos = rhs_enclos)
             bind_else(m, f)
         }
         if (!is.null(o)) {
             .single_doc(o) <- rhs_doc
             .single_meta(o) <- rhs_met
             .single_code(o) <- rhs_str
         }
         result <- emit(m, o)
         .single_mem(result) <- as.integer(object.size(.single_value(result, warn = FALSE)))
         result
     })("a", {
         "Level One"
         . %>>% paste("b") %>>% {
             "Level Two"
             . %>>% paste("c") %>>% stop
         }
     })
  11: pryr::make_function
  12: getExportedValue(pkg, name)
  13: asNamespace(ns)
  14: getNamespace(ns)
  15: tryCatch(loadNamespace(name), error = function(e) stop(e))
  16: tryCatchList(expr, classes, parentenv, handlers)
  17: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  18: value[[3L]](cond)
  
  -- 12. Error: Lists over nested functions produce the correct output (@test-loop
  undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_subset_regex, stri_timezone_get, stri_timezone_info, stri_timezone_list, stri_timezone_set, stri_trans_char, stri_trans_general, stri_trans_isnfc, stri_trans_isnfd, stri_trans_isnfkc, stri_trans_isnfkc_casefold, stri_trans_isnfkd, stri_trans_list, stri_trans_nfc, stri_trans_nfd, stri_trans_nfkc, stri_trans_nfkc_casefold, stri_trans_nfkd, stri_trans_tolower, stri_trans_totitle, stri_trans_toupper, stri_trim, stri_trim_both, stri_trim_left, stri_trim_right, stri_unescape_unicode, stri_unique, stri_width, stri_wrap, stri_write_lines
  1: expect_equal(-1:1 %>>% {
         lapply(., foo)
     } %>% {
         sapply(.single_value(.), is_rmonad)
     }, c(TRUE, TRUE, TRUE)) at testthat/test-loop.R:9
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: -1:1 %>>% {
         lapply(., foo)
     } %>% {
         sapply(.single_value(.), is_rmonad)
     }
  5: eval(lhs, parent, parent)
  6: eval(lhs, parent, parent)
  7: -1:1 %>>% {
         lapply(., foo)
     }
  8: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  9: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  10: (function (x, f, entry_lhs_transform = entry_lhs_transform_default, bind_if = function(m) .single_OK(m), 
         bind_else = default_bind_else, emit = emit_default, m_on_bind = function(x, ...) {
             x
         }, io_combine = default_combine, bind_args = function(m) list(.single_value(m, 
             warn = FALSE)), parent_ids = function(m) list(.get_ids(m)[.single_id(m)]), 
         expect_rhs_function = TRUE, envir = parent.frame()) 
     {
         fdecon <- extract_metadata(substitute(f), env = envir, skip_name = !expect_rhs_function)
         rhs_str <- deparse(fdecon$expr)
         rhs_doc <- fdecon$docstring
         rhs_met_raw <- fdecon$metadata
         rhs_enclos <- fdecon$enclos
         xdecon <- extract_metadata(substitute(x), env = envir)
         lhs_str <- deparse(xdecon$expr)
         lhs_doc <- xdecon$docstring
         lhs_met_raw <- xdecon$metadata
         lhs_enclos <- xdecon$enclos
         m <- entry_lhs_transform(x, f, desc = lhs_str)
         if (!has_doc(m, index = m@head)) {
             .single_doc(m) <- lhs_doc
         }
         if (!has_meta(m, index = m@head)) {
             .single_meta(m) <- eval(lhs_met_raw, envir = lhs_enclos)
         }
         o <- if (bind_if(m)) {
             fs <- fdecon$expr
             fl <- as.list(fs)
             bound_args <- bind_args(m)
             final_args <- bound_args
             if (fl[[1]] == "::" && length(fl) == 3) {
                 new_function <- f
             }
             else if (fl[[1]] == "{") {
                 keys <- names(final_args)
                 if (is.null(keys)) {
                     keys <- rep("", length(final_args))
                 }
                 if (keys[1] == "") {
                     keys[1] <- "."
                 }
                 if (any(keys == "")) {
                     msg <- "Error in %s: Arguments to an anonymous function must be named"
                     stop(msg)
                 }
                 names(final_args) <- keys
                 new_function <- pryr::make_function(.as_positional_formals(names(final_args)), 
                     fs, env = envir)
                 rhs_str <- deparse(new_function)
             }
             else if (fl[[1]] == "function") {
                 stop("Anonymous functions must be parenthesized", call. = FALSE)
             }
             else if (fl[[1]] == "(" && fl[[2]][[1]] == "function") {
                 new_function <- eval(fl[[2]], envir = envir)
             }
             else {
                 new_function <- eval(fl[[1]], envir = envir)
                 final_args <- append(bound_args, fl[-1])
             }
             o <- .eval(m = m, func = new_function, args = final_args, env = envir, code = rhs_str)
             m <- m_on_bind(m)
             o <- io_combine(m = m, o = o, f = new_function, margs = parent_ids(m))
             rhs_met <- eval_function_metadata(f = new_function, args = final_args, meta_expr = rhs_met_raw, 
                 env = envir, enclos = rhs_enclos)
             apply_rewriters(o, rhs_met)
         }
         else {
             rhs_met <- eval(rhs_met_raw, envir = envir, enclos = rhs_enclos)
             bind_else(m, f)
         }
         if (!is.null(o)) {
             .single_doc(o) <- rhs_doc
             .single_meta(o) <- rhs_met
             .single_code(o) <- rhs_str
         }
         result <- emit(m, o)
         .single_mem(result) <- as.integer(object.size(.single_value(result, warn = FALSE)))
         result
     })(-1:1, {
         lapply(., foo)
     })
  11: pryr::make_function
  12: getExportedValue(pkg, name)
  13: asNamespace(ns)
  14: getNamespace(ns)
  15: tryCatch(loadNamespace(name), error = function(e) stop(e))
  16: tryCatchList(expr, classes, parentenv, handlers)
  17: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  18: value[[3L]](cond)
  
  -- 13. Error: (unknown) (@test-m-star.R#4)  ------------------------------------
  undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_subset_regex, stri_timezone_get, stri_timezone_info, stri_timezone_list, stri_timezone_set, stri_trans_char, stri_trans_general, stri_trans_isnfc, stri_trans_isnfd, stri_trans_isnfkc, stri_trans_isnfkc_casefold, stri_trans_isnfkd, stri_trans_list, stri_trans_nfc, stri_trans_nfd, stri_trans_nfkc, stri_trans_nfkc_casefold, stri_trans_nfkd, stri_trans_tolower, stri_trans_totitle, stri_trans_toupper, stri_trim, stri_trim_both, stri_trim_left, stri_trim_right, stri_unescape_unicode, stri_unique, stri_width, stri_wrap, stri_write_lines
  1: c(-1, 256) %v>% {
         sqrt(.) %v>% {
             "summarized"
             list(summarize = identity)
             sqrt(.)
         }
     } at testthat/test-m-star.R:4
  2: eval(as.call(cmd), envir = envir)
  3: eval(as.call(cmd), envir = envir)
  4: (function (x, f, entry_lhs_transform = entry_lhs_transform_default, bind_if = function(m) .single_OK(m), 
         bind_else = default_bind_else, emit = emit_default, m_on_bind = function(x, ...) {
             x
         }, io_combine = default_combine, bind_args = function(m) list(.single_value(m, 
             warn = FALSE)), parent_ids = function(m) list(.get_ids(m)[.single_id(m)]), 
         expect_rhs_function = TRUE, envir = parent.frame()) 
     {
         fdecon <- extract_metadata(substitute(f), env = envir, skip_name = !expect_rhs_function)
         rhs_str <- deparse(fdecon$expr)
         rhs_doc <- fdecon$docstring
         rhs_met_raw <- fdecon$metadata
         rhs_enclos <- fdecon$enclos
         xdecon <- extract_metadata(substitute(x), env = envir)
         lhs_str <- deparse(xdecon$expr)
         lhs_doc <- xdecon$docstring
         lhs_met_raw <- xdecon$metadata
         lhs_enclos <- xdecon$enclos
         m <- entry_lhs_transform(x, f, desc = lhs_str)
         if (!has_doc(m, index = m@head)) {
             .single_doc(m) <- lhs_doc
         }
         if (!has_meta(m, index = m@head)) {
             .single_meta(m) <- eval(lhs_met_raw, envir = lhs_enclos)
         }
         o <- if (bind_if(m)) {
             fs <- fdecon$expr
             fl <- as.list(fs)
             bound_args <- bind_args(m)
             final_args <- bound_args
             if (fl[[1]] == "::" && length(fl) == 3) {
                 new_function <- f
             }
             else if (fl[[1]] == "{") {
                 keys <- names(final_args)
                 if (is.null(keys)) {
                     keys <- rep("", length(final_args))
                 }
                 if (keys[1] == "") {
                     keys[1] <- "."
                 }
                 if (any(keys == "")) {
                     msg <- "Error in %s: Arguments to an anonymous function must be named"
                     stop(msg)
                 }
                 names(final_args) <- keys
                 new_function <- pryr::make_function(.as_positional_formals(names(final_args)), 
                     fs, env = envir)
                 rhs_str <- deparse(new_function)
             }
             else if (fl[[1]] == "function") {
                 stop("Anonymous functions must be parenthesized", call. = FALSE)
             }
             else if (fl[[1]] == "(" && fl[[2]][[1]] == "function") {
                 new_function <- eval(fl[[2]], envir = envir)
             }
             else {
                 new_function <- eval(fl[[1]], envir = envir)
                 final_args <- append(bound_args, fl[-1])
             }
             o <- .eval(m = m, func = new_function, args = final_args, env = envir, code = rhs_str)
             m <- m_on_bind(m)
             o <- io_combine(m = m, o = o, f = new_function, margs = parent_ids(m))
             rhs_met <- eval_function_metadata(f = new_function, args = final_args, meta_expr = rhs_met_raw, 
                 env = envir, enclos = rhs_enclos)
             apply_rewriters(o, rhs_met)
         }
         else {
             rhs_met <- eval(rhs_met_raw, envir = envir, enclos = rhs_enclos)
             bind_else(m, f)
         }
         if (!is.null(o)) {
             .single_doc(o) <- rhs_doc
             .single_meta(o) <- rhs_met
             .single_code(o) <- rhs_str
         }
         result <- emit(m, o)
         .single_mem(result) <- as.integer(object.size(.single_value(result, warn = FALSE)))
         result
     })(c(-1, 256), {
         sqrt(.) %v>% {
             "summarized"
             list(summarize = identity)
             sqrt(.)
         }
     }, m_on_bind = function (m) 
     {
         .single_stored(m) <- TRUE
         m
     })
  5: pryr::make_function
  6: getExportedValue(pkg, name)
  7: asNamespace(ns)
  8: getNamespace(ns)
  9: tryCatch(loadNamespace(name), error = function(e) stop(e))
  10: tryCatchList(expr, classes, parentenv, handlers)
  11: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  12: value[[3L]](cond)
  
  -- 14. Error: Multiple free variables can be handled in declarations (@test-magi
  undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_subset_regex, stri_timezone_get, stri_timezone_info, stri_timezone_list, stri_timezone_set, stri_trans_char, stri_trans_general, stri_trans_isnfc, stri_trans_isnfd, stri_trans_isnfkc, stri_trans_isnfkc_casefold, stri_trans_isnfkd, stri_trans_list, stri_trans_nfc, stri_trans_nfd, stri_trans_nfkc, stri_trans_nfkc_casefold, stri_trans_nfkd, stri_trans_tolower, stri_trans_totitle, stri_trans_toupper, stri_trim, stri_trim_both, stri_trim_left, stri_trim_right, stri_unescape_unicode, stri_unique, stri_width, stri_wrap, stri_write_lines
  1: expect_equal(3 %>>% {
         y <- 1
         bar <- . + y
         bar %>>% sqrt
     } %>% esc, 2) at testthat/test-magic.R:106
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: 3 %>>% {
         y <- 1
         bar <- . + y
         bar %>>% sqrt
     } %>% esc
  5: eval(lhs, parent, parent)
  6: eval(lhs, parent, parent)
  7: 3 %>>% {
         y <- 1
         bar <- . + y
         bar %>>% sqrt
     }
  8: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  9: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  10: (function (x, f, entry_lhs_transform = entry_lhs_transform_default, bind_if = function(m) .single_OK(m), 
         bind_else = default_bind_else, emit = emit_default, m_on_bind = function(x, ...) {
             x
         }, io_combine = default_combine, bind_args = function(m) list(.single_value(m, 
             warn = FALSE)), parent_ids = function(m) list(.get_ids(m)[.single_id(m)]), 
         expect_rhs_function = TRUE, envir = parent.frame()) 
     {
         fdecon <- extract_metadata(substitute(f), env = envir, skip_name = !expect_rhs_function)
         rhs_str <- deparse(fdecon$expr)
         rhs_doc <- fdecon$docstring
         rhs_met_raw <- fdecon$metadata
         rhs_enclos <- fdecon$enclos
         xdecon <- extract_metadata(substitute(x), env = envir)
         lhs_str <- deparse(xdecon$expr)
         lhs_doc <- xdecon$docstring
         lhs_met_raw <- xdecon$metadata
         lhs_enclos <- xdecon$enclos
         m <- entry_lhs_transform(x, f, desc = lhs_str)
         if (!has_doc(m, index = m@head)) {
             .single_doc(m) <- lhs_doc
         }
         if (!has_meta(m, index = m@head)) {
             .single_meta(m) <- eval(lhs_met_raw, envir = lhs_enclos)
         }
         o <- if (bind_if(m)) {
             fs <- fdecon$expr
             fl <- as.list(fs)
             bound_args <- bind_args(m)
             final_args <- bound_args
             if (fl[[1]] == "::" && length(fl) == 3) {
                 new_function <- f
             }
             else if (fl[[1]] == "{") {
                 keys <- names(final_args)
                 if (is.null(keys)) {
                     keys <- rep("", length(final_args))
                 }
                 if (keys[1] == "") {
                     keys[1] <- "."
                 }
                 if (any(keys == "")) {
                     msg <- "Error in %s: Arguments to an anonymous function must be named"
                     stop(msg)
                 }
                 names(final_args) <- keys
                 new_function <- pryr::make_function(.as_positional_formals(names(final_args)), 
                     fs, env = envir)
                 rhs_str <- deparse(new_function)
             }
             else if (fl[[1]] == "function") {
                 stop("Anonymous functions must be parenthesized", call. = FALSE)
             }
             else if (fl[[1]] == "(" && fl[[2]][[1]] == "function") {
                 new_function <- eval(fl[[2]], envir = envir)
             }
             else {
                 new_function <- eval(fl[[1]], envir = envir)
                 final_args <- append(bound_args, fl[-1])
             }
             o <- .eval(m = m, func = new_function, args = final_args, env = envir, code = rhs_str)
             m <- m_on_bind(m)
             o <- io_combine(m = m, o = o, f = new_function, margs = parent_ids(m))
             rhs_met <- eval_function_metadata(f = new_function, args = final_args, meta_expr = rhs_met_raw, 
                 env = envir, enclos = rhs_enclos)
             apply_rewriters(o, rhs_met)
         }
         else {
             rhs_met <- eval(rhs_met_raw, envir = envir, enclos = rhs_enclos)
             bind_else(m, f)
         }
         if (!is.null(o)) {
             .single_doc(o) <- rhs_doc
             .single_meta(o) <- rhs_met
             .single_code(o) <- rhs_str
         }
         result <- emit(m, o)
         .single_mem(result) <- as.integer(object.size(.single_value(result, warn = FALSE)))
         result
     })(3, {
         y <- 1
         bar <- . + y
         bar %>>% sqrt
     })
  11: pryr::make_function
  12: getExportedValue(pkg, name)
  13: asNamespace(ns)
  14: getNamespace(ns)
  15: tryCatch(loadNamespace(name), error = function(e) stop(e))
  16: tryCatchList(expr, classes, parentenv, handlers)
  17: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  18: value[[3L]](cond)
  
  -- 15. Failure: fields are not treated as free variables (@test-magic.R#118)  --
  {
      ...
  } not equal to c(0, 1, 1, 1).
  Lengths differ: 2 is not 4
  
  -- 16. Failure: The correct parents are set when nesting (@test-nest.R#55)  ----
  `%>%`(...) not equal to list(integer(0), 1, 2, 1, 4).
  Length mismatch: comparison on first 1 components
  
  -- 17. Error: Test deep anonymous nesting (@test-nest.R#68)  -------------------
  in "a_bomb":
    undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_subset_regex, stri_timezone_get, stri_timezone_info, stri_timezone_list, stri_timezone_set, stri_trans_char, stri_trans_general, stri_trans_isnfc, stri_trans_isnfd, stri_trans_isnfkc, stri_trans_isnfkc_casefold, stri_trans_isnfkd, stri_trans_list, stri_trans_nfc, stri_trans_nfd, stri_trans_nfkc, stri_trans_nfkc_casefold, stri_trans_nfkd, stri_trans_tolower, stri_trans_totitle, stri_trans_toupper, stri_trim, stri_trim_both, stri_trim_left, stri_trim_right, stri_unescape_unicode, stri_unique, stri_width, stri_wrap, stri_write_lines
  1: expect_equal(funnel(x = 2, y = 5) %*>% a_bomb %>% esc, 140) at testthat/test-nest.R:68
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: funnel(x = 2, y = 5) %*>% a_bomb %>% esc
  5: withVisible(eval(quote(`_fseq`(`_lhs`)), env, env))
  6: eval(quote(`_fseq`(`_lhs`)), env, env)
  7: eval(quote(`_fseq`(`_lhs`)), env, env)
  8: `_fseq`(`_lhs`)
  9: freduce(value, `_function_list`)
  10: withVisible(function_list[[k]](value))
  11: function_list[[k]](value)
  12: esc(.)
  13: fe(.single_code(m), .single_error(m))
  14: stop(paste0("in \"", code, "\":\n  ", msg), call. = FALSE)
  
  -- 18. Error: Identical nests are OK (@test-nest.R#89)  ------------------------
  subscript out of bounds
  1: expect_equal({
         m <- "a" %>>% {
             paste0(., "b") %>>% paste0(".") %>% tag("foo")
         } %>>% {
             paste0(., "b") %>>% paste0(".") %>% tag("bar")
         }
         c(get_value(m, tag = "foo")[[1]], get_value(m, tag = "bar")[[1]])
     }, c("ab.", "ab.b.")) at testthat/test-nest.R:89
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  
  -- 19. Error: docstrings work on rhs (@test-nse.R#79)  -------------------------
  undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_subset_regex, stri_timezone_get, stri_timezone_info, stri_timezone_list, stri_timezone_set, stri_trans_char, stri_trans_general, stri_trans_isnfc, stri_trans_isnfd, stri_trans_isnfkc, stri_trans_isnfkc_casefold, stri_trans_isnfkd, stri_trans_list, stri_trans_nfc, stri_trans_nfd, stri_trans_nfkc, stri_trans_nfkc_casefold, stri_trans_nfkd, stri_trans_tolower, stri_trans_totitle, stri_trans_toupper, stri_trim, stri_trim_both, stri_trim_left, stri_trim_right, stri_unescape_unicode, stri_unique, stri_width, stri_wrap, stri_write_lines
  1: expect_equal(4 %>>% {
         "hi"
         sqrt(.)
     } %>% esc, 2) at testthat/test-nse.R:79
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: 4 %>>% {
         "hi"
         sqrt(.)
     } %>% esc
  5: eval(lhs, parent, parent)
  6: eval(lhs, parent, parent)
  7: 4 %>>% {
         "hi"
         sqrt(.)
     }
  8: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  9: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  10: (function (x, f, entry_lhs_transform = entry_lhs_transform_default, bind_if = function(m) .single_OK(m), 
         bind_else = default_bind_else, emit = emit_default, m_on_bind = function(x, ...) {
             x
         }, io_combine = default_combine, bind_args = function(m) list(.single_value(m, 
             warn = FALSE)), parent_ids = function(m) list(.get_ids(m)[.single_id(m)]), 
         expect_rhs_function = TRUE, envir = parent.frame()) 
     {
         fdecon <- extract_metadata(substitute(f), env = envir, skip_name = !expect_rhs_function)
         rhs_str <- deparse(fdecon$expr)
         rhs_doc <- fdecon$docstring
         rhs_met_raw <- fdecon$metadata
         rhs_enclos <- fdecon$enclos
         xdecon <- extract_metadata(substitute(x), env = envir)
         lhs_str <- deparse(xdecon$expr)
         lhs_doc <- xdecon$docstring
         lhs_met_raw <- xdecon$metadata
         lhs_enclos <- xdecon$enclos
         m <- entry_lhs_transform(x, f, desc = lhs_str)
         if (!has_doc(m, index = m@head)) {
             .single_doc(m) <- lhs_doc
         }
         if (!has_meta(m, index = m@head)) {
             .single_meta(m) <- eval(lhs_met_raw, envir = lhs_enclos)
         }
         o <- if (bind_if(m)) {
             fs <- fdecon$expr
             fl <- as.list(fs)
             bound_args <- bind_args(m)
             final_args <- bound_args
             if (fl[[1]] == "::" && length(fl) == 3) {
                 new_function <- f
             }
             else if (fl[[1]] == "{") {
                 keys <- names(final_args)
                 if (is.null(keys)) {
                     keys <- rep("", length(final_args))
                 }
                 if (keys[1] == "") {
                     keys[1] <- "."
                 }
                 if (any(keys == "")) {
                     msg <- "Error in %s: Arguments to an anonymous function must be named"
                     stop(msg)
                 }
                 names(final_args) <- keys
                 new_function <- pryr::make_function(.as_positional_formals(names(final_args)), 
                     fs, env = envir)
                 rhs_str <- deparse(new_function)
             }
             else if (fl[[1]] == "function") {
                 stop("Anonymous functions must be parenthesized", call. = FALSE)
             }
             else if (fl[[1]] == "(" && fl[[2]][[1]] == "function") {
                 new_function <- eval(fl[[2]], envir = envir)
             }
             else {
                 new_function <- eval(fl[[1]], envir = envir)
                 final_args <- append(bound_args, fl[-1])
             }
             o <- .eval(m = m, func = new_function, args = final_args, env = envir, code = rhs_str)
             m <- m_on_bind(m)
             o <- io_combine(m = m, o = o, f = new_function, margs = parent_ids(m))
             rhs_met <- eval_function_metadata(f = new_function, args = final_args, meta_expr = rhs_met_raw, 
                 env = envir, enclos = rhs_enclos)
             apply_rewriters(o, rhs_met)
         }
         else {
             rhs_met <- eval(rhs_met_raw, envir = envir, enclos = rhs_enclos)
             bind_else(m, f)
         }
         if (!is.null(o)) {
             .single_doc(o) <- rhs_doc
             .single_meta(o) <- rhs_met
             .single_code(o) <- rhs_str
         }
         result <- emit(m, o)
         .single_mem(result) <- as.integer(object.size(.single_value(result, warn = FALSE)))
         result
     })(4, {
         "hi"
         sqrt(.)
     })
  11: pryr::make_function
  12: getExportedValue(pkg, name)
  13: asNamespace(ns)
  14: getNamespace(ns)
  15: tryCatch(loadNamespace(name), error = function(e) stop(e))
  16: tryCatchList(expr, classes, parentenv, handlers)
  17: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  18: value[[3L]](cond)
  
  -- 20. Error: docstrings are correct in anonymous bind expressions (@test-nse.R#
  undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_subset_regex, stri_timezone_get, stri_timezone_info, stri_timezone_list, stri_timezone_set, stri_trans_char, stri_trans_general, stri_trans_isnfc, stri_trans_isnfd, stri_trans_isnfkc, stri_trans_isnfkc_casefold, stri_trans_isnfkd, stri_trans_list, stri_trans_nfc, stri_trans_nfd, stri_trans_nfkc, stri_trans_nfkc_casefold, stri_trans_nfkd, stri_trans_tolower, stri_trans_totitle, stri_trans_toupper, stri_trim, stri_trim_both, stri_trim_left, stri_trim_right, stri_unescape_unicode, stri_unique, stri_width, stri_wrap, stri_write_lines
  1: expect_equal(16 %>>% {
         "asdf"
         list(k = 1)
         sqrt(.)
     } %>% .single_code %>% gsub(pattern = " |\n", replacement = "") %>% paste(collapse = ""), 
         "function(.){sqrt(.)}") at testthat/test-nse.R:150
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: 16 %>>% {
         "asdf"
         list(k = 1)
         sqrt(.)
     } %>% .single_code %>% gsub(pattern = " |\n", replacement = "") %>% paste(collapse = "")
  5: eval(lhs, parent, parent)
  6: eval(lhs, parent, parent)
  7: 16 %>>% {
         "asdf"
         list(k = 1)
         sqrt(.)
     }
  8: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  9: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  10: (function (x, f, entry_lhs_transform = entry_lhs_transform_default, bind_if = function(m) .single_OK(m), 
         bind_else = default_bind_else, emit = emit_default, m_on_bind = function(x, ...) {
             x
         }, io_combine = default_combine, bind_args = function(m) list(.single_value(m, 
             warn = FALSE)), parent_ids = function(m) list(.get_ids(m)[.single_id(m)]), 
         expect_rhs_function = TRUE, envir = parent.frame()) 
     {
         fdecon <- extract_metadata(substitute(f), env = envir, skip_name = !expect_rhs_function)
         rhs_str <- deparse(fdecon$expr)
         rhs_doc <- fdecon$docstring
         rhs_met_raw <- fdecon$metadata
         rhs_enclos <- fdecon$enclos
         xdecon <- extract_metadata(substitute(x), env = envir)
         lhs_str <- deparse(xdecon$expr)
         lhs_doc <- xdecon$docstring
         lhs_met_raw <- xdecon$metadata
         lhs_enclos <- xdecon$enclos
         m <- entry_lhs_transform(x, f, desc = lhs_str)
         if (!has_doc(m, index = m@head)) {
             .single_doc(m) <- lhs_doc
         }
         if (!has_meta(m, index = m@head)) {
             .single_meta(m) <- eval(lhs_met_raw, envir = lhs_enclos)
         }
         o <- if (bind_if(m)) {
             fs <- fdecon$expr
             fl <- as.list(fs)
             bound_args <- bind_args(m)
             final_args <- bound_args
             if (fl[[1]] == "::" && length(fl) == 3) {
                 new_function <- f
             }
             else if (fl[[1]] == "{") {
                 keys <- names(final_args)
                 if (is.null(keys)) {
                     keys <- rep("", length(final_args))
                 }
                 if (keys[1] == "") {
                     keys[1] <- "."
                 }
                 if (any(keys == "")) {
                     msg <- "Error in %s: Arguments to an anonymous function must be named"
                     stop(msg)
                 }
                 names(final_args) <- keys
                 new_function <- pryr::make_function(.as_positional_formals(names(final_args)), 
                     fs, env = envir)
                 rhs_str <- deparse(new_function)
             }
             else if (fl[[1]] == "function") {
                 stop("Anonymous functions must be parenthesized", call. = FALSE)
             }
             else if (fl[[1]] == "(" && fl[[2]][[1]] == "function") {
                 new_function <- eval(fl[[2]], envir = envir)
             }
             else {
                 new_function <- eval(fl[[1]], envir = envir)
                 final_args <- append(bound_args, fl[-1])
             }
             o <- .eval(m = m, func = new_function, args = final_args, env = envir, code = rhs_str)
             m <- m_on_bind(m)
             o <- io_combine(m = m, o = o, f = new_function, margs = parent_ids(m))
             rhs_met <- eval_function_metadata(f = new_function, args = final_args, meta_expr = rhs_met_raw, 
                 env = envir, enclos = rhs_enclos)
             apply_rewriters(o, rhs_met)
         }
         else {
             rhs_met <- eval(rhs_met_raw, envir = envir, enclos = rhs_enclos)
             bind_else(m, f)
         }
         if (!is.null(o)) {
             .single_doc(o) <- rhs_doc
             .single_meta(o) <- rhs_met
             .single_code(o) <- rhs_str
         }
         result <- emit(m, o)
         .single_mem(result) <- as.integer(object.size(.single_value(result, warn = FALSE)))
         result
     })(16, {
         "asdf"
         list(k = 1)
         sqrt(.)
     })
  11: pryr::make_function
  12: getExportedValue(pkg, name)
  13: asNamespace(ns)
  14: getNamespace(ns)
  15: tryCatch(loadNamespace(name), error = function(e) stop(e))
  16: tryCatchList(expr, classes, parentenv, handlers)
  17: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  18: value[[3L]](cond)
  
  -- 21. Error: metadata lists are evaluated in the proper environment (@test-nse.
  undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_subset_regex, stri_timezone_get, stri_timezone_info, stri_timezone_list, stri_timezone_set, stri_trans_char, stri_trans_general, stri_trans_isnfc, stri_trans_isnfd, stri_trans_isnfkc, stri_trans_isnfkc_casefold, stri_trans_isnfkd, stri_trans_list, stri_trans_nfc, stri_trans_nfd, stri_trans_nfkc, stri_trans_nfkc_casefold, stri_trans_nfkd, stri_trans_tolower, stri_trans_totitle, stri_trans_toupper, stri_trim, stri_trim_both, stri_trim_left, stri_trim_right, stri_unescape_unicode, stri_unique, stri_width, stri_wrap, stri_write_lines
  1: expect_equal({
         y <- 42
         36 %>>% {
             list(foo = y)
             NULL
         } %>% .single_meta %>% {
             .$foo
         }
     }, 42) at testthat/test-nse.R:159
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: 36 %>>% {
         list(foo = y)
         NULL
     } %>% .single_meta %>% {
         .$foo
     } at testthat/test-nse.R:162
  5: eval(lhs, parent, parent)
  6: eval(lhs, parent, parent)
  7: 36 %>>% {
         list(foo = y)
         NULL
     }
  8: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  9: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  10: (function (x, f, entry_lhs_transform = entry_lhs_transform_default, bind_if = function(m) .single_OK(m), 
         bind_else = default_bind_else, emit = emit_default, m_on_bind = function(x, ...) {
             x
         }, io_combine = default_combine, bind_args = function(m) list(.single_value(m, 
             warn = FALSE)), parent_ids = function(m) list(.get_ids(m)[.single_id(m)]), 
         expect_rhs_function = TRUE, envir = parent.frame()) 
     {
         fdecon <- extract_metadata(substitute(f), env = envir, skip_name = !expect_rhs_function)
         rhs_str <- deparse(fdecon$expr)
         rhs_doc <- fdecon$docstring
         rhs_met_raw <- fdecon$metadata
         rhs_enclos <- fdecon$enclos
         xdecon <- extract_metadata(substitute(x), env = envir)
         lhs_str <- deparse(xdecon$expr)
         lhs_doc <- xdecon$docstring
         lhs_met_raw <- xdecon$metadata
         lhs_enclos <- xdecon$enclos
         m <- entry_lhs_transform(x, f, desc = lhs_str)
         if (!has_doc(m, index = m@head)) {
             .single_doc(m) <- lhs_doc
         }
         if (!has_meta(m, index = m@head)) {
             .single_meta(m) <- eval(lhs_met_raw, envir = lhs_enclos)
         }
         o <- if (bind_if(m)) {
             fs <- fdecon$expr
             fl <- as.list(fs)
             bound_args <- bind_args(m)
             final_args <- bound_args
             if (fl[[1]] == "::" && length(fl) == 3) {
                 new_function <- f
             }
             else if (fl[[1]] == "{") {
                 keys <- names(final_args)
                 if (is.null(keys)) {
                     keys <- rep("", length(final_args))
                 }
                 if (keys[1] == "") {
                     keys[1] <- "."
                 }
                 if (any(keys == "")) {
                     msg <- "Error in %s: Arguments to an anonymous function must be named"
                     stop(msg)
                 }
                 names(final_args) <- keys
                 new_function <- pryr::make_function(.as_positional_formals(names(final_args)), 
                     fs, env = envir)
                 rhs_str <- deparse(new_function)
             }
             else if (fl[[1]] == "function") {
                 stop("Anonymous functions must be parenthesized", call. = FALSE)
             }
             else if (fl[[1]] == "(" && fl[[2]][[1]] == "function") {
                 new_function <- eval(fl[[2]], envir = envir)
             }
             else {
                 new_function <- eval(fl[[1]], envir = envir)
                 final_args <- append(bound_args, fl[-1])
             }
             o <- .eval(m = m, func = new_function, args = final_args, env = envir, code = rhs_str)
             m <- m_on_bind(m)
             o <- io_combine(m = m, o = o, f = new_function, margs = parent_ids(m))
             rhs_met <- eval_function_metadata(f = new_function, args = final_args, meta_expr = rhs_met_raw, 
                 env = envir, enclos = rhs_enclos)
             apply_rewriters(o, rhs_met)
         }
         else {
             rhs_met <- eval(rhs_met_raw, envir = envir, enclos = rhs_enclos)
             bind_else(m, f)
         }
         if (!is.null(o)) {
             .single_doc(o) <- rhs_doc
             .single_meta(o) <- rhs_met
             .single_code(o) <- rhs_str
         }
         result <- emit(m, o)
         .single_mem(result) <- as.integer(object.size(.single_value(result, warn = FALSE)))
         result
     })(36, {
         list(foo = y)
         NULL
     })
  11: pryr::make_function
  12: getExportedValue(pkg, name)
  13: asNamespace(ns)
  14: getNamespace(ns)
  15: tryCatch(loadNamespace(name), error = function(e) stop(e))
  16: tryCatchList(expr, classes, parentenv, handlers)
  17: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  18: value[[3L]](cond)
  
  -- 22. Error: format warnings (@test-rewriter.R#4)  ----------------------------
  undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_subset_regex, stri_timezone_get, stri_timezone_info, stri_timezone_list, stri_timezone_set, stri_trans_char, stri_trans_general, stri_trans_isnfc, stri_trans_isnfd, stri_trans_isnfkc, stri_trans_isnfkc_casefold, stri_trans_isnfkd, stri_trans_list, stri_trans_nfc, stri_trans_nfd, stri_trans_nfkc, stri_trans_nfkc_casefold, stri_trans_nfkd, stri_trans_tolower, stri_trans_totitle, stri_trans_toupper, stri_trim, stri_trim_both, stri_trim_left, stri_trim_right, stri_unescape_unicode, stri_unique, stri_width, stri_wrap, stri_write_lines
  1: expect_equal(-1 %>>% {
         list(format_warnings = function(x, w) {
             "oops"
         })
         log(.)
     } %>% .single_warnings, c("oops")) at testthat/test-rewriter.R:4
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: -1 %>>% {
         list(format_warnings = function(x, w) {
             "oops"
         })
         log(.)
     } %>% .single_warnings
  5: eval(lhs, parent, parent)
  6: eval(lhs, parent, parent)
  7: -1 %>>% {
         list(format_warnings = function(x, w) {
             "oops"
         })
         log(.)
     }
  8: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  9: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  10: (function (x, f, entry_lhs_transform = entry_lhs_transform_default, bind_if = function(m) .single_OK(m), 
         bind_else = default_bind_else, emit = emit_default, m_on_bind = function(x, ...) {
             x
         }, io_combine = default_combine, bind_args = function(m) list(.single_value(m, 
             warn = FALSE)), parent_ids = function(m) list(.get_ids(m)[.single_id(m)]), 
         expect_rhs_function = TRUE, envir = parent.frame()) 
     {
         fdecon <- extract_metadata(substitute(f), env = envir, skip_name = !expect_rhs_function)
         rhs_str <- deparse(fdecon$expr)
         rhs_doc <- fdecon$docstring
         rhs_met_raw <- fdecon$metadata
         rhs_enclos <- fdecon$enclos
         xdecon <- extract_metadata(substitute(x), env = envir)
         lhs_str <- deparse(xdecon$expr)
         lhs_doc <- xdecon$docstring
         lhs_met_raw <- xdecon$metadata
         lhs_enclos <- xdecon$enclos
         m <- entry_lhs_transform(x, f, desc = lhs_str)
         if (!has_doc(m, index = m@head)) {
             .single_doc(m) <- lhs_doc
         }
         if (!has_meta(m, index = m@head)) {
             .single_meta(m) <- eval(lhs_met_raw, envir = lhs_enclos)
         }
         o <- if (bind_if(m)) {
             fs <- fdecon$expr
             fl <- as.list(fs)
             bound_args <- bind_args(m)
             final_args <- bound_args
             if (fl[[1]] == "::" && length(fl) == 3) {
                 new_function <- f
             }
             else if (fl[[1]] == "{") {
                 keys <- names(final_args)
                 if (is.null(keys)) {
                     keys <- rep("", length(final_args))
                 }
                 if (keys[1] == "") {
                     keys[1] <- "."
                 }
                 if (any(keys == "")) {
                     msg <- "Error in %s: Arguments to an anonymous function must be named"
                     stop(msg)
                 }
                 names(final_args) <- keys
                 new_function <- pryr::make_function(.as_positional_formals(names(final_args)), 
                     fs, env = envir)
                 rhs_str <- deparse(new_function)
             }
             else if (fl[[1]] == "function") {
                 stop("Anonymous functions must be parenthesized", call. = FALSE)
             }
             else if (fl[[1]] == "(" && fl[[2]][[1]] == "function") {
                 new_function <- eval(fl[[2]], envir = envir)
             }
             else {
                 new_function <- eval(fl[[1]], envir = envir)
                 final_args <- append(bound_args, fl[-1])
             }
             o <- .eval(m = m, func = new_function, args = final_args, env = envir, code = rhs_str)
             m <- m_on_bind(m)
             o <- io_combine(m = m, o = o, f = new_function, margs = parent_ids(m))
             rhs_met <- eval_function_metadata(f = new_function, args = final_args, meta_expr = rhs_met_raw, 
                 env = envir, enclos = rhs_enclos)
             apply_rewriters(o, rhs_met)
         }
         else {
             rhs_met <- eval(rhs_met_raw, envir = envir, enclos = rhs_enclos)
             bind_else(m, f)
         }
         if (!is.null(o)) {
             .single_doc(o) <- rhs_doc
             .single_meta(o) <- rhs_met
             .single_code(o) <- rhs_str
         }
         result <- emit(m, o)
         .single_mem(result) <- as.integer(object.size(.single_value(result, warn = FALSE)))
         result
     })(-1, {
         list(format_warnings = function(x, w) {
             "oops"
         })
         log(.)
     })
  11: pryr::make_function
  12: getExportedValue(pkg, name)
  13: asNamespace(ns)
  14: getNamespace(ns)
  15: tryCatch(loadNamespace(name), error = function(e) stop(e))
  16: tryCatchList(expr, classes, parentenv, handlers)
  17: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  18: value[[3L]](cond)
  
  -- 23. Error: format warnings with output data (@test-rewriter.R#27)  ----------
  undefined exports: %s!=%, %s!==%, %s+%, %s<%, %s<=%, %s==%, %s===%, %s>%, %s>=%, %stri!=%, %stri!==%, %stri+%, %stri<%, %stri<=%, %stri==%, %stri===%, %stri>%, %stri>=%, stri_datetime_add<-, stri_sub<-, stri_subset<-, stri_subset_charclass<-, stri_subset_coll<-, stri_subset_fixed<-, stri_subset_regex<-, stri_c, stri_c_list, stri_cmp, stri_cmp_eq, stri_cmp_equiv, stri_cmp_ge, stri_cmp_gt, stri_cmp_le, stri_cmp_lt, stri_cmp_neq, stri_cmp_nequiv, stri_compare, stri_conv, stri_count, stri_count_boundaries, stri_count_charclass, stri_count_coll, stri_count_fixed, stri_count_regex, stri_count_words, stri_datetime_add, stri_datetime_create, stri_datetime_fields, stri_datetime_format, stri_datetime_fstr, stri_datetime_now, stri_datetime_parse, stri_datetime_symbols, stri_detect, stri_detect_charclass, stri_detect_coll, stri_detect_fixed, stri_detect_regex, stri_dup, stri_duplicated, stri_duplicated_any, stri_enc_detect, stri_enc_detect2, stri_enc_fromutf32, stri_enc_get, stri_enc_info, stri_enc_isascii, stri_enc_isutf16be, stri_enc_isutf16le, stri_enc_isutf32be, stri_enc_isutf32le, stri_enc_isutf8, stri_enc_list, stri_enc_mark, stri_enc_set, stri_enc_toascii, stri_enc_tonative, stri_enc_toutf32, stri_enc_toutf8, stri_encode, stri_endswith, stri_endswith_charclass, stri_endswith_coll, stri_endswith_fixed, stri_escape_unicode, stri_extract, stri_extract_all, stri_extract_all_boundaries, stri_extract_all_charclass, stri_extract_all_coll, stri_extract_all_fixed, stri_extract_all_regex, stri_extract_all_words, stri_extract_first, stri_extract_first_boundaries, stri_extract_first_charclass, stri_extract_first_coll, stri_extract_first_fixed, stri_extract_first_regex, stri_extract_first_words, stri_extract_last, stri_extract_last_boundaries, stri_extract_last_charclass, stri_extract_last_coll, stri_extract_last_fixed, stri_extract_last_regex, stri_extract_last_words, stri_flatten, stri_info, stri_isempty, stri_join, stri_join_list, stri_length, stri_list2matrix, stri_locale_get, stri_locale_info, stri_locale_list, stri_locale_set, stri_locate, stri_locate_all, stri_locate_all_boundaries, stri_locate_all_charclass, stri_locate_all_coll, stri_locate_all_fixed, stri_locate_all_regex, stri_locate_all_words, stri_locate_first, stri_locate_first_boundaries, stri_locate_first_charclass, stri_locate_first_coll, stri_locate_first_fixed, stri_locate_first_regex, stri_locate_first_words, stri_locate_last, stri_locate_last_boundaries, stri_locate_last_charclass, stri_locate_last_coll, stri_locate_last_fixed, stri_locate_last_regex, stri_locate_last_words, stri_match, stri_match_all, stri_match_all_regex, stri_match_first, stri_match_first_regex, stri_match_last, stri_match_last_regex, stri_na2empty, stri_numbytes, stri_opts_brkiter, stri_opts_collator, stri_opts_fixed, stri_opts_regex, stri_order, stri_pad, stri_pad_both, stri_pad_left, stri_pad_right, stri_paste, stri_paste_list, stri_rand_lipsum, stri_rand_shuffle, stri_rand_strings, stri_read_lines, stri_read_raw, stri_remove_empty, stri_replace, stri_replace_all, stri_replace_all_charclass, stri_replace_all_coll, stri_replace_all_fixed, stri_replace_all_regex, stri_replace_first, stri_replace_first_charclass, stri_replace_first_coll, stri_replace_first_fixed, stri_replace_first_regex, stri_replace_last, stri_replace_last_charclass, stri_replace_last_coll, stri_replace_last_fixed, stri_replace_last_regex, stri_replace_na, stri_reverse, stri_sort, stri_split, stri_split_boundaries, stri_split_charclass, stri_split_coll, stri_split_fixed, stri_split_lines, stri_split_lines1, stri_split_regex, stri_startswith, stri_startswith_charclass, stri_startswith_coll, stri_startswith_fixed, stri_stats_general, stri_stats_latex, stri_sub, stri_subset, stri_subset_charclass, stri_subset_coll, stri_subset_fixed, stri_subset_regex, stri_timezone_get, stri_timezone_info, stri_timezone_list, stri_timezone_set, stri_trans_char, stri_trans_general, stri_trans_isnfc, stri_trans_isnfd, stri_trans_isnfkc, stri_trans_isnfkc_casefold, stri_trans_isnfkd, stri_trans_list, stri_trans_nfc, stri_trans_nfd, stri_trans_nfkc, stri_trans_nfkc_casefold, stri_trans_nfkd, stri_trans_tolower, stri_trans_totitle, stri_trans_toupper, stri_trim, stri_trim_both, stri_trim_left, stri_trim_right, stri_unescape_unicode, stri_unique, stri_width, stri_wrap, stri_write_lines
  1: expect_equal(-1 %>>% {
         list(format_warnings = function(x, w) {
             paste0("made a ", x)
         })
         log(.)
     } %>% .single_warnings, c("made a NaN")) at testthat/test-rewriter.R:27
  2: quasi_label(enquo(object), label)
  3: eval_bare(get_expr(quo), get_env(quo))
  4: -1 %>>% {
         list(format_warnings = function(x, w) {
             paste0("made a ", x)
         })
         log(.)
     } %>% .single_warnings
  5: eval(lhs, parent, parent)
  6: eval(lhs, parent, parent)
  7: -1 %>>% {
         list(format_warnings = function(x, w) {
             paste0("made a ", x)
         })
         log(.)
     }
  8: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  9: eval(as.call(list(bind, substitute(lhs), substitute(rhs))), envir = envir)
  10: (function (x, f, entry_lhs_transform = entry_lhs_transform_default, bind_if = function(m) .single_OK(m), 
         bind_else = default_bind_else, emit = emit_default, m_on_bind = function(x, ...) {
             x
         }, io_combine = default_combine, bind_args = function(m) list(.single_value(m, 
             warn = FALSE)), parent_ids = function(m) list(.get_ids(m)[.single_id(m)]), 
         expect_rhs_function = TRUE, envir = parent.frame()) 
     {
         fdecon <- extract_metadata(substitute(f), env = envir, skip_name = !expect_rhs_function)
         rhs_str <- deparse(fdecon$expr)
         rhs_doc <- fdecon$docstring
         rhs_met_raw <- fdecon$metadata
         rhs_enclos <- fdecon$enclos
         xdecon <- extract_metadata(substitute(x), env = envir)
         lhs_str <- deparse(xdecon$expr)
         lhs_doc <- xdecon$docstring
         lhs_met_raw <- xdecon$metadata
         lhs_enclos <- xdecon$enclos
         m <- entry_lhs_transform(x, f, desc = lhs_str)
         if (!has_doc(m, index = m@head)) {
             .single_doc(m) <- lhs_doc
         }
         if (!has_meta(m, index = m@head)) {
             .single_meta(m) <- eval(lhs_met_raw, envir = lhs_enclos)
         }
         o <- if (bind_if(m)) {
             fs <- fdecon$expr
             fl <- as.list(fs)
             bound_args <- bind_args(m)
             final_args <- bound_args
             if (fl[[1]] == "::" && length(fl) == 3) {
                 new_function <- f
             }
             else if (fl[[1]] == "{") {
                 keys <- names(final_args)
                 if (is.null(keys)) {
                     keys <- rep("", length(final_args))
                 }
                 if (keys[1] == "") {
                     keys[1] <- "."
                 }
                 if (any(keys == "")) {
                     msg <- "Error in %s: Arguments to an anonymous function must be named"
                     stop(msg)
                 }
                 names(final_args) <- keys
                 new_function <- pryr::make_function(.as_positional_formals(names(final_args)), 
                     fs, env = envir)
                 rhs_str <- deparse(new_function)
             }
             else if (fl[[1]] == "function") {
                 stop("Anonymous functions must be parenthesized", call. = FALSE)
             }
             else if (fl[[1]] == "(" && fl[[2]][[1]] == "function") {
                 new_function <- eval(fl[[2]], envir = envir)
             }
             else {
                 new_function <- eval(fl[[1]], envir = envir)
                 final_args <- append(bound_args, fl[-1])
             }
             o <- .eval(m = m, func = new_function, args = final_args, env = envir, code = rhs_str)
             m <- m_on_bind(m)
             o <- io_combine(m = m, o = o, f = new_function, margs = parent_ids(m))
             rhs_met <- eval_function_metadata(f = new_function, args = final_args, meta_expr = rhs_met_raw, 
                 env = envir, enclos = rhs_enclos)
             apply_rewriters(o, rhs_met)
         }
         else {
             rhs_met <- eval(rhs_met_raw, envir = envir, enclos = rhs_enclos)
             bind_else(m, f)
         }
         if (!is.null(o)) {
             .single_doc(o) <- rhs_doc
             .single_meta(o) <- rhs_met
             .single_code(o) <- rhs_str
         }
         result <- emit(m, o)
         .single_mem(result) <- as.integer(object.size(.single_value(result, warn = FALSE)))
         result
     })(-1, {
         list(format_warnings = function(x, w) {
             paste0("made a ", x)
         })
         log(.)
     })
  11: pryr::make_function
  12: getExportedValue(pkg, name)
  13: asNamespace(ns)
  14: getNamespace(ns)
  15: tryCatch(loadNamespace(name), error = function(e) stop(e))
  16: tryCatchList(expr, classes, parentenv, handlers)
  17: tryCatchOne(expr, names, parentenv, handlers[[1L]])
  18: value[[3L]](cond)
  
  == testthat results  ===========================================================
  OK: 288 SKIPPED: 0 FAILED: 23
  1. Error: %*>% preserves keyword arguments (@test-binops.R#94) 
  2. Error: %*>% evaluates lists in variables (@test-binops.R#108) 
  3. Error: anonymous expressions can be run (@test-binops.R#112) 
  4. Error: dot substitution is performed in anonymous expressions (@test-binops.R#117) 
  5. Error: New rmonad dont overwrite old ones (not an issue without R6) (@test-branch.R#36) 
  6. Failure: Branching into nests correctly makes transitive links (@test-branch.R#71) 
  7. Failure: Branching into nests correctly makes transitive links (@test-branch.R#72) 
  8. Failure: Branching into nests correctly makes transitive links (@test-branch.R#73) 
  9. Error: Blocks are expanded into functions (@test-codestr.R#47) 
  1. ...
  
  Error: testthat unit tests failed
  Execution halted