Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[skip-changelog] Added more lint checks and fixed some warnings. (#2610)
* Enabled more checks in golangci-lint * Removed unreachable code (impossible condition detected by linter) internal/arduino/sketch/sketch.go:108:14: nilness: impossible condition: non-nil == nil (govet) if mainFile == nil { ^ * Removed function alias for i18n.Tr This allows a deeper lint-check of printf style functions, like: commands/instances.go:344:46: printf: github.com/arduino/arduino-cli/internal/i18n.Tr format %v reads arg #1, but call has 0 args (govet) s := status.Newf(codes.FailedPrecondition, i18n.Tr("Loading index file: %v"), err) * Fixed a lot of i18n.Tr formatting errors This commit fixes invalid calls to i18n.Tr. 1. Missing positional arguments, for example: return fmt.Errorf(i18n.Tr("installing %[1]s tool: %[2]s"), tool, err) in the above case the positional arguments must be part of the Tr call: - return fmt.Errorf(i18n.Tr("installing %[1]s tool: %[2]s"), tool, err) + return fmt.Errorf(i18n.Tr("installing %[1]s tool: %[2]s", tool, err)) 2. This also makes the fmt.Errorf call useless and it could be replaced by the less expensive errors.New: - return fmt.Errorf(i18n.Tr("installing %[1]s tool: %[2]s", tool, err)) + return errors.New(i18n.Tr("installing %[1]s tool: %[2]s", tool, err)) but we have cases of useless calls even when the string is a constant, for example: - err := fmt.Errorf(i18n.Tr("no instance specified")) + err := errors.New(i18n.Tr("no instance specified")) Unfortunately, this imperfection is not detected by the linter. 3. The "%w" directive is not supported directly in i18n.Tr, so we have to wrap it around another fmt.Errorf: - return nil, fmt.Errorf(i18n.Tr("reading library headers: %w"), err) + return nil, fmt.Errorf("%s: %w", i18n.Tr("reading library headers"), err) * Removed useless call to i18n.Tr
- Loading branch information