-
Notifications
You must be signed in to change notification settings - Fork 186
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
Google linters for 3.0.0 release #962
Comments
Do we want to expose |
my instinct is to hold off for now... want to prioritize 3.0.0 now & don't think it's quite as straightforward to deliver this. want to think a bit more carefully as well as discuss internally what that object should be. |
Splitting off a subset of #884 as a TODO list for 3.0.0 release; the rest of the linters can be done after that.
AnyDuplicatedLinter
- Require usage of anyDuplicated() > 0 over any(duplicated(.)) New any_duplicated_linter #986AnyIsNALinter
- Require usage of anyNA over any(is.na(.)) New any_is_na_linter #975ClassEqualsLinter
- Block comparison of class with == New class_equals_linter #989StopPasteLinter
condition_message_linter
- Block usage of paste() and paste0() with messaging functions using ... New stop_paste_linter #999MultipleStopifnotLinter
ConsecutiveStopifnotLinter
- Force consecutive stopifnot() calls into just one New consecutive_stopifnot_linter #1005ElseSameLineLinter
- Require else to come on the same line as the preceding brace New else_same_line_linter #1002ExpectComparisonLinter
- Require usage of expect_gt(x, y) over expect_true(x > y) (and similar) Expect comparison #955ExpectIdenticalLinter
- Require usage of expect_identical(x, y) where appropriate New expect_identical_linter #958ExpectIsLinter
- Redirect away from deprecated testthat::expect_is() expect_is_linter, or just use undesirable_function_linter? #946ExpectLengthLinter
- Require usage of expect_length(x, n) over expect_equal(length(x), n) New expect_length_linter #950ExpectNamedLinter
- Require usage of expect_named(x, n) over expect_equal(names(x), n) New expect_named_linter #949ExpectNotLinter
- Require usage of expect_false(.) over expect_true(!.) New expect_not_linter #945ExpectNullLinter
- Require usage of expect_null(x) over expect_equal(x, NULL) and similar expect_null_linter #887ExpectS3ClassLinter
- Require usage of expect_s3_class() or expect_s4_class() where appropriate. expect_s3_class_linter and expect_s4_class_linter #943ExpectS4ClassLinter
- Require usage of expect_s4_class(x, k) over expect_true(is(x, k)) expect_s3_class_linter and expect_s4_class_linter #943ExpectTrueFalseAndConditionLinter
conjunct_test_linter
- Force && conditions in expect_true(), expect_false() to be written separately New conjunct_expecation_linter #948ExpectTrueFalseLinter
- Require usage of expect_true(x) over expect_equal(x, TRUE) New expect_true_false_linter #947ExpectTypeLinter
- Require usage of expect_type(x, type) over expect_equal(typeof(x), type) expect_type_linter #924FixedRegexLinter
- Require usage of 'fixed=TRUE' in regular expressions where appropriate New fixed_regex_linter #1021FunctionBraceLinter
- Require multi-line functions to use braces New function_brace_linter #987IfelseCensorLinter
- Block usage of ifelse where pmin or pmax is more appropriate New ifelse_censor_linter #1007IfElseMatchBracesLinter
- Require both or neither if/else branches to use curly braces New if_else_match_braces_linter #983InnerCombineLinter
- Require c() to be applied before relatively expensive vectorized functions New inner_combine_linter #1012LiteralCoercionLinter
- Require usage of correctly-typed literals over literal coercions New literal_coercion_linter #995NestedIfelseLinter
- Block usage of nested ifelse() calls New nested_ifelse_linter #996NumericLeadingZeroLinter
- Require usage of a leading zero in all fractional numerics New numeric_leading_zero_linter #992OuterNegationLinter
- Require usage of !any(.) over all(!.), !all(.) over any(!.) New outer_negation_linter #988PasteSepLinter
- Block usage of paste() with sep='' New paste_sep_linter #997PasteToStringLinter
- Block usage of paste() with collapse=', ' New paste_to_string_linter #1013PipeCallLinter
- Force explicit calls in magrittr pipes New pipe_call_linter enforcing calls (not symbols) in magrittr pipes #801RedundantIfelseLinter
- Prevent ifelse() from being used to produce TRUE/FALSE New redundant_ifelse_linter #1000GrepSubsetLinter
RegexSubsetLinter
- Require usage of grep(value = TRUE) over x[grep(x)] New regex_subset_linter #1004StopifnotAndConditionLinter
conjunct_test_linter
- Force && conditions in stopifnot() to be written separately Extend conjunct_expectation_linter to include stopifnot(), rename to conjunct_test_linter #1011StringsAsFactorsLinter
- Identify cases where stringsAsFactors should be supplied explicitly New strings_as_factors_linter #1020SystemFileLinter
- Block usage of file.path() with system.file() New system_file_linter #1006UnreachableCodeLinter
- Block unreachable code and comments following return statements New unreachable_code_linter #1003VectorLogicLinter
- Enforce usage of scalar && in conditional statements New vector_logic_linter #978YodaTestLinter
- Block obvious 'yoda tests' New yoda_test_linter #957The text was updated successfully, but these errors were encountered: