Bug in optflagopt
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 250
- Forks
- 69
- PR merge metrics
- No merged PRs in 30d
Description
I've bumped into some weird behaviour in another project whereas the use of an optflagopt option seemed to render unexpected behaviour of the option not being properly parsed.
I decided to come to the source and I extended the mod.rs test to show that something was amiss
https://github.com/pecastro/getopts/commit/de5e4db173b265bbf77c2d9ecfe4bff896913c46
I've managed to make the test panic when you use an optflagopt in combination with other options.
Initial investigations from debugging the test show that the vals Vec of the Matches struct will have a Vec with Given rather than the option value specified and that is what's causing the return of None and triggering the panic.
self.vals:
[[(0, Val("foo"))], [(1, Val("bar"))], [], [(2, Given)]]
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the extended mod.rs test from commit de5e4db173b265bbf77c2d9ecfe4bff896913c46 and reproduce the panic when optflagopt is combined with other options. Trace how Matches.vals is populated, especially the entry containing Given instead of the option value. Done means the test passes and optflagopt returns its supplied value without panicking.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100