aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/declextract/interface.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2025-04-14 08:03:22 +0200
committerDmitry Vyukov <dvyukov@google.com>2025-04-15 08:30:57 +0000
commitc7e92da6cb06679b04062786481f50e42c585bfc (patch)
treeea62c10f126ecf9580aaaf9e6c5a42665ace84d8 /pkg/declextract/interface.go
parent9117e5af6f73d893bff315f64d797ff6466146eb (diff)
tools/syz-declextract: extract function references more precisely
Currently we misparse some function references, e.g. for: .write = (foo) ? bar : baz, we extract "foo". Extract first function reference from such expressions.
Diffstat (limited to 'pkg/declextract/interface.go')
-rw-r--r--pkg/declextract/interface.go9
1 files changed, 5 insertions, 4 deletions
diff --git a/pkg/declextract/interface.go b/pkg/declextract/interface.go
index e8ace450b..a1ba9c137 100644
--- a/pkg/declextract/interface.go
+++ b/pkg/declextract/interface.go
@@ -4,6 +4,7 @@
package declextract
import (
+ "fmt"
"slices"
"strings"
@@ -173,12 +174,12 @@ func (ctx *context) findFunc(name, file string) *Function {
return ctx.funcs[name]
}
-func (ctx *context) funcDefinitionFile(name, calledFrom string) string {
- fn := ctx.findFunc(name, calledFrom)
+func (ctx *context) mustFindFunc(name, file string) *Function {
+ fn := ctx.findFunc(name, file)
if fn == nil {
- return ""
+ panic(fmt.Sprintf("no func %q in %q", name, file))
}
- return fn.File
+ return fn
}
func fileNameSuffix(file string) string {