From 68571cceeb663340bc196a6f01e022713a1eb233 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sat, 20 May 2023 14:35:37 +0200 Subject: Ideas for getting a FuncLit from an `*ast.Ident` variable --- capturedrefrace.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/capturedrefrace.go b/capturedrefrace.go index 54c5c04..3d7dd3a 100644 --- a/capturedrefrace.go +++ b/capturedrefrace.go @@ -144,6 +144,19 @@ func run(pass *analysis.Pass) (interface{}, error) { return nil, nil } +func funcLitFromIdent(ident *ast.Ident) *ast.FuncLit { + assignStmt, ok := funcIdent.Obj.Decl.(*ast.AssignStmt) + if ok { + // TODO: Get assignStmt.Rhs[position of ident name in assignStmt.Lhs] + for _, expr := range assignStmt.Rhs { + fl, ok := expr.(*ast.FuncLit) + if ok { + fmt.Printf("funclit: %#v\n", fl) + } + } + } +} + // checkClosure reports variables used in funcLit that are captured from an // outer scope. func checkClosure(pass *analysis.Pass, funcLit *ast.FuncLit) { -- cgit v1.2.3