-
Notifications
You must be signed in to change notification settings - Fork 184
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Group primitives in object name lintr? #842
Comments
Interesting find. Can you provide a reprex that mistakenly produces a lint?
doesn't lint. |
Hmmm, that's weird. When I try it on a fresh install from the master branch from this repo, that same command does produce output for me:
Which I think should be ok, in the same way that |
Can reproduce with the latest lintr::lint(
text = "tan.test <- function() 2",
linters = lintr::object_name_linter()
)
#> <text>:1:1: style: [object_name_linter] Variable and function name style should be snake_case or symbols.
#> tan.test <- function() 2
#> ^~~~~~~~ Created on 2022-09-28 with reprex v2.0.2 Session infosessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#> setting value
#> version R version 4.2.1 (2022-06-23)
#> os macOS Monterey 12.5.1
#> system aarch64, darwin20
#> ui X11
#> language (EN)
#> collate en_US.UTF-8
#> ctype en_US.UTF-8
#> tz Europe/Berlin
#> date 2022-09-28
#> pandoc 2.19.2 @ /usr/local/bin/ (via rmarkdown)
#>
#> ─ Packages ───────────────────────────────────────────────────────────────────
#> package * version date (UTC) lib source
#> callr 3.7.2 2022-08-22 [1] CRAN (R 4.2.0)
#> cli 3.4.1 2022-09-23 [1] CRAN (R 4.2.1)
#> crayon 1.5.1 2022-03-26 [1] CRAN (R 4.2.0)
#> cyclocomp 1.1.0 2016-09-10 [1] CRAN (R 4.2.0)
#> desc 1.4.2 2022-09-08 [1] CRAN (R 4.2.1)
#> digest 0.6.29 2021-12-01 [1] CRAN (R 4.2.0)
#> evaluate 0.16 2022-08-09 [1] CRAN (R 4.2.1)
#> fansi 1.0.3 2022-03-24 [1] CRAN (R 4.2.0)
#> fastmap 1.1.0 2021-01-25 [1] CRAN (R 4.2.0)
#> fs 1.5.2 2021-12-08 [1] CRAN (R 4.2.0)
#> glue 1.6.2 2022-02-24 [1] CRAN (R 4.2.0)
#> highr 0.9 2021-04-16 [1] CRAN (R 4.2.0)
#> htmltools 0.5.3 2022-07-18 [1] CRAN (R 4.2.1)
#> knitr 1.40 2022-08-24 [1] CRAN (R 4.2.1)
#> lazyeval 0.2.2 2019-03-15 [1] CRAN (R 4.2.0)
#> lifecycle 1.0.2 2022-09-09 [1] CRAN (R 4.2.1)
#> lintr 3.0.1.9000 2022-09-27 [1] Github (r-lib/lintr@9e1f8ba)
#> magrittr 2.0.3 2022-03-30 [1] CRAN (R 4.2.0)
#> pillar 1.8.1 2022-08-19 [1] CRAN (R 4.2.1)
#> pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.2.0)
#> processx 3.7.0 2022-07-07 [1] CRAN (R 4.2.1)
#> ps 1.7.1 2022-06-18 [1] CRAN (R 4.2.0)
#> purrr 0.3.4 2020-04-17 [1] CRAN (R 4.2.0)
#> R.cache 0.16.0 2022-07-21 [1] CRAN (R 4.2.0)
#> R.methodsS3 1.8.2 2022-06-13 [1] CRAN (R 4.2.0)
#> R.oo 1.25.0 2022-06-12 [1] CRAN (R 4.2.0)
#> R.utils 2.12.0 2022-06-28 [1] CRAN (R 4.2.0)
#> R6 2.5.1.9000 2022-08-06 [1] Github (r-lib/R6@87d5e45)
#> remotes 2.4.2 2021-11-30 [1] CRAN (R 4.2.0)
#> reprex 2.0.2 2022-08-17 [1] CRAN (R 4.2.1)
#> rex 1.2.1 2021-11-26 [1] CRAN (R 4.2.0)
#> rlang 1.0.6 2022-09-24 [1] CRAN (R 4.2.1)
#> rmarkdown 2.16 2022-08-24 [1] CRAN (R 4.2.1)
#> rprojroot 2.0.3 2022-04-02 [1] CRAN (R 4.2.0)
#> rstudioapi 0.14 2022-08-22 [1] CRAN (R 4.2.1)
#> sessioninfo 1.2.2 2021-12-06 [1] CRAN (R 4.2.0)
#> stringi 1.7.8 2022-07-11 [1] CRAN (R 4.2.1)
#> stringr 1.4.1 2022-08-20 [1] CRAN (R 4.2.1)
#> styler 1.7.0.9002 2022-09-27 [1] Github (r-lib/styler@1a8bab3)
#> tibble 3.1.8 2022-07-22 [1] CRAN (R 4.2.1)
#> utf8 1.2.2 2021-07-24 [1] CRAN (R 4.2.0)
#> vctrs 0.4.1 2022-04-13 [1] CRAN (R 4.2.0)
#> withr 2.5.0 2022-03-03 [1] CRAN (R 4.2.0)
#> xfun 0.33 2022-09-12 [1] CRAN (R 4.2.1)
#> xml2 1.3.3 2021-11-30 [1] CRAN (R 4.2.0)
#> xmlparsedata 1.0.5 2021-03-06 [1] CRAN (R 4.2.0)
#> yaml 2.3.5 2022-02-21 [1] CRAN (R 4.2.0)
#>
#> [1] /Library/Frameworks/R.framework/Versions/4.2-arm64/Resources/library
#>
#> ────────────────────────────────────────────────────────────────────────────── |
I don't reproduce on current testthat::expect_success(lintr::expect_lint("tan.test <- function() 2", NULL, lintr::object_name_linter())) |
After #755 generic detection is great for identifying generics and linting only S3 method definitions.
I have noticed that some of the base group generics (like
sum
) are not listed in.S3PrimitiveGenerics
which is used to get a list of possible generics. Which is documented at https://stat.ethz.ch/R-manual/R-devel/library/base/html/InternalMethods.htmlI've looked a bit to see if there is a group generics vector like
. S3PrimitiveGenerics
, but haven't found one yet. I do see thatsum
is in the result ofgetGenerics()
thought that also includes generics for packages that have also been loaded.Oddly(?)
getGenerics("package:base")
returns nothing (unlike something likegetGenerics("package:methods")
or other packages that return only that package's methods).getGenerics()[getGenerics()@package == "base"]
would limit it to generics that are in base, but that's hacky/ugly. Finally, the list of group generics is small enough one could also hardcode them.I would be happy to submit a PR that takes any of these approaches + an appropriate test.
The text was updated successfully, but these errors were encountered: