]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: convert Node.Embedded into a flag
authorJosh Bleecher Snyder <josharian@gmail.com>
Wed, 26 Apr 2017 00:44:40 +0000 (17:44 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Wed, 26 Apr 2017 01:01:53 +0000 (01:01 +0000)
Change-Id: I30c59ba84dcacc3de39c42f94484b47bb7c36eba
Reviewed-on: https://go-review.googlesource.com/41792
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/cmd/compile/internal/gc/dcl.go
src/cmd/compile/internal/gc/fmt.go
src/cmd/compile/internal/gc/syntax.go

index 2820b72a42d16b39e20d76d130df1e00675b0443..22e2fd8ea51c9b2c8b7dec4b91970271c42b1198 100644 (file)
@@ -570,7 +570,7 @@ func structfield(n *Node) *types.Field {
                if n.Left != nil {
                        n.Left.Type = n.Type
                }
-               if n.Embedded != 0 {
+               if n.Embedded() {
                        checkembeddedtype(n.Type)
                }
        }
@@ -593,7 +593,11 @@ func structfield(n *Node) *types.Field {
 
        if n.Left != nil && n.Left.Op == ONAME {
                f.Nname = asTypesNode(n.Left)
-               f.Embedded = n.Embedded
+               if n.Embedded() {
+                       f.Embedded = 1
+               } else {
+                       f.Embedded = 0
+               }
                f.Sym = asNode(f.Nname).Sym
        }
 
@@ -779,7 +783,7 @@ func embedded(s *types.Sym, pkg *types.Pkg) *Node {
                n = newname(s.Pkg.Lookup(name))
        }
        n = nod(ODCLFIELD, n, oldname(s))
-       n.Embedded = 1
+       n.SetEmbedded(true)
        return n
 }
 
index f712c706ebaf65e94da6c8984302cac8b19ca309..7305a8fdff7d6c70dbbacfe8398473dd6ea6890f 100644 (file)
@@ -501,8 +501,8 @@ func (n *Node) jconv(s fmt.State, flag FmtFlag) {
                fmt.Fprintf(s, " implicit(%v)", n.Implicit())
        }
 
-       if n.Embedded != 0 {
-               fmt.Fprintf(s, " embedded(%d)", n.Embedded)
+       if n.Embedded() {
+               fmt.Fprintf(s, " embedded")
        }
 
        if n.Addrtaken() {
index 3db656e85effc9659355093526214661c77636b4..bc1f8bfcb140bebaaf4de632c37ee55ec3ea6c1e 100644 (file)
@@ -58,7 +58,6 @@ type Node struct {
        Op        Op
        Etype     types.EType // op for OASOP, etype for OTYPE, exclam for export, 6g saved reg, ChanDir for OTCHAN, for OINDEXMAP 1=LHS,0=RHS
        Class     Class       // PPARAM, PAUTO, PEXTERN, etc
-       Embedded  uint8       // ODCLFIELD embedded type
        Typecheck uint8       // tracks state during typechecking; 2 == loop detected
        Initorder uint8
 }
@@ -95,6 +94,7 @@ const (
        _, nodeLikely   // if statement condition likely
        _, nodeHasVal   // node.E contains a Val
        _, nodeHasOpt   // node.E contains an Opt
+       _, nodeEmbedded // ODCLFIELD embedded type
 )
 
 func (n *Node) Walkdef() uint8 { return n.flags.get2(nodeWalkdef) }
@@ -119,6 +119,7 @@ func (n *Node) HasCall() bool               { return n.flags&nodeHasCall != 0 }
 func (n *Node) Likely() bool                { return n.flags&nodeLikely != 0 }
 func (n *Node) HasVal() bool                { return n.flags&nodeHasVal != 0 }
 func (n *Node) HasOpt() bool                { return n.flags&nodeHasOpt != 0 }
+func (n *Node) Embedded() bool              { return n.flags&nodeEmbedded != 0 }
 
 func (n *Node) SetWalkdef(b uint8) { n.flags.set2(nodeWalkdef, b) }
 
@@ -142,6 +143,7 @@ func (n *Node) SetHasCall(b bool)               { n.flags.set(nodeHasCall, b) }
 func (n *Node) SetLikely(b bool)                { n.flags.set(nodeLikely, b) }
 func (n *Node) SetHasVal(b bool)                { n.flags.set(nodeHasVal, b) }
 func (n *Node) SetHasOpt(b bool)                { n.flags.set(nodeHasOpt, b) }
+func (n *Node) SetEmbedded(b bool)              { n.flags.set(nodeEmbedded, b) }
 
 // Val returns the Val for the node.
 func (n *Node) Val() Val {