Skip to content

Golang linter, lint pass any slice as any in variadic function

License

Notifications You must be signed in to change notification settings

alingse/asasalint

Folders and files

NameName
Last commit message
Last commit date

Latest commit

067e97f · May 22, 2023

History

60 Commits
Oct 8, 2022
Jul 16, 2022
Jul 22, 2022
Jul 16, 2022
Jul 10, 2022
Jul 4, 2022
Jul 16, 2022
Aug 19, 2022
Jul 22, 2022
Jul 16, 2022
May 22, 2023
May 22, 2023

Repository files navigation

asasalint

Golang linter, lint that pass any slice as any in variadic function

Install

go install github.com/alingse/asasalint/cmd/asasalint@latest

Usage

asasalint ./...

ignore some func that was by desgin

asasalint -e append,Append ./...

Why

two kind of unexpected usage, and go build success

package main

import "fmt"

func A(args ...any) int {
    return len(args)
}

func B(args ...any) int {
    return A(args)
}

func main() {

    // 1
    fmt.Println(B(1, 2, 3, 4))
}
package main

import "fmt"

func errMsg(msg string, args ...any) string {
    return fmt.Sprintf(msg, args...)
}

func Err(msg string, args ...any) string {
    return errMsg(msg, args)
}

func main() {

    // p1 [hello world] p2 %!s(MISSING)
    fmt.Println(Err("p1 %s p2 %s", "hello", "world"))
}

TODO

  1. given a SuggestEdition
  2. add append to default exclude ?
  3. ingore pattern fn(a, b, []any{1,2,3}) , because []any{1,2,3} is most likely by design