]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.typeparams] cmd/compile: swap export order of union term components (cleanup)
authorRobert Griesemer <gri@golang.org>
Thu, 5 Aug 2021 20:58:24 +0000 (13:58 -0700)
committerRobert Griesemer <gri@golang.org>
Fri, 6 Aug 2021 20:34:52 +0000 (20:34 +0000)
Export a term as a pair (tilde, type) rather than (type, tilde)
to match the new Union/Term API.

Change-Id: I221c09c2c746ae19fbae0c970ffb26fa7a8ac736
Reviewed-on: https://go-review.googlesource.com/c/go/+/340251
Trust: Robert Griesemer <gri@golang.org>
Trust: Dan Scales <danscales@google.com>
Run-TryBot: Robert Griesemer <gri@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Dan Scales <danscales@google.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/importer/iimport.go
src/cmd/compile/internal/noder/reader2.go
src/cmd/compile/internal/noder/writer.go
src/cmd/compile/internal/typecheck/iexport.go
src/cmd/compile/internal/typecheck/iimport.go

index 3aab32fc6bd041ab7b0619ab13a7ff680e21bbcc..6dd8d595ae65e6865ab5662d409e8e5dfa364fc8 100644 (file)
@@ -676,12 +676,9 @@ func (r *importReader) doType(base *types2.Named) types2.Type {
                if r.p.exportVersion < iexportVersionGenerics {
                        errorf("unexpected instantiation type")
                }
-               nt := int(r.uint64())
-               terms := make([]*types2.Term, nt)
+               terms := make([]*types2.Term, r.uint64())
                for i := range terms {
-                       typ := r.typ()
-                       tilde := r.bool()
-                       terms[i] = types2.NewTerm(tilde, typ)
+                       terms[i] = types2.NewTerm(r.bool(), r.typ())
                }
                return types2.NewUnion(terms)
        }
index 0bea6675ea462054a0acef1ee8649d0c2159fefa..fe1f329c822a8fb1467c0749f18dd454a2626e0f 100644 (file)
@@ -283,9 +283,7 @@ func (r *reader2) structType() *types2.Struct {
 func (r *reader2) unionType() *types2.Union {
        terms := make([]*types2.Term, r.len())
        for i := range terms {
-               typ := r.typ()
-               tilde := r.bool()
-               terms[i] = types2.NewTerm(tilde, typ)
+               terms[i] = types2.NewTerm(r.bool(), r.typ())
        }
        return types2.NewUnion(terms)
 }
index 8b65559d1ad392f28f92e788dc63b7032126dd0e..b5028e7f6954e48ee8aa02165acb087204f7bf6b 100644 (file)
@@ -397,8 +397,8 @@ func (w *writer) unionType(typ *types2.Union) {
        w.len(typ.Len())
        for i := 0; i < typ.Len(); i++ {
                t := typ.Term(i)
-               w.typ(t.Type())
                w.bool(t.Tilde())
+               w.typ(t.Type())
        }
 }
 
index 25a0bfbb3a4b0847c13ba922021d40deeb399bf0..d877b03e4896206f588f1c285150c3fc4dfb778b 100644 (file)
@@ -1002,9 +1002,9 @@ func (w *exportWriter) doTyp(t *types.Type) {
                nt := t.NumTerms()
                w.uint64(uint64(nt))
                for i := 0; i < nt; i++ {
-                       t, b := t.Term(i)
-                       w.typ(t)
-                       w.bool(b)
+                       typ, tilde := t.Term(i)
+                       w.bool(tilde)
+                       w.typ(typ)
                }
 
        default:
index 8d960e580827b37f343078017864789596927635..2957212fb2e8efee2c4449a1757d333a83942ae1 100644 (file)
@@ -847,8 +847,8 @@ func (r *importReader) typ1() *types.Type {
                terms := make([]*types.Type, nt)
                tildes := make([]bool, nt)
                for i := range terms {
-                       terms[i] = r.typ()
                        tildes[i] = r.bool()
+                       terms[i] = r.typ()
                }
                return types.NewUnion(terms, tildes)
        }