InteractiveUtils: access bindings in latest world
InteractiveUtils provides a number of utilities for querying and
accessing the contents of modules. Because these modules can gain new
bindings, some callers of InteractiveUtils functions produce warnings
WARNING: Detected access to binding ... prior to its definition world.
One dramatic example occurs with the sequence
using OptimizationProblems: OptimizationProblems
using OptimizationProblems.ADNLPProblems
using ADNLPModels: ADNLPModel
when running with Revise. ADNLPProblems loads new problems via Requires,
and starting with v3.13 Revise queries `InteractiveUtils.subtypes` to
cache dependent fieldtypes. This triggers the warning, and because it
runs in a separate task, the `--depwarn=error` trick unfortunately
failed to produce a stacktrace. Thus this was quite difficult to track
down.
Fixes https://github.com/timholy/Revise.jl/issues/993