golangci-lint 1.49.0版本,timeCmpSimplify linter规则错误,注意避坑

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Now()
    fmt.Println(!t.After(t))
    fmt.Println(t.Before(t))
}

相关问题记录:https://github.com/go-critic/go-critic/issues/1257

timeCmpSimplify recommends that you replace !time.Before() with time.After(), but these are not actually compatible (strictly-less being replaced with strictly-greater). Same with !time.After() and time.Before().

timeCmpSimplify会将代码 !t.After(t) 自动优化为 t.Before(t),这个变更实际长并不等价,缺少了严格等于的情况

 

解决方案:

禁用 timeCmpSimplify 规则

posted @ 2023-01-31 21:46  雪梨大佬  阅读(42)  评论(0编辑  收藏  举报