From 2a35f2f81652a3954522333796d648892f3be4ba Mon Sep 17 00:00:00 2001 From: des <18638715007@163.com> Date: Thu, 26 Feb 2026 11:37:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=AA=E5=AE=8C=E6=88=90=E7=9A=84=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- srv/cmd/tool/cfg.go | 7 +++++-- srv/cmd/tool/main.go | 13 +++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/srv/cmd/tool/cfg.go b/srv/cmd/tool/cfg.go index baa67dc..0e6fb15 100644 --- a/srv/cmd/tool/cfg.go +++ b/srv/cmd/tool/cfg.go @@ -1,6 +1,9 @@ package tool +// Karmaforge 因果熔炉 +// 这个函数会被引用,并且最终被代码生成所重写 func Karmaforge[T any](params ...any) *T { - var result T - return &result + panic("在使用因果熔炉之前,需要执行仪式") + // var result T + // return &result } diff --git a/srv/cmd/tool/main.go b/srv/cmd/tool/main.go index 2eb9d50..3086fdd 100644 --- a/srv/cmd/tool/main.go +++ b/srv/cmd/tool/main.go @@ -2,6 +2,7 @@ package tool import ( "fmt" + "go/types" "os" "path/filepath" "strings" @@ -41,6 +42,18 @@ func main() { panic(err) } for _, pkg := range pkgs { + top := pkg.Types.Scope() + funcs := []*types.Func{} + for _, name := range top.Names() { + obj := top.Lookup(name) + if !strings.HasSuffix(obj.Name(), "Provider") { + continue + } + fun, ok := obj.(*types.Func) + if ok { + funcs = append(funcs, fun) + } + } fmt.Println(pkg.Name) } }