Ejemplo n.º 1
0
        public virtual IEnumerable <IReferenceable> GetDefinitions(string name)
        {
            PropertyDescriptorValue desc;

            if (_descriptors != null && _descriptors.TryGetValue(name, out desc))
            {
                if (desc.Values != null)
                {
                    yield return(desc.Values);
                }

                if (desc.Getter != null)
                {
                    foreach (var type in desc.Getter.Types)
                    {
                        var func = type.Value as IReferenceable;
                        if (func != null)
                        {
                            yield return(func);
                        }
                    }
                }
                else if (desc.Setter != null)
                {
                    foreach (var type in desc.Setter.Types)
                    {
                        var func = type.Value as IReferenceable;
                        if (func != null)
                        {
                            yield return(func);
                        }
                    }
                }
            }

            if (_linkedValues != null)
            {
                foreach (var value in _linkedValues.TypesNoCopy)
                {
                    if (value.Value.Push())
                    {
                        try {
                            IReferenceableContainer refContainer = value.Value as IReferenceableContainer;
                            if (refContainer != null)
                            {
                                foreach (var result in refContainer.GetDefinitions(name))
                                {
                                    yield return(result);
                                }
                            }
                        } finally {
                            value.Value.Pop();
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private IEnumerable <IReferenceable> GetDefinitions(string name, IEnumerable <AnalysisValue> nses)
        {
            var result = new List <IReferenceable>();

            foreach (var subType in nses)
            {
                if (subType.Push())
                {
                    IReferenceableContainer container = subType as IReferenceableContainer;
                    if (container != null)
                    {
                        result.AddRange(container.GetDefinitions(name));
                    }
                    subType.Pop();
                }
            }
            return(result);
        }
Ejemplo n.º 3
0
 private IEnumerable <IReferenceable> GetDefinitions(string name, IEnumerable <Namespace> nses)
 {
     foreach (var subType in nses)
     {
         if (subType.Push())
         {
             IReferenceableContainer container = subType as IReferenceableContainer;
             if (container != null)
             {
                 foreach (var baseDef in container.GetDefinitions(name))
                 {
                     yield return(baseDef);
                 }
             }
             subType.Pop();
         }
     }
 }
Ejemplo n.º 4
0
        public IEnumerable <IReferenceable> GetDefinitions(string name)
        {
            VariableDef def;

            if (_scope.Variables.TryGetValue(name, out def))
            {
                yield return(def);
            }

            foreach (var baseClassSet in Bases)
            {
                foreach (var baseClass in baseClassSet)
                {
                    IReferenceableContainer container = baseClass as IReferenceableContainer;
                    if (container != null)
                    {
                        foreach (var baseDef in container.GetDefinitions(name))
                        {
                            yield return(baseDef);
                        }
                    }
                }
            }
        }