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); }
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); }