public static void EnumChildren(ICompletionDataGenerator cdgen,ResolutionContext ctxt, UserDefinedType udt, bool isVarInstance, MemberFilter vis = MemberFilter.Methods | MemberFilter.Types | MemberFilter.Variables | MemberFilter.Enums) { var scan = new MemberCompletionEnumeration(ctxt, cdgen) { isVarInst = isVarInstance }; scan.DeepScanClass(udt, vis); }
public static bool IsImplicitlyConvertible(UserDefinedType r, UserDefinedType target) { if (r == null || target == null) { return(false); } if (r.Definition == target.Definition) { return(true); } if (r.Base != null && IsImplicitlyConvertible(r.Base, target)) { return(true); } if (r is TemplateIntermediateType) { var templateType = (TemplateIntermediateType)r; if (templateType.BaseInterfaces != null && templateType.BaseInterfaces.Length != 0 && target is InterfaceType) { foreach (var I in templateType.BaseInterfaces) { if (IsImplicitlyConvertible(I, target)) { return(true); } } } } return(false); }
void BuildCompletionData(UserDefinedType tr, bool showInstanceItems) { MemberCompletionEnumeration.EnumChildren(CompletionDataGenerator, ctxt, tr, showInstanceItems, MemberFilter); StaticProperties.ListProperties(CompletionDataGenerator, MemberFilter, tr, showInstanceItems); }
public static bool IsImplicitlyConvertible(UserDefinedType r, UserDefinedType target) { if (r == null || target == null) return false; if (r.Definition == target.Definition) return true; if (r.Base != null && IsImplicitlyConvertible(r.Base, target)) return true; if (r is TemplateIntermediateType) { var templateType = (TemplateIntermediateType)r; if (templateType.BaseInterfaces != null && templateType.BaseInterfaces.Length != 0 && target is InterfaceType) { foreach (var I in templateType.BaseInterfaces) if (IsImplicitlyConvertible(I, target)) return true; } } return false; }