Boo.BooLangService.Document.Origins.EntitySourceOrigin.GetMembers C# (CSharp) Method

GetMembers() public method

public GetMembers ( bool constructor ) : List
constructor bool
return List
        public List<ISourceOrigin> GetMembers(bool constructor)
        {
            var namespaceEntity = entity as INamespace;
            var instance = constructor;

            if (entity is IMethod)
            {
                namespaceEntity = ((IMethod)entity).ReturnType;
                instance = true;
            }
            else if (entity is ITypedEntity && !(entity is IType))
            {
                namespaceEntity = ((ITypedEntity)entity).Type;
                instance = true;
            }

            var members = new List<IEntity>(TypeSystemServices.GetAllMembers(namespaceEntity));

            // remove any static members for instances, and any instance members for types
            members.RemoveAll(e =>
            {
                if (excludedMembers.Contains(e.Name)) return true;
                if (e is NamespaceEntity || e is NullNamespace || e is SimpleNamespace) return false;
                if (e is ExternalType) return false;

                var member = (IMember)e;

                if (!member.IsPublic) return true;
                return (instance && member.IsStatic) || (!instance && !member.IsStatic);
            });

            return ConvertEntitiesToSourceOrigins(members);
        }