• Russ Cox's avatar
    cmd/gc: fix type checking loop · 6363fc5a
    Russ Cox authored
    CL 4313064 fixed its test case but did not address a
    general enough problem:
    
    type T1 struct { F *T2 }
    type T2 T1
    type T3 T2
    
    could still end up copying the definition of T1 for T2
    before T1 was done being evaluated, or T3 before T2
    was done.
    
    In order to propagate the updates correctly,
    record a copy of an incomplete type for re-execution
    once the type is completed. Roll back CL 4313064.
    
    Fixes #3709.
    
    R=ken2
    CC=golang-dev, lstoakes
    https://golang.org/cl/6301059
    6363fc5a
typecheck.c 59.4 KB