diff options
| author | fanquake <[email protected]> | 2020-08-11 08:50:34 +0800 |
|---|---|---|
| committer | fanquake <[email protected]> | 2020-08-11 09:24:50 +0800 |
| commit | cb1ee1551cf39905ccb67e3d07b0e3aaaca18ce3 (patch) | |
| tree | 1c8f839dcc61b35e63c12bd969c10a4cb8e4200c /src/script/script_error.cpp | |
| parent | Merge #19596: Deduplicate parent txid loop of requested transactions and miss... (diff) | |
| parent | refactor: test: use _ variable for unused loop counters (diff) | |
| download | discoin-cb1ee1551cf39905ccb67e3d07b0e3aaaca18ce3.tar.xz discoin-cb1ee1551cf39905ccb67e3d07b0e3aaaca18ce3.zip | |
Merge #19674: refactor: test: use throwaway _ variable for unused loop counters
dac7a111bdd3b0233d94cf68dae7a8bfc6ac9c64 refactor: test: use _ variable for unused loop counters (Sebastian Falbesoner)
Pull request description:
This tiny PR substitutes Python loops in the form of `for x in range(N): ...` by `for _ in range(N): ...` where applicable. The idea is indicating to the reader that a block (or statement, in list comprehensions) is just repeated N times, and that the loop counter is not used in the body, hence using the throwaway variable. This is already done quite often in the current tests (see e.g. `$ git grep "for _ in range("`). Another alternative would be using `itertools.repeat` (according to Python core developer Raymond Hettinger it's [even faster](https://twitter.com/raymondh/status/1144527183341375488)), but that doesn't seem to be widespread in use and I'm not sure about a readability increase.
The only drawback I see is that whenever one wants to debug loop iterations, one would need to introduce a loop variable again. Reviewing this is basically a no-brainer, since tests would fail immediately if a a substitution has taken place on a loop where the variable is used.
Instances to replace were found by `$ git grep "for.*in range("` and manually checked.
ACKs for top commit:
darosior:
ACK dac7a111bdd3b0233d94cf68dae7a8bfc6ac9c64
instagibbs:
manual inspection ACK https://github.com/bitcoin/bitcoin/pull/19674/commits/dac7a111bdd3b0233d94cf68dae7a8bfc6ac9c64
practicalswift:
ACK dac7a111bdd3b0233d94cf68dae7a8bfc6ac9c64 -- the updated code is easier to reason about since the throwaway nature of a variable is expressed explicitly (using the Pythonic `_` idiom) instead of implicitly. Explicit is better than implicit was we all know by now :)
Tree-SHA512: 5f43ded9ce14e5e00b3876ec445b90acda1842f813149ae7bafa93f3ac3d510bb778e2c701187fd2c73585e6b87797bb2d2987139bd1a9ba7d58775a59392406
Diffstat (limited to 'src/script/script_error.cpp')
0 files changed, 0 insertions, 0 deletions