]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.typeparams] cmd/compile: extract SetBaseTypeIndex function
authorMatthew Dempsky <mdempsky@google.com>
Fri, 11 Jun 2021 08:10:56 +0000 (01:10 -0700)
committerMatthew Dempsky <mdempsky@google.com>
Fri, 11 Jun 2021 14:46:45 +0000 (14:46 +0000)
The unified IR importer requires a way to set symbol indices for
imported types, so provide an exported API for this.

Change-Id: I2f088628f56d5b9f1097196dc1aa23f0a8b8d496
Reviewed-on: https://go-review.googlesource.com/c/go/+/327050
Trust: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
src/cmd/compile/internal/typecheck/iimport.go

index 6d42875f4964ccb70ab3d3d0ba42ce6c4e2474a2..9054a83e6e9fa5809c42e7a4b82c7b8045e9ed13 100644 (file)
@@ -993,7 +993,13 @@ func (r *importReader) symIdx(s *types.Sym) {
 
 func (r *importReader) typeExt(t *types.Type) {
        t.SetNotInHeap(r.bool())
-       i, pi := r.int64(), r.int64()
+       SetBaseTypeIndex(t, r.int64(), r.int64())
+}
+
+func SetBaseTypeIndex(t *types.Type, i, pi int64) {
+       if t.Obj() == nil {
+               base.Fatalf("SetBaseTypeIndex on non-defined type %v", t)
+       }
        if i != -1 && pi != -1 {
                typeSymIdx[t] = [2]int64{i, pi}
        }
@@ -1001,6 +1007,7 @@ func (r *importReader) typeExt(t *types.Type) {
 
 // Map imported type T to the index of type descriptor symbols of T and *T,
 // so we can use index to reference the symbol.
+// TODO(mdempsky): Store this information directly in the Type's Name.
 var typeSymIdx = make(map[*types.Type][2]int64)
 
 func BaseTypeIndex(t *types.Type) int64 {