static MiniYaml MergeWithParent(MiniYaml node, Dictionary <string, MiniYaml> allUnits) { var parent = GetParent(node, allUnits); if (parent != null) { var result = MiniYaml.MergeStrict(node, MergeWithParent(parent, allUnits)); // strip the '-' result.Nodes.RemoveAll(a => a.Key.StartsWith("-")); return(result); } return(node); }
static MiniYaml MergeWithParents(MiniYaml node, Dictionary <string, MiniYaml> allUnits, HashSet <string> allParents) { var parents = GetParents(node, allUnits); foreach (var kv in parents) { if (!allParents.Add(kv.Key)) { throw new YamlException( "Bogus inheritance -- duplicate inheritance of {0}.".F(kv.Key)); } node = MiniYaml.MergeStrict(node, MergeWithParents(kv.Value, allUnits, allParents)); } return(node); }