Comments (3)
We could also print all statement containing dereference.
To do so we could walk throw function statements and for each statement try to simplify it changing ast (it would also be helpful to quickfix it). If simplified statement wouldn't be equal to original we should warn.
Also it would work good in statements like so
(*a).f((*c).f1((*d).e))))
from go-critic.
Now I think doing several replacements in a row makes interpreting warning message harder.
Maybe it's not worth it?
from go-critic.
I also think that for function calls it's OK to print undereferenced function expression without arguments.
Arguments only add a noise to a warning message.
from go-critic.
Related Issues (20)
- httpNoBody: also warn on using "nil" instead of "http.NoBody" on (net/http/httptest).NewRequest HOT 3
- go1.21: load rules: parse rules file: typechecker error: ...: could not import HOT 5
- sloppyTestFuncName incorrectly identifies helper function HOT 2
- new check: find identical condition
- bug: `rangeValCopy` still panics on code with generics HOT 3
- new check: I/O find close twice HOT 1
- go1.21: load embedded ruleguard rules: rules/rules.go:13: can't load fmt HOT 14
- unlambda: false positive HOT 1
- timeCmpSimplify: false positive, not before is unequal to after HOT 2
- dynamicFmtString: use rather fix errors.New than fmt.Errorf("%s" HOT 2
- new check: detect unnecessary gomock controller Finish call HOT 1
- `gocritic check` panics with invalid memory address or nil pointer dereference HOT 4
- emptyStringTest: handle len(s) > 0
- Please elaborate docs for `hugeParam`: Why 80 as default? HOT 4
- Disabling a non-existant check should not be a fatal error HOT 4
- deferUnlambda: False positive for mutated variable HOT 2
- Upgrade to golang 1.22 HOT 1
- explicitly enabled check is disabled by tag HOT 2
- feature request: able to disable `hugeParam` for some structs via `.golangci.yaml` HOT 2
- check/importShadow: panic due to concurrent access of `PkgObjects` map HOT 15
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from go-critic.