public override IList <FunctionInfo> InferMethods(SymbolId name) { Initialize(); List <ReflectedMember> list; IList <FunctionInfo> result = null; if (members.TryGetValue(name, out list)) { foreach (ReflectedMember member in list) { ReflectedMethod method = member as ReflectedMethod; if (null != method) { result = Engine.Union <FunctionInfo>(result, method.InferMethods(name)); } } } else if (type.Name == name.GetString()) { members.TryGetValue(SymbolTable.StringToId(".ctor"), out list); foreach (ReflectedMember member in list) { ReflectedConstructor constructor = member as ReflectedConstructor; if (constructor != null) { result = Engine.Union <FunctionInfo>(result, constructor.InferMethods(name)); } } } return(result); }
protected static ReflectedMember CreateMemberDefinition(MemberInfo info) { MethodInfo method; FieldInfo field; PropertyInfo property; ConstructorInfo constructor; ReflectedMember md; if ((method = info as MethodInfo) != null) { md = new ReflectedMethod(method); } else if ((field = info as FieldInfo) != null) { md = new ReflectedField(field); } else if ((property = info as PropertyInfo) != null) { md = new ReflectedProperty(property); } else if ((constructor = info as ConstructorInfo) != null) { md = new ReflectedConstructor(constructor); } else { md = null; } return(md); }
protected static ReflectedMember CreateMemberDefinition(MemberInfo info) { MethodInfo method; FieldInfo field; PropertyInfo property; ConstructorInfo constructor; ReflectedMember md; if ((method = info as MethodInfo) != null) { md = new ReflectedMethod(method); } else if ((field = info as FieldInfo) != null) { md = new ReflectedField(field); } else if ((property = info as PropertyInfo) != null) { md = new ReflectedProperty(property); } else if ((constructor = info as ConstructorInfo) != null) { md = new ReflectedConstructor(constructor); } else { md = null; } return md; }