• Robert Griesemer's avatar
    cmd/compile: add and enable (internal) option to only track named types · 394ac818
    Robert Griesemer authored
    The new export format keeps track of all types that are exported.
    If a type is seen that was exported before, only a reference to
    that type is emitted. The importer maintains a list of all the
    seen types and uses that list to resolve type references.
    
    The existing compiler infrastructure's invariants assumes that
    only named types are referred to before they are fully set up.
    Referring to unnamed incomplete types causes problems. One of
    the issues was #15548.
    
    Added a new internal flag 'trackAllTypes' to enable/disable
    this type tracking. With this change only named types are
    tracked.
    
    Verified that this fix also addresses #15548, even w/o the
    prior fix for that issue (in fact that prior fix is turned
    off if trackAllTypes is disabled because it's not needed).
    
    The test for #15548 covers also this change.
    
    For #15548.
    
    Change-Id: Id0b3ff983629703d025a442823f99649fd728a56
    Reviewed-on: https://go-review.googlesource.com/22839
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
    394ac818
bug398.go 493 Bytes