1
0
mirror of https://github.com/mgechev/revive.git synced 2024-11-24 08:32:22 +02:00
Commit Graph

220 Commits

Author SHA1 Message Date
Ivan Trubach
dc30eb1182
fix(receiver-naming): distinguish types with parameters (#692)
* fix(receiver-naming): distinguish types with parameters

* chore: run tests using supported Go versions matrix
2022-06-18 18:47:53 +02:00
Ville Skyttä
4daa573afe
fix(var-naming): set node to package name for underscore in package name (#689)
Setting the entire file AST as the node causes golangci-lint to print
the entire file source as the context, and line and column numbers set
to 1. Point to the package name node instead.

Closes #688
2022-05-23 12:30:25 +02:00
Yudai Takada
e10678fea5
Fixes issue #619 imports-blacklist support regex (#684)
* Fixes issue #619 imports-blacklist support regex

* refactors method name and error message

* restores original test cases

Co-authored-by: chavacava <salvadorcavadini+github@gmail.com>
2022-04-21 16:04:00 +02:00
chavacava
a67ecdd7ba
add rule datarace (#683) 2022-04-18 09:45:42 -07:00
chavacava
04728cf0de
Lint cleanup (#679) 2022-04-10 11:55:13 +02:00
chavacava
31fbdb1833
Fix/677 (#678) 2022-04-10 09:06:59 +02:00
Markus Zimmermann
b9814276b6
Remove built-in types that existing only for the Go documentation (#675)
Since these types only exist for documenting Go's standard library there
should be no reason to mark them.

Closes #673
2022-04-08 15:18:18 +02:00
Markus Zimmermann
23828cc39d
Remove debugging output (#672)
Noticed during migration from our heavily modified "go-lint" to "revive" that there is an additional line printed. I am unsure that the convention for this project is on this, we do not allow adding such a call.
2022-04-07 13:05:51 -07:00
chavacava
b6c86a274f
fix issue 664 (#665) 2022-03-31 17:40:26 +02:00
chavacava
671c55d82e
adds rule use-any (#660) 2022-03-29 11:25:38 -07:00
chavacava
fa939adbf0
Adds support for new type alias any in the rule redefines-built-in (#659)
* adds support for any type alias

* adds more representative tests
2022-03-29 10:51:01 +02:00
chavacava
5ce2ff53c0
removes duplicated utility function (#652) 2022-03-18 15:00:41 +01:00
Bernhard Reisenberger
f335f9792d
range-val-address: improve detection (#647) 2022-03-12 09:32:57 +01:00
subham sarkar
577441d60c
format sources w/ gofumpt (#643)
Signed-off-by: subham sarkar <sarkar.subhams2@gmail.com>
2022-03-02 08:24:55 +01:00
subham sarkar
54d9a09ab5
Incorrect handling of token.{LEQ,GEQ} for constant-logical-expr (#642)
* fix: incorrect handling of token.{LEQ,GEQ} for constant-logical-expr lint

Signed-off-by: subham sarkar <sarkar.subhams2@gmail.com>

* tiny modification in comments

Co-authored-by: chavacava <salvadorcavadini+github@gmail.com>
2022-02-27 09:37:51 +01:00
chavacava
d4fbc92440
fix issue #637 (#638) 2022-02-15 22:46:24 +01:00
Oleg Butuzov
6545203e2d
refactor(cyclomatic): improved message for cyclomatic rule (#629) 2022-01-31 17:33:43 +01:00
Ludovic Fernandez
47a1cedde5
fix: invalid rule name in error message (#627) 2022-01-27 08:32:08 +01:00
chavacava
b721f69625
fix #622 (Rule 'var-naming' should allow Fuzz_xxx) (#623) 2022-01-18 15:26:29 +01:00
Euan Kemp
af953e6189
Allow whitelist for the context parameter check (#616)
* Allow a whitelist for the context parameter check

This allows users to configure a set of types that may appear before
`context.Context`.

Notably, I think this rule is useful for allowing the `*testing.T` type
to come before `context.Context`, though there may be other uses (such
as putting a tracer before it, etc).

See #605 for a little more context on this.

Fixes #605

* Save a level of indentation in context-as-arg validation

We can unindent if we make the above check more specific

* refactoring taking into account chavacava's review

Co-authored-by: chavacava <salvadorcavadini+github@gmail.com>
2021-12-31 17:11:18 -08:00
doniacld
faba17a90f
Fix package check in error-strings rule (#610) (#611)
Co-authored-by: SalvadorC <salvadorcavadini+github@gmail.com>
2021-10-30 08:45:37 +02:00
doniacld
0fada9d76c
Update error-strings rule (#608) (#609)
Co-authored-by: SalvadorC <salvadorcavadini+github@gmail.com>
2021-10-28 21:26:02 +02:00
SalvadorC
2c895fb33f
Code cleanup (#606) 2021-10-23 13:25:41 +02:00
doniacld
5d04216294
Add optimize-operands-order rule (#599) (#603)
Co-authored-by: SalvadorC <salvadorcavadini+github@gmail.com>
2021-10-23 09:29:14 +02:00
zeripath
3f99b6ceb1
File file-header.go (#601)
Add missing fmt import
2021-10-17 21:12:36 +02:00
SalvadorC
76b8c57329
Memoization of rule arguments (#595) 2021-10-17 20:34:48 +02:00
chavacava
55e1594efd fixes false positive in unconditional-recursion 2021-10-15 13:14:03 -07:00
doniacld
be81121399
Add banned characters rule (#532) (#591) 2021-10-14 20:56:29 +02:00
sina safari
62db66915b
add new rule time equal (#584) 2021-10-01 13:55:53 +02:00
sina safari
0bcc996acf
fixed some complex code (#580) 2021-09-26 08:28:58 +02:00
Oleg Butuzov
d7e3d5eac7
fix: time-naming issue #571 (#572)
resolves #571
2021-09-12 16:09:14 -07:00
Oleg Butuzov
9b85893ff8
fix: switch to re.MatchString(string) instead re.Match([]byte(string)) (#574)
removes heaps allocation, feels more "native"
2021-09-12 16:05:42 -07:00
SalvadorC
18cdb55850
Exported config (#565)
* working version

* adds flag for replacing "stutters"
2021-08-26 08:36:24 -07:00
Bernhard Reisenberger
406b1ce110
range-val-address: fix false positive (#554)
range-val-address: fix false positive (closes #554)
2021-08-26 08:41:58 +02:00
SalvadorC
097f0bb533
better messages for rules' config errors (#563) 2021-08-17 12:14:42 -07:00
SalvadorC
28559501d3
fix issue 556 (#557) 2021-08-16 12:15:17 +02:00
SalvadorC
c939bb6af8
add new rule useless-break (#551) 2021-08-15 15:30:08 -07:00
chris erway
7dde483bac
Add Unwrap to common methods (#547) 2021-07-28 10:50:09 +02:00
SalvadorC
cfac8b0013
fix 534 (#536)
Closes #534
2021-06-29 21:40:40 +02:00
Robert Deusser
575ce5f61a
new rule: nested-structs (#530)
new rule: nested-structs
2021-06-15 11:36:41 +02:00
sina safari
b5ff6325c2
simplify: redundant map composite literal (#528) 2021-05-31 21:54:58 +02:00
SalvadorC
97ef50d9f7
fix 525 (#526) 2021-05-25 15:09:05 -07:00
SalvadorC
b298ffe4ee
Adds configuration option to enable all available rules (#521)
Adds configuration option to enable all available rules
2021-05-21 09:53:10 +02:00
Bernhard Reisenberger
3bac05c7a4
range-val-address: improve detection (#514)
range-val-address: improve detection
2021-05-03 14:22:35 +02:00
Keith Scroggs
2afe668e7b
Check string literals against regular expressions (#511)
Add string-format rule
2021-04-18 18:35:30 +02:00
SalvadorC
46f65914e3
new rule function-length (#504) 2021-03-20 15:45:30 -07:00
Ahmed
f8f4bf23a4
Add goreleaser & a gh workflow (#503)
* Add goreleaser & a gh workflow

* format code
2021-03-18 15:10:22 -07:00
Jakub Chábek
535f426fb8
Ignore blank import of embed if embed is actually used in the file (#501)
* Ignore blank import of embed
2021-03-06 14:04:57 +01:00
Minko Gechev
688024a5ca
Add revive linting action and fix linting errors (#455) 2020-08-15 00:50:13 +03:00
SalvadorC
fcccdca4e3
fixes issue #451 (#452) 2020-08-05 19:25:57 +03:00
SalvadorC
1412d0c6ed
new rule: unexported-naming (#443)
* new rule: unexported-naming

* better failure message
2020-07-23 02:17:20 +03:00
chavacava
ad3100c9ec adds defer rule 2020-06-08 09:40:38 -07:00
chavacava
e9bdc9ed8f removes type-checking from empty-block rule 2020-05-20 12:05:56 -07:00
chavacava
ef265b07dd removes commented code 2020-05-13 23:42:09 +02:00
chavacava
65beded8c4 Merge remote-tracking branch 'upstream/master' into unconditional-recursion 2020-05-13 22:13:08 +02:00
SalvadorC
1da965b65f
fix issue 386: Incorrectly identifies channel draining as "empty code… (#415)
* fix issue 386: Incorrectly identifies channel draining as "empty code block"

* updates doc of empty-block rule
2020-05-10 17:43:56 -07:00
chavacava
7a55cafc36 adds support for control exit statements 2020-05-09 21:43:12 +02:00
chavacava
91adb8bc8a first working version 2020-05-09 17:10:34 +02:00
chavacava
5939a81c8a removes unused code 2020-05-08 22:43:14 +02:00
chavacava
0c49c6a991 identical-branches initial implementation 2020-05-08 22:08:16 +02:00
chavacava
579c7c761f utils.gofmt now accepts a interface{} 2020-05-08 22:08:16 +02:00
SalvadorC
67c83886d7
Late return rule (#406)
* fisrt working version of late-return rule

* late-update: adds doc

* renames to early-return

* fix rule failure condition

* fix alphabetical sorting of early-return
2020-05-08 11:14:21 -07:00
Bernhard Reisenberger
22014c3f08
Add rule 'range-val-address' (#353)
* Add rule 'range-val-address'

* range-val-address: replace pick with visitor; avoid nesting; improve failure message

* range-val-address: not all callexprs are bad. limit to 'append'
2020-02-26 10:33:00 -10:00
SalvadorC
8f61c9ad71
fix issue #355 (#356) 2020-02-26 10:32:47 -10:00
SalvadorC
a24e8e7b81
String of int (#342)
* string-of-int: working version

* adds doc of string-to-int
2020-02-18 09:38:01 -08:00
SalvadorC
2bec93f05f fixes issue 290 (#294) 2020-01-07 14:46:21 -08:00
SalvadorC
9d5ed110c9 fixes issue #280 (#282) 2019-12-21 12:17:51 -08:00
chavacava
777e1b9e60 simpler implem of binEpr complexity computation 2019-12-17 22:11:32 +01:00
chavacava
e63e7cbd3d fixes computation of complexity of Bool exprs 2019-12-16 23:02:12 +01:00
chavacava
0cdcc25bc7 removes unused return value 2019-12-15 10:57:26 +01:00
chavacava
d877a0d7e8 fix binexp complexity logic 2019-12-14 16:18:53 +01:00
chavacava
2eae0cd122 fix method comment 2019-12-14 09:12:36 +01:00
chavacava
611c6f7c81 firts working version 2019-12-14 08:27:06 +01:00
dshemin
a5c77eed9f Add check for argument length to "file-header" rule 2019-12-02 02:04:49 +07:00
dshemin
9bb943735e Fix review comments 2019-11-28 10:14:21 +07:00
dshemin
3c93b9c1a4 Fix #245 File header rule: index out of range [0] with length 0 2019-11-28 01:38:43 +07:00
SalvadorC
84deee4163 fixes issue #229 (#231) 2019-09-10 10:26:47 -07:00
SalvadorC
9649b1c2a1 fix 208 struct-tag linter false positive (#209) 2019-08-05 09:21:20 -07:00
SalvadorC
c967fd68ea struct-tag warns on private fields with tags (#131) 2019-06-01 10:34:43 +02:00
SalvadorC
c8ee35a500 adds blacklist to unhandled-error (#128)
* adds blacklist for unhandled-error

* uses ignoreList in place of blackList
2019-04-29 19:56:12 -07:00
SalvadorC
8aa0cd8bd4 unhandled-error (new rule) (#124)
* unhandled-error (new rule)

* better failure msg

* encapsulates error type detection
2019-04-27 19:23:17 -07:00
SalvadorC
e8c1baf8ac optimizes import-blacklist (#123) 2019-04-22 10:58:02 -07:00
SalvadorC
2474f6cecb simpler and more efficient implementation of unused-parameter (#121) 2019-04-21 10:13:03 -07:00
SalvadorC
00a86ae1fd new rule: unused-receiver (#119)
* new rule: unused-receiver

* unused-receiver: adds more test cases
2019-04-18 10:35:51 -07:00
SalvadorC
745bcf65aa bare-return (first working version) (#117)
New rule bare-return
2019-04-17 22:55:52 +02:00
SalvadorC
2ce440cf96 new rule: import shadowing (#114)
* Adds rule superfluous-else (an extension of indent-error-flow)

* Fix superfluous-else rule struct namming.

* Adds superfuous-else rule to the rules table

* Adds confusing-naming rule

* adds multifile test

* clean-up

* fix config.go

* clean master

* new ADS rule: newerr

* ADS-print working version

* ads-print final version

* ads-lost-err working version

* fix ads-print

* removes ads rules from master

* new rule: import-shadowing

* removes ads rules from master

* new rule: import-shadowing

* fix defaults

* adds explanations on the rule implementation
2019-03-27 11:46:20 -07:00
Dian
44eed7edb7 fix error return rule to allow multiple error return values (#110)
* fix error return rule to allow multiple error return values

please check golint related updates here: golang/lint@8379672

When returning multiple values with an error,
lint checks if the error is the last return value.
But the implementation actually is checking for all return values
except for the last one, and throw the alert if it found an error.

There is a (edge) case where some function returning more than one error
is getting a false positive even when the last return value is an error.

This patch adds an early check, to see if the last return value is an error
and if so, it will pass silently.

* Fix return error

* add test changes
2019-03-20 11:54:27 -07:00
SalvadorC
fbefad8558 New rule: duplicated-imports (#111)
* Adds rule superfluous-else (an extension of indent-error-flow)

* Fix superfluous-else rule struct namming.

* Adds superfuous-else rule to the rules table

* Adds confusing-naming rule

* adds multifile test

* clean-up

* fix config.go

* clean master

* new ADS rule: newerr

* ADS-print working version

* ads-print final version

* ads-lost-err working version

* adds duplicated-imports rule

* adds duplicated-imports rule
2019-03-20 11:54:03 -07:00
SalvadorC
55fe366696 call-to-gc (new rule) (#90) 2018-10-31 07:32:23 -07:00
mgechev
376425d517
refactor: remove URL field from the failure struct 2018-10-30 15:37:27 -07:00
xuri
3c177e2824 New rule: line-length-limit (#86)
* New rule: line-length-limit

* simplify the panic message of rule line-length-limit

* Refactors `line-length-limit` rule, use private `check` method instead of `Visit`
2018-10-19 08:18:33 -04:00
SalvadorC
3cae2fa6f9
Update empty-lines.go
removes warning on unused parameter
2018-10-13 20:13:29 +02:00
Genadi Samokovarov
b7d9bce0b6 Fix the same-line comments detection in the empty-lines rule
Fixes #84.
2018-10-13 09:47:29 -07:00
Genadi Samokovarov
04516d2f82 Handle multi-line statements edge-cases in the multi-line rule (#83)
There were many cases where the multi-line statements at the end of a
block were marked as containing empty lines, while they didn't. Or vice
versa.
2018-10-12 22:38:08 -07:00
Genadi Samokovarov
d2e0e5a0ed Introduce the empty-lines rule that verifies there are no {head,trail}ing lines (#81) 2018-10-11 14:52:46 -07:00
SalvadorC
da63d0a965 Refactors atomic rule code to move gofmt function to utils.go (issue #79) (#80)
* Refactoring on atomic rule:
-Main modification: move func gofmt to utils.go

* Refactoring on constant-logical-expr rule
Simplifies equality check of subexpressions by using gofmt function
2018-10-03 11:56:57 -07:00
xuri
7d2c43c827
Rename rule name waitgroup-by-copy to waitgroup-by-value 2018-10-03 16:01:41 +08:00
xuri
9545122d39 New rule: atomic (#77) 2018-10-01 12:24:17 -07:00
SalvadorC
6ebe5bbb1e waitgroup-by-value (new rule) (#76)
* waitgroup-by-value (new rule)

* code simplification
2018-09-30 12:29:11 -07:00
SalvadorC
f3834d0604
Removes linter warning
Renamed unused parameter `arguments` to `_`
2018-09-29 07:04:10 +02:00