Types[TUNSAFEPTR] = t
t.Sym = Pkglookup("Pointer", unsafepkg)
t.Sym.Def = typenod(t)
+ t.Sym.Def.Name = new(Name)
dowidth(Types[TUNSAFEPTR])
dowidth(t)
Types[etype] = t
s1.Def = typenod(t)
+ s1.Def.Name = new(Name)
}
Array_array = int(Rnd(0, int64(Widthptr)))
s1.Lexical = LNAME
s1.Def = typenod(t)
+ s1.Def.Name = new(Name)
continue
}
s = Pkglookup("true", builtinpkg)
s.Def = Nodbool(true)
s.Def.Sym = Lookup("true")
+ s.Def.Name = new(Name)
s.Def.Type = idealbool
s = Pkglookup("false", builtinpkg)
s.Def = Nodbool(false)
s.Def.Sym = Lookup("false")
+ s.Def.Name = new(Name)
s.Def.Type = idealbool
s = Lookup("_")
v.U = new(NilVal)
s.Def = nodlit(v)
s.Def.Sym = s
+ s.Def.Name = new(Name)
}
func lexinit1() {
bytetype.Sym = s1
s1.Lexical = LNAME
s1.Def = typenod(bytetype)
+ s1.Def.Name = new(Name)
// rune alias
s = Lookup("rune")
runetype.Sym = s1
s1.Lexical = LNAME
s1.Def = typenod(runetype)
+ s1.Def.Name = new(Name)
}
func lexfini() {
etype = syms[i].etype
if etype != Txxx && (etype != TANY || Debug['A'] != 0) && s.Def == nil {
s.Def = typenod(Types[etype])
+ s.Def.Name = new(Name)
s.Origpkg = builtinpkg
}
s = Lookup(Thearch.Typedefs[i].Name)
if s.Def == nil {
s.Def = typenod(Types[Thearch.Typedefs[i].Etype])
+ s.Def.Name = new(Name)
s.Origpkg = builtinpkg
}
}
if s.Def == nil {
s.Def = typenod(bytetype)
+ s.Def.Name = new(Name)
s.Origpkg = builtinpkg
}
s = Lookup("error")
if s.Def == nil {
s.Def = typenod(errortype)
+ s.Def.Name = new(Name)
s.Origpkg = builtinpkg
}
s = Lookup("rune")
if s.Def == nil {
s.Def = typenod(runetype)
+ s.Def.Name = new(Name)
s.Origpkg = builtinpkg
}
v.U = new(NilVal)
s.Def = nodlit(v)
s.Def.Sym = s
+ s.Def.Name = new(Name)
s.Origpkg = builtinpkg
}
if s.Def == nil {
s.Def = Nodbool(true)
s.Def.Sym = s
+ s.Def.Name = new(Name)
s.Origpkg = builtinpkg
}
if s.Def == nil {
s.Def = Nodbool(false)
s.Def.Sym = s
+ s.Def.Name = new(Name)
s.Origpkg = builtinpkg
}
if s.Def.Sym != s {
// throw away top-level name left over
// from previous import . "x"
- if s.Def.Pack != nil && !s.Def.Pack.Used && nsyntaxerrors == 0 {
- pkgnotused(int(s.Def.Pack.Lineno), s.Def.Pack.Pkg.Path, "")
- s.Def.Pack.Used = true
+ if s.Def.Name != nil && s.Def.Name.Pack != nil && !s.Def.Name.Pack.Used && nsyntaxerrors == 0 {
+ pkgnotused(int(s.Def.Name.Pack.Lineno), s.Def.Name.Pack.Pkg.Path, "")
+ s.Def.Name.Pack.Used = true
}
s.Def = nil
// ONAME
Name *Name
- Pack *Node // real package for import . names
Curfn *Node // function for local variables
Param *Param
// Name holds Node fields used only by ONAME nodes.
type Name struct {
+ Pack *Node // real package for import . names
Heapaddr *Node // temp holding heap address of param
Inlvar *Node // ONAME substitute while inlining
Defn *Node // initializing assignment
//line go.y:1222
{
yyVAL.node = oldname(yyDollar[1].sym)
- if yyVAL.node.Pack != nil {
- yyVAL.node.Pack.Used = true
+ if yyVAL.node.Name != nil && yyVAL.node.Name.Pack != nil {
+ yyVAL.node.Name.Pack.Used = true
}
}
case 164:
yyVAL.sym = yyDollar[1].sym
n = oldname(yyDollar[1].sym)
- if n.Pack != nil {
- n.Pack.Used = true
+ if n.Name != nil && n.Name.Pack != nil {
+ n.Name.Pack.Used = true
}
}
case 237: