Python (codegraph-kernel/src/python.rs) and Go (src/go.rs) join the native kernel, mirroring the wasm extractors bug-for-bug. Python: decorated_definition docstrings/decorators (decorates refs only for bare-identifier decorators — the call-kind quirk), function-in-class → method, module-level assignments always extract as variable, from-import per-name binding refs, self.x fn-ref candidates as bare names. Go: receiver methods with Recv::name qualified names + contains edges to the first earlier struct of that name, type_spec struct/interface classification with embedding→extends and interface method nodes, composite-literal instantiates keeping the package qualifier, top-level var/const initializer walks attributed to the declared symbol (#693), 2-hop field chains (#1276), New().Method() re-encode (#645/#608), and the GO_SPEC fn-ref layers. Grammars: tree-sitter-python 0.23.6 + tree-sitter-go 0.23.4 crates, with wasm vendored from the same tags (parser.c sha-matched) — both were 2023-era in tree-sitter-wasms. Gates: extraction sweeps 100% (flask 83/83, django 3,035/3,038 +3 error-file deferrals, gin 99/99, prometheus 978/979 +1); full-init dump-diffs byte-identical on flask (10,833 rows), gin (17,540), django (360,794), and prometheus (213,758); torture fixtures enforced in npm test. DEFAULT_ROUTED now covers typescript/tsx/javascript/jsx/java/ python/go. Full suite: 2,471 tests pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
62 lines
892 B
Go
62 lines
892 B
Go
// Go torture fixture — receivers, embedding, interfaces, composite literals.
|
|
package torture
|
|
|
|
import (
|
|
"fmt"
|
|
pkga "example.com/other/pkga"
|
|
)
|
|
|
|
const MAX_ITEMS = 128
|
|
|
|
var DefaultRegistry = NewRegistry()
|
|
|
|
var handlerTable = map[string]func(int){
|
|
"recv": TargetCb,
|
|
}
|
|
|
|
type Widget struct {
|
|
*Base
|
|
Queryable
|
|
name string
|
|
}
|
|
|
|
type Stack[T any] struct {
|
|
items []T
|
|
}
|
|
|
|
type Core interface {
|
|
Reader
|
|
Marshal(v any) ([]byte, error)
|
|
Unmarshal(data []byte) error
|
|
}
|
|
|
|
type Dur int
|
|
|
|
func NewRegistry() *Registry {
|
|
w := Widget{name: "w"}
|
|
q := pkga.Widget{}
|
|
fmt.Println(w, q, MAX_ITEMS)
|
|
cfg := loadConfig()
|
|
cfg.conn.Exec("x")
|
|
return New().Init()
|
|
}
|
|
|
|
func (s *Stack[T]) Push(item T) {
|
|
s.items = append(s.items, item)
|
|
}
|
|
|
|
func (w Widget) Render() string {
|
|
return w.name
|
|
}
|
|
|
|
func TargetCb(n int) {}
|
|
|
|
func shadowed() {
|
|
MAX_ITEMS := 5
|
|
fmt.Println(MAX_ITEMS)
|
|
}
|
|
|
|
func reads() int {
|
|
return MAX_ITEMS
|
|
}
|