mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/compile: factor out Pkg, Sym, and Type into package types
- created new package cmd/compile/internal/types - moved Pkg, Sym, Type to new package - to break cycles, for now we need the (ugly) types/utils.go file which contains a handful of functions that must be installed early by the gc frontend - to break cycles, for now we need two functions to convert between *gc.Node and *types.Node (the latter is a dummy type) - adjusted the gc's code to use the new package and the conversion functions as needed - made several Pkg, Sym, and Type methods functions as needed - renamed constructors typ, typPtr, typArray, etc. to types.New, types.NewPtr, types.NewArray, etc. Passes toolstash-check -all. Change-Id: I8adfa5e85c731645d0a7fd2030375ed6ebf54b72 Reviewed-on: https://go-review.googlesource.com/39855 Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
parent
19bd145d07
commit
f68f292820
48 changed files with 2433 additions and 2005 deletions
|
|
@ -5,6 +5,7 @@
|
|||
package gc
|
||||
|
||||
import (
|
||||
"cmd/compile/internal/types"
|
||||
"reflect"
|
||||
"sort"
|
||||
"testing"
|
||||
|
|
@ -12,24 +13,24 @@ import (
|
|||
|
||||
func TestSortingByMethodNameAndPackagePath(t *testing.T) {
|
||||
data := []*Sig{
|
||||
&Sig{name: "b", pkg: &Pkg{Path: "abc"}},
|
||||
&Sig{name: "b", pkg: &types.Pkg{Path: "abc"}},
|
||||
&Sig{name: "b", pkg: nil},
|
||||
&Sig{name: "c", pkg: nil},
|
||||
&Sig{name: "c", pkg: &Pkg{Path: "uvw"}},
|
||||
&Sig{name: "c", pkg: &types.Pkg{Path: "uvw"}},
|
||||
&Sig{name: "c", pkg: nil},
|
||||
&Sig{name: "b", pkg: &Pkg{Path: "xyz"}},
|
||||
&Sig{name: "a", pkg: &Pkg{Path: "abc"}},
|
||||
&Sig{name: "b", pkg: &types.Pkg{Path: "xyz"}},
|
||||
&Sig{name: "a", pkg: &types.Pkg{Path: "abc"}},
|
||||
&Sig{name: "b", pkg: nil},
|
||||
}
|
||||
want := []*Sig{
|
||||
&Sig{name: "a", pkg: &Pkg{Path: "abc"}},
|
||||
&Sig{name: "a", pkg: &types.Pkg{Path: "abc"}},
|
||||
&Sig{name: "b", pkg: nil},
|
||||
&Sig{name: "b", pkg: nil},
|
||||
&Sig{name: "b", pkg: &Pkg{Path: "abc"}},
|
||||
&Sig{name: "b", pkg: &Pkg{Path: "xyz"}},
|
||||
&Sig{name: "b", pkg: &types.Pkg{Path: "abc"}},
|
||||
&Sig{name: "b", pkg: &types.Pkg{Path: "xyz"}},
|
||||
&Sig{name: "c", pkg: nil},
|
||||
&Sig{name: "c", pkg: nil},
|
||||
&Sig{name: "c", pkg: &Pkg{Path: "uvw"}},
|
||||
&Sig{name: "c", pkg: &types.Pkg{Path: "uvw"}},
|
||||
}
|
||||
if len(data) != len(want) {
|
||||
t.Fatal("want and data must match")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue