void EnsurePopulated(GenBase gen) { if (gen == null || !gen.IsShallow) { return; } foreach (var nested in gen.NestedTypes) { EnsurePopulated(nested); } // We need to fully populate this shallow type lock (populate_lock) { gen.PopulateAction(); gen.IsShallow = false; gen.PopulateAction = null; } }