Example #1
0
        public static IBinding GetBinding([CanBeNull] this INamedPat pat)
        {
            if (pat == null)
            {
                return(null);
            }

            var node = pat.Parent;

            while (node != null)
            {
                switch (node)
                {
                case IBinding binding:
                    return(binding);

                case ITopParametersOwnerPat parametersOwner when parametersOwner.IsDeclaration:
                    return(null);

                default:
                    node = node.Parent;
                    break;
                }
            }

            return(null);
        }
Example #2
0
        public static IBindingLikeDeclaration GetBinding([CanBeNull] this INamedPat pat)
        {
            if (pat == null)
            {
                return(null);
            }

            var node = pat.Parent;

            while (node != null)
            {
                switch (node)
                {
                case IFSharpPattern _:
                    node = node.Parent;
                    break;

                case IBindingLikeDeclaration binding:
                    return(binding);

                default:
                    return(null);
                }
            }

            return(null);
        }