diff --git a/Remora.Commands/Trees/Nodes/CommandNode.cs b/Remora.Commands/Trees/Nodes/CommandNode.cs index e20876c..4d8d133 100644 --- a/Remora.Commands/Trees/Nodes/CommandNode.cs +++ b/Remora.Commands/Trees/Nodes/CommandNode.cs @@ -201,14 +201,13 @@ public bool TryBind var boundParameters = new List(); while (parametersToCheck.Count > 0) { + // Because the current enumerator might be invalid or ended, we'll fix up the key-value pair here + var current = enumerator.MoveNext() + ? enumerator.Current + : KeyValuePair.Create(string.Empty, (IReadOnlyList)Array.Empty()); var matchedParameters = new List(); foreach (var parameterToCheck in parametersToCheck) { - // Because the current enumerator might be invalid or ended, we'll fix up the key-value pair here - var current = enumerator.MoveNext() - ? enumerator.Current - : KeyValuePair.Create(string.Empty, (IReadOnlyList)Array.Empty()); - if (!parameterToCheck.Matches(current, out var isFatal, searchOptions)) { if (isFatal)