-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Range-Over-Function is not supported #4627
Comments
Hey, thank you for opening your first Issue ! 🙂 If you would like to contribute we have a guide for contributors. |
By default, we don't support Even with the right way to compile and run golangci-lint with $ GOEXPERIMENT=rangefunc ./golangci-lint run
ERRO [linters_context/goanalysis] buildir: panic during analysis: Cannot range over: func(func(int) bool), goroutine 856 [running]:
runtime/debug.Stack()
/usr/lib/go/src/runtime/debug/stack.go:24 +0x5e
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyzeSafe.func1()
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:104 +0x5a
panic({0x17486a0?, 0xc00c8af970?})
/usr/lib/go/src/runtime/panic.go:770 +0x132
honnef.co/go/tools/go/ir.(*builder).rangeStmt(0xc0025bd900, 0xc0023ae640, 0xc003952300, 0x0, {0x1c43458, 0xc003952300})
/home/ldez/sources/go/pkg/mod/honnef.co/go/tools@v0.4.7/go/ir/builder.go:2225 +0x894
honnef.co/go/tools/go/ir.(*builder).stmt(0xc0025bd900, 0xc0023ae640, {0x1c47970?, 0xc003952300?})
/home/ldez/sources/go/pkg/mod/honnef.co/go/tools@v0.4.7/go/ir/builder.go:2438 +0x20a
honnef.co/go/tools/go/ir.(*builder).stmtList(...)
/home/ldez/sources/go/pkg/mod/honnef.co/go/tools@v0.4.7/go/ir/builder.go:859
honnef.co/go/tools/go/ir.(*builder).stmt(0xc0025bd900, 0xc0023ae640, {0x1c47880?, 0xc00109f2c0?})
/home/ldez/sources/go/pkg/mod/honnef.co/go/tools@v0.4.7/go/ir/builder.go:2396 +0x1415
honnef.co/go/tools/go/ir.(*builder).buildFunction(0xc0025bd900, 0xc0023ae640)
/home/ldez/sources/go/pkg/mod/honnef.co/go/tools@v0.4.7/go/ir/builder.go:2508 +0x417
honnef.co/go/tools/go/ir.(*builder).buildFuncDecl(0xc0025bd900, 0xc000983ef0, 0xc00109f2f0)
/home/ldez/sources/go/pkg/mod/honnef.co/go/tools@v0.4.7/go/ir/builder.go:2545 +0x189
honnef.co/go/tools/go/ir.(*Package).build(0xc000983ef0)
/home/ldez/sources/go/pkg/mod/honnef.co/go/tools@v0.4.7/go/ir/builder.go:2649 +0xb46
sync.(*Once).doSlow(0xc0015021c0?, 0xc003952420?)
/usr/lib/go/src/sync/once.go:74 +0xc2
sync.(*Once).Do(...)
/usr/lib/go/src/sync/once.go:65
honnef.co/go/tools/go/ir.(*Package).Build(...)
/home/ldez/sources/go/pkg/mod/honnef.co/go/tools@v0.4.7/go/ir/builder.go:2567
honnef.co/go/tools/internal/passes/buildir.run(0xc0022c0820)
/home/ldez/sources/go/pkg/mod/honnef.co/go/tools@v0.4.7/internal/passes/buildir/buildir.go:86 +0x1b1
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyze(0xc001a9e480)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:190 +0xa02
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyzeSafe.func2()
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:112 +0x17
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc000825770, {0x196a615, 0x7}, 0xc000fd9748)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x44
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyzeSafe(0x0?)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:111 +0x7a
github.com/golangci/golangci-lint/pkg/goanalysis.(*loadingPackage).analyze.func2(0xc001a9e480)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_loadingpackage.go:80 +0xa8
created by github.com/golangci/golangci-lint/pkg/goanalysis.(*loadingPackage).analyze in goroutine 81
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_loadingpackage.go:75 +0x205
ERRO [linters_context/goanalysis] fact_purity: panic during analysis: interface conversion: interface {} is nil, not *buildir.IR, goroutine 900 [running]:
runtime/debug.Stack()
/usr/lib/go/src/runtime/debug/stack.go:24 +0x5e
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyzeSafe.func1()
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:104 +0x5a
panic({0x17f37c0?, 0xc002cf6180?})
/usr/lib/go/src/runtime/panic.go:770 +0x132
honnef.co/go/tools/analysis/facts/purity.purity(0xc0005d5e10)
/home/ldez/sources/go/pkg/mod/honnef.co/go/tools@v0.4.7/analysis/facts/purity/purity.go:109 +0x29d
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyze(0xc001a9e3f0)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:190 +0xa02
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyzeSafe.func2()
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:112 +0x17
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc000825770, {0x19b4160, 0xb}, 0xc000c97748)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x44
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyzeSafe(0xc0015edf20?)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:111 +0x7a
github.com/golangci/golangci-lint/pkg/goanalysis.(*loadingPackage).analyze.func2(0xc001a9e3f0)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_loadingpackage.go:80 +0xa8
created by github.com/golangci/golangci-lint/pkg/goanalysis.(*loadingPackage).analyze in goroutine 81
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_loadingpackage.go:75 +0x205
ERRO [linters_context/goanalysis] nilness: panic during analysis: interface conversion: interface {} is nil, not *buildir.IR, goroutine 849 [running]:
runtime/debug.Stack()
/usr/lib/go/src/runtime/debug/stack.go:24 +0x5e
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyzeSafe.func1()
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:104 +0x5a
panic({0x17f37c0?, 0xc001e58480?})
/usr/lib/go/src/runtime/panic.go:770 +0x132
honnef.co/go/tools/analysis/facts/nilness.run(0xc00c68d110)
/home/ldez/sources/go/pkg/mod/honnef.co/go/tools@v0.4.7/analysis/facts/nilness/nilness.go:65 +0x277
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyze(0xc001aaff70)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:190 +0xa02
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyzeSafe.func2()
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:112 +0x17
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc000825770, {0x196270b, 0x7}, 0xc000fd6f48)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x44
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyzeSafe(0x0?)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:111 +0x7a
github.com/golangci/golangci-lint/pkg/goanalysis.(*loadingPackage).analyze.func2(0xc001aaff70)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_loadingpackage.go:80 +0xa8
created by github.com/golangci/golangci-lint/pkg/goanalysis.(*loadingPackage).analyze in goroutine 81
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_loadingpackage.go:75 +0x205
ERRO [linters_context/goanalysis] typedness: panic during analysis: interface conversion: interface {} is nil, not *buildir.IR, goroutine 818 [running]:
runtime/debug.Stack()
/usr/lib/go/src/runtime/debug/stack.go:24 +0x5e
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyzeSafe.func1()
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:104 +0x5a
panic({0x17f37c0?, 0xc0023fade0?})
/usr/lib/go/src/runtime/panic.go:770 +0x132
honnef.co/go/tools/analysis/facts/typedness.run(0xc0022c1790)
/home/ldez/sources/go/pkg/mod/honnef.co/go/tools@v0.4.7/analysis/facts/typedness/typedness.go:59 +0x21d
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyze(0xc001aae590)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:190 +0xa02
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyzeSafe.func2()
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:112 +0x17
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc000825770, {0x1987dff, 0x9}, 0xc001be5f48)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x44
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyzeSafe(0xc0015edbc0?)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:111 +0x7a
github.com/golangci/golangci-lint/pkg/goanalysis.(*loadingPackage).analyze.func2(0xc001aae590)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_loadingpackage.go:80 +0xa8
created by github.com/golangci/golangci-lint/pkg/goanalysis.(*loadingPackage).analyze in goroutine 81
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_loadingpackage.go:75 +0x205
ERRO [runner] Panic: S1011: package "main" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not purity.Result: goroutine 838 [running]:
runtime/debug.Stack()
/usr/lib/go/src/runtime/debug/stack.go:24 +0x5e
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyzeSafe.func1()
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:108 +0x277
panic({0x17f37c0?, 0xc002cf66c0?})
/usr/lib/go/src/runtime/panic.go:770 +0x132
honnef.co/go/tools/simple.CheckLoopAppend(0xc000031040)
/home/ldez/sources/go/pkg/mod/honnef.co/go/tools@v0.4.7/simple/lint.go:795 +0x105
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyze(0xc001a9e360)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:190 +0xa02
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyzeSafe.func2()
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:112 +0x17
github.com/golangci/golangci-lint/pkg/timeutils.(*Stopwatch).TrackStage(0xc000825770, {0x195ccd5, 0x5}, 0xc000fdd748)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/timeutils/stopwatch.go:111 +0x44
github.com/golangci/golangci-lint/pkg/goanalysis.(*action).analyzeSafe(0x0?)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_action.go:111 +0x7a
github.com/golangci/golangci-lint/pkg/goanalysis.(*loadingPackage).analyze.func2(0xc001a9e360)
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_loadingpackage.go:80 +0xa8
created by github.com/golangci/golangci-lint/pkg/goanalysis.(*loadingPackage).analyze in goroutine 81
/home/ldez/sources/go/src/github.com/golangci/golangci-lint/pkg/goanalysis/runner_loadingpackage.go:75 +0x205
WARN [runner] Can't run linter goanalysis_metalinter: goanalysis_metalinter: S1011: package "main" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not purity.Result
ERRO Running error: can't run linter goanalysis_metalinter
goanalysis_metalinter: S1011: package "main" (isInitialPkg: true, needAnalyzeSource: true): interface conversion: interface {} is nil, not purity.Result |
@ldez the issue you mentioned is now completed, but on
UPD: I've read that typecheck "is not a real linter but rather reports compilation failures", but this works for me when golangci-lint fails:
|
Will wait for another month or so then :) (1.23 release should make this non-experiment) |
Welcome
Description of the problem
I tried to use the new experiment feature
Range-Over-Function
in Go1.22.I ensured
GOEXPERIMENT
is set correctly.I ensured the version of golangci-lint is latest.
I can build the whole package successfully by
go build
.But golangci-lint can't recognize it.
Version of golangci-lint
Configuration
No configuration file.
Go environment
Verbose output of running
A minimal reproducible example or link to a public repository
Validation
The text was updated successfully, but these errors were encountered: