You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I think c() and rep() are the most common ways to build constant expressions, so we can limit it to combinations of those. Note that I consider rep(1:3, n) as being "constant" here, as the variable part is "constant enough" for the places where we'd use this:
strings_as_factors_linter which looks for data.frames declared with known-character columns
expect_{type,length,named,s3_class}_linter which look for literal exprs in the 1st argument
yoda_test_linter which does the same
The text was updated successfully, but these errors were encountered:
I'm not sure whether it's good to call the rep(1:3, n) expression a constant (but willing to call it "almost constant").
Regarding functions used: 1:3 == seq_len(3) is what I default to due to 1:n being bad for n == 0.
This means we could whitelist seq, seq_len, seq_along and seq.int as well.
Follow-up to #957 (comment)
There are a few places that would benefit from some shared logic about what constitutes a "literal expression" along the lines of these:
but excluding non-constant expressions like:
I think
c()
andrep()
are the most common ways to build constant expressions, so we can limit it to combinations of those. Note that I considerrep(1:3, n)
as being "constant" here, as the variable part is "constant enough" for the places where we'd use this:strings_as_factors_linter
which looks fordata.frame
s declared with known-character columnsexpect_{type,length,named,s3_class}_linter
which look for literal exprs in the 1st argumentyoda_test_linter
which does the sameThe text was updated successfully, but these errors were encountered: