bulbazord wrote:

> This version is still a little awkward because there's an ambiguity about 
> what the incoming string being empty means. In the VerifyCommandOptionValue, 
> it means "No Value" and the return is not distinguishable from "error" - but 
> in a bunch of the places where you use VerifyCommandOptionValue an empty 
> string just means a value wasn't provided, so you end up with constructs 
> where you set the optional (checking the incoming string for `empty`) then 
> check the input string again so you can tell empty apart from error, THEN 
> make up the error on the outside w/o knowing what actually was wrong with the 
> string.

I did this intentionally so that `VerifyCommandOptionValue` would not attempt 
to interpret the result. The caller knows whether or not its input is empty, so 
it's able to interpret the results of `VerifyCommandOptionValue` however it 
wants. Maybe `VerifyCommandOptionValue` is not a good name for this? It seems 
to just be trying to take a string and trying to get a bool out of it. Thinking 
about it further, I'm starting to question the value of 
`VerifyCommandOptionValue`... Maybe we should be using 
`OptionArgParser::ToBoolean`? That seems to be the end goal anyway.

> I wonder if it would be better to add a Status to the call. Then empty input 
> -> "Empty Optional but no error"; error in parsing -> "Empty Optional but 
> error" and result means success. Then you wouldn't have to do two checks on 
> the input string in different places, or make up the error string.

https://github.com/llvm/llvm-project/pull/79901
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to