• Home
  • Raw
  • Download

Lines Matching refs:bind

267 func (b *block) bind(name string, bind *Binding) {  func
271 b.bindings[name] = bind
300 func (r *resolver) bind(id *syntax.Ident) bool { func
303 bind, ok := r.file.bindings[id.Name]
305 bind, ok = r.globals[id.Name]
308 bind = &Binding{
313 r.globals[id.Name] = bind
314 r.moduleGlobals = append(r.moduleGlobals, bind)
319 bind.Scope, id.Name, bind.First.NamePos)
321 id.Binding = bind
339 bind := &Binding{
344 r.env.bind(id.Name, bind)
345 *locals = append(*locals, bind)
396 func (r *resolver) useToplevel(use use) (bind *Binding) {
401 bind = prev
404 bind = prev
407 bind = &Binding{
412 r.globals[id.Name] = bind
413 r.moduleGlobals = append(r.moduleGlobals, bind)
416 bind = prev
419 bind = &Binding{Scope: Predeclared}
420 r.predeclared[id.Name] = bind // save it
426 bind = &Binding{Scope: Universal}
427 r.predeclared[id.Name] = bind // save it
429 bind = &Binding{Scope: Undefined}
436 id.Binding = bind
437 return bind
457 for _, bind := range r.moduleGlobals {
458 names = append(names, bind.First.Name)
470 if bind := lookupLocal(use); bind != nil && (bind.Scope == Local || bind.Scope == Cell) {
471 use.id.Binding = bind
511 r.bind(stmt.Name)
573 r.bind(id)
591 r.bind(lhs)
826 if r.bind(param) {
837 if id := param.X.(*syntax.Ident); r.bind(id) {
869 if r.bind(id) {
878 if r.bind(starStar) {
911 if bind, ok := env.bindings[use.id.Name]; ok {
912 if bind.Scope == Free {
914 log.Panicf("%s: internal error: %s, %v", use.id.NamePos, use.id.Name, bind)
916 return bind // found
927 func (r *resolver) lookupLexical(use use, env *block) (bind *Binding) {
930 defer func() { fmt.Printf("= %v\n", bind) }()
939 bind, ok := env.bindings[use.id.Name]
942 bind = r.lookupLexical(use, env.parent)
943 if env.function != nil && (bind.Scope == Local || bind.Scope == Free || bind.Scope == Cell) {
948 if bind.Scope == Local {
949 bind.Scope = Cell
952 env.function.FreeVars = append(env.function.FreeVars, bind)
953 bind = &Binding{
954 First: bind.First,
966 env.bind(use.id.Name, bind)
968 return bind