protected override bool AcceptReference(IReference reference)
        {
            var referenceExpressionReference = reference as ReferenceExpressionReference;

            if (referenceExpressionReference != null)
            {
                var owner = referenceExpressionReference.Owner.Qualifier as IReferenceExpression;
                if (owner != null)
                {
                    var acceptReference = AcceptReference(owner.Reference);
                    if (acceptReference)
                    {
                        return(true);
                    }
                }
            }
            return(acceptableReferenceNames.IsEmpty() || reference.GetAllNames().Any(x => acceptableReferenceNames.Contains(x)));
        }
        private bool ReferenceNamePredicate(IReference reference)
        {
            if (myReferenceNameContainer == null)
            {
                return(true);
            }

            if (reference.HasMultipleNames)
            {
                foreach (var name in reference.GetAllNames())
                {
                    if (myReferenceNameContainer.Contains(name))
                    {
                        return(true);
                    }
                }

                return(false);
            }

            return(myReferenceNameContainer.Contains(reference.GetName()));
        }
 protected override bool AcceptReference(IReference reference)
 {
     var referenceExpressionReference = reference as ReferenceExpressionReference;
     if (referenceExpressionReference != null)
     {
         var owner = referenceExpressionReference.Owner.Qualifier as IReferenceExpression;
         if (owner != null)
         {
             var acceptReference = AcceptReference(owner.Reference);
             if (acceptReference)
                 return true;
         }
     }
     return acceptableReferenceNames.IsEmpty() || acceptableReferenceNames.ContainsAny(reference.GetAllNames());
 }