• Robert Griesemer's avatar
    go/types: track local cycles using same mechanism as for global objects · ce2e883a
    Robert Griesemer authored
    For Go 1.11, cycle tracking of global (package-level) objects was changed
    to use a Checker-level object path rather than relying on the explicit
    path parameter that is passed around to some (but not all) type-checker
    functions.
    
    This change now uses the same mechanism for the detection of local
    type cycles (local non-type objects cannot create cycles by definition
    of the spec).
    
    As a result, local alias cycles are now correctly detected as well
    (issue #27106).
    
    The path parameter that is explicitly passed around to some type-checker
    methods is still present and will be removed in a follow-up CL.
    
    Also:
    - removed useCycleMarking flag and respective dead code
    - added a couple more tests
    - improved documentation
    
    Fixes #27106.
    Updates #25773.
    
    Change-Id: I7cbf304bceb43a8d52e6483dcd0fa9ef7e1ea71c
    Reviewed-on: https://go-review.googlesource.com/130455
    Run-TryBot: Robert Griesemer <gri@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarAlan Donovan <adonovan@google.com>
    ce2e883a
Name
Last commit
Last update
..
archive Loading commit data...
bufio Loading commit data...
builtin Loading commit data...
bytes Loading commit data...
cmd Loading commit data...
compress Loading commit data...
container Loading commit data...
context Loading commit data...
crypto Loading commit data...
database/sql Loading commit data...
debug Loading commit data...
encoding Loading commit data...
errors Loading commit data...
expvar Loading commit data...
flag Loading commit data...
fmt Loading commit data...
go Loading commit data...
hash Loading commit data...
html Loading commit data...
image Loading commit data...
index/suffixarray Loading commit data...
internal Loading commit data...
io Loading commit data...
log Loading commit data...
math Loading commit data...
mime Loading commit data...
net Loading commit data...
os Loading commit data...
path Loading commit data...
plugin Loading commit data...
reflect Loading commit data...
regexp Loading commit data...
runtime Loading commit data...
sort Loading commit data...
strconv Loading commit data...
strings Loading commit data...
sync Loading commit data...
syscall Loading commit data...
testing Loading commit data...
text Loading commit data...
time Loading commit data...
unicode Loading commit data...
unsafe Loading commit data...
vendor/golang_org/x Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
bootstrap.bash Loading commit data...
buildall.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
cmp.bash Loading commit data...
iostest.bash Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
naclmake.bash Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...