Detect recursive calls to builtin complete and the internal completion in the same place. In 0a0149cc2 (Prevent infinite recursion when completion wraps variable assignment) we don't print an error when completing certain aliases like: alias vim "A=B vim" But we also gave no completions. We could make this case work, but I think that trying to salvage situations like this one is way too complex. Instead, let the user know by printing an error. Not sure if the style of the error fits. We could add some heuristic to alias to not add --wraps in some cyclic cases.