-
Notifications
You must be signed in to change notification settings - Fork 130
Closed
Description
Hello,
I know it's a bit early but I started to work on go1.21 for golangci-lint.
golangci/golangci-lint#3922
And there is an issue with go-critic.
I run the tests of go-critic and there is the same problem:
ruleguard init error, skip ./rules.go: typechecker error: ./rules.go:6:8: could not import github.com/quasilyte/go-ruleguard/dsl (can't find import: "github.com/quasilyte/go-ruleguard/dsl")
Currently, I don't know the root cause but I want to share it with you, I think will you see the problem faster than me.
Maybe it's related to the new package initialization order, I don't know.
go test
$ go test ./...
go: downloading github.com/cristalhq/acmd v0.11.1
go: downloading golang.org/x/exp/typeparams v0.0.0-20230213192124-5e25df0256eb
? github.com/go-critic/go-critic [no test files]
? github.com/go-critic/go-critic/checkers/analyzer [no test files]
? github.com/go-critic/go-critic/checkers/internal/astwalk [no test files]
? github.com/go-critic/go-critic/checkers/internal/linttest [no test files]
? github.com/go-critic/go-critic/checkers/internal/lintutil [no test files]
? github.com/go-critic/go-critic/checkers/rules [no test files]
? github.com/go-critic/go-critic/checkers/rulesdata [no test files]
? github.com/go-critic/go-critic/cmd/gocritic-analysis [no test files]
? github.com/go-critic/go-critic/cmd/makedocs [no test files]
? github.com/go-critic/go-critic/framework/linter [no test files]
--- FAIL: TestIntegration (11.70s)
--- FAIL: TestIntegration/ruleguard (1.30s)
integration.go:103: linttest.params:1: output mismatch:
[]string{
"exit status 1",
strings.Join({
- "./f1.go:8:1: ruleguard: error as an underlying type is probably ",
- "a mistake",
+ "ruleguard init error, skip ./rules.go: typechecker error: ./rule",
+ "s.go:6:8: could not import github.com/quasilyte/go-ruleguard/dsl",
+ ` (can't find import: "github.com/quasilyte/go-ruleguard/dsl")`,
}, ""),
strings.Join({
"./f1.go:1",
- "2:36: ruleguard: suggestion: s1+s2",
+ ":1: ruleguard: execution error: used Run() with an empty rule se",
+ "t; forgot to call Load() first?",
}, ""),
- `./f1.go:29:6: ruleguard: use errors.New(k()) or fmt.Errorf("%s", k()) instead`,
}
integration.go:104: linter output was: exit status 1
ruleguard init error, skip ./rules.go: typechecker error: ./rules.go:6:8: could not import github.com/quasilyte/go-ruleguard/dsl (can't find import: "github.com/quasilyte/go-ruleguard/dsl")
./f1.go:1:1: ruleguard: execution error: used Run() with an empty rule set; forgot to call Load() first?
integration.go:103: linttest.params:2: output mismatch:
[]string{
"exit status 1",
strings.Join({
- `./f1.go:29:6: ruleguard: use errors.New(k()) or fmt.Errorf("%s",`,
- " k()) instead",
+ "ruleguard init error, skip ./rules.go: typechecker error: ./rule",
+ "s.go:6:8: could not import github.com/quasilyte/go-ruleguard/dsl",
+ ` (can't find import: "github.com/quasilyte/go-ruleguard/dsl")`,
}, ""),
+ "./f1.go:1:1: ruleguard: execution error: used Run() with an empty rule set; forgot to call Load() first?",
}
integration.go:104: linter output was: exit status 1
ruleguard init error, skip ./rules.go: typechecker error: ./rules.go:6:8: could not import github.com/quasilyte/go-ruleguard/dsl (can't find import: "github.com/quasilyte/go-ruleguard/dsl")
./f1.go:1:1: ruleguard: execution error: used Run() with an empty rule set; forgot to call Load() first?
integration.go:103: linttest.params:3: output mismatch:
[]string{
"exit status 1",
strings.Join({
- "./f1.go:18:2: ruleguard: may be simplified to one if",
+ "ruleguard init error, skip ./rules.go: typechecker error: ./rule",
+ "s.go:6:8: could not import github.com/quasilyte/go-ruleguard/dsl",
+ ` (can't find import: "github.com/quasilyte/go-ruleguard/dsl")`,
}, ""),
strings.Join({
"./f1.go:1",
- "2",
":1",
- "0",
": ruleguard: ",
- "regexp compilation should be avoided on the hot paths",
+ "execution error: used Run() with an empty rule set; forgot to ca",
+ "ll Load() first?",
}, ""),
- `./f1.go:29:6: ruleguard: use errors.New(k()) or fmt.Errorf("%s", k()) instead`,
}
integration.go:104: linter output was: exit status 1
ruleguard init error, skip ./rules.go: typechecker error: ./rules.go:6:8: could not import github.com/quasilyte/go-ruleguard/dsl (can't find import: "github.com/quasilyte/go-ruleguard/dsl")
./f1.go:1:1: ruleguard: execution error: used Run() with an empty rule set; forgot to call Load() first?
integration.go:103: linttest.params:4: output mismatch:
[]string{
"exit status 1",
strings.Join({
- "./f1.go:8:1: ruleguard: error as an underlying type is probably ",
- "a mistake",
+ "ruleguard init error, skip ./rules.go: typechecker error: ./rule",
+ "s.go:6:8: could not import github.com/quasilyte/go-ruleguard/dsl",
+ ` (can't find import: "github.com/quasilyte/go-ruleguard/dsl")`,
}, ""),
strings.Join({
"./f1.go:1",
- "8:2: ruleguard: may be simplified to one if",
+ ":1: ruleguard: execution error: used Run() with an empty rule se",
+ "t; forgot to call Load() first?",
}, ""),
- "./f1.go:12:36: ruleguard: suggestion: s1+s2",
- `./f1.go:29:6: ruleguard: use errors.New(k()) or fmt.Errorf("%s", k()) instead`,
}
integration.go:104: linter output was: exit status 1
ruleguard init error, skip ./rules.go: typechecker error: ./rules.go:6:8: could not import github.com/quasilyte/go-ruleguard/dsl (can't find import: "github.com/quasilyte/go-ruleguard/dsl")
./f1.go:1:1: ruleguard: execution error: used Run() with an empty rule set; forgot to call Load() first?
--- FAIL: TestIntegration/ruleguard-glob (0.24s)
integration.go:103: linttest.params:1: output mismatch:
[]string{
"exit status 1",
strings.Join({
- "./file.go:20:2: ruleguard: maybe mu.RLock() was intended?",
+ "ruleguard init error, skip rules1.go: typechecker error: rules1.",
+ "go:5:8: could not import github.com/quasilyte/go-ruleguard/dsl (",
+ `can't find import: "github.com/quasilyte/go-ruleguard/dsl")`,
}, ""),
strings.Join({
- "./file.go:10:16: ruleguard: suggestion: filepath.Separator",
+ "ruleguard init error, skip rules2.go: typechecker error: rules2.",
+ "go:5:8: could not import github.com/quasilyte/go-ruleguard/dsl (",
+ `can't find import: "github.com/quasilyte/go-ruleguard/dsl")`,
}, ""),
+ "./file.go:1:1: ruleguard: execution error: used Run() with an empty rule set; forgot to call Load() first?",
}
integration.go:104: linter output was: exit status 1
ruleguard init error, skip rules1.go: typechecker error: rules1.go:5:8: could not import github.com/quasilyte/go-ruleguard/dsl (can't find import: "github.com/quasilyte/go-ruleguard/dsl")
ruleguard init error, skip rules2.go: typechecker error: rules2.go:5:8: could not import github.com/quasilyte/go-ruleguard/dsl (can't find import: "github.com/quasilyte/go-ruleguard/dsl")
./file.go:1:1: ruleguard: execution error: used Run() with an empty rule set; forgot to call Load() first?
--- FAIL: TestIntegration/ruleguard-multi (0.32s)
integration.go:103: linttest.params:1: output mismatch:
[]string{
"exit status 1",
strings.Join({
- "./file.go:20:2: ruleguard: maybe mu.RLock() was intended?",
+ "ruleguard init error, skip rules1.go: typechecker error: rules1.",
+ "go:5:8: could not import github.com/quasilyte/go-ruleguard/dsl (",
+ `can't find import: "github.com/quasilyte/go-ruleguard/dsl")`,
}, ""),
strings.Join({
- "./file.go:10:16: ruleguard: suggestion: filepath.Separator",
+ "ruleguard init error, skip rules2.go: typechecker error: rules2.",
+ "go:5:8: could not import github.com/quasilyte/go-ruleguard/dsl (",
+ `can't find import: "github.com/quasilyte/go-ruleguard/dsl")`,
}, ""),
+ "./file.go:1:1: ruleguard: execution error: used Run() with an empty rule set; forgot to call Load() first?",
}
integration.go:104: linter output was: exit status 1
ruleguard init error, skip rules1.go: typechecker error: rules1.go:5:8: could not import github.com/quasilyte/go-ruleguard/dsl (can't find import: "github.com/quasilyte/go-ruleguard/dsl")
ruleguard init error, skip rules2.go: typechecker error: rules2.go:5:8: could not import github.com/quasilyte/go-ruleguard/dsl (can't find import: "github.com/quasilyte/go-ruleguard/dsl")
./file.go:1:1: ruleguard: execution error: used Run() with an empty rule set; forgot to call Load() first?
FAIL
FAIL github.com/go-critic/go-critic/checkers 16.219s
ok github.com/go-critic/go-critic/cmd/gocritic 0.001s
ok github.com/go-critic/go-critic/linter 0.001s
--- FAIL: TestRules (0.38s)
analysistest.go:300: error analyzing ruleguard@_/home/ldez/sources/golangci-lint/go-critic/rulestest/testdata/checkers: load rules: parse rules file: typechecker error: ../rules.go:5:2: could not import github.com/quasilyte/go-ruleguard/dsl (can't find import: "github.com/quasilyte/go-ruleguard/dsl")
FAIL
FAIL github.com/go-critic/go-critic/rulestest 0.382s
FAIL
schneiderfelipe
Metadata
Metadata
Assignees
Labels
No labels