You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

golangci-lint中forbidigo规则无法匹配Times(1)函数调用的问题求助

golangci-lint中forbidigo规则无法匹配Times(1)函数调用的问题求助

各位golangci-lint的大佬们,最近碰到个棘手的小问题,想请教下大家:

我想用forbidigo规则来禁止代码中多余的.Times(1)调用(毕竟gomock里默认就是单次调用,显式写出来纯属冗余),但不管怎么调整正则pattern,规则就是匹配不到代码里的目标调用,完全不触发lint警告,实在搞不懂哪里出问题了。

先贴一下我的forbidigo配置:

forbidigo:
  forbid:
    - pattern: Times\(1\)
      msg: "No need to specify Times(1) for a single call."

然后是那段完全没被拦截的代码:

mockMarketDataService.EXPECT().GetLatestPrice(
    matchers.Ctx,
    enums.ChainNetworkSol,
    solana_go.WrappedSol.String(),
    enums.QuoteTokenNative,
).Return(solPrice, nil).Times(1)

我已经试过各种正则排列组合了:

  • 把pattern改成.Times(,想先匹配所有Times调用试试,结果还是没反应
  • 甚至直接写Times(1)(没加转义符)也没用
  • 尝试过用.*Times\(1\)这种通配前缀的写法,依旧不生效

有没有大佬知道这是咋回事?难道forbidigo对链式调用里的方法匹配有特殊逻辑?还是我的正则写法哪里踩坑了?麻烦帮忙指点一下,万分感谢!

火山引擎 最新活动