protected override void EnsureContent(FunctionModel fm) { foreach (var model in GetMemberModels(fm)) { _function.AddMember(model.Name, MemberFactory.CreateMember(model, ModuleFactory, GlobalScope, _function), overwrite: true); } }
public override void Populate(ModuleFactory mf, IPythonType declaringType, IGlobalScope gs) { // Create inner functions and classes first since function may be returning one of them. var all = Classes.Concat <MemberModel>(Functions).ToArray(); foreach (var model in all) { _function.AddMember(Name, model.Create(mf, _function, gs), overwrite: true); } foreach (var model in all) { model.Populate(mf, _function, gs); } foreach (var om in Overloads) { var o = new PythonFunctionOverload(_function, new Location(mf.Module, IndexSpan.ToSpan())); o.SetDocumentation(Documentation); o.SetReturnValue(mf.ConstructMember(om.ReturnType), true); o.SetParameters(om.Parameters.Select(p => ConstructParameter(mf, p)).ToArray()); _function.AddOverload(o); } }