From c3e159bdabe3179093c5da240ef2c262993bb1ac Mon Sep 17 00:00:00 2001 From: Nicolas DUBIEN Date: Mon, 23 Sep 2024 21:54:22 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A5=20Drop=20unneeded=20catch=20param?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There is no more need to specify anything when catching an error without treating it. Let's adopt "Optional catch binding" in our codebase! Available since Node 10. Related to #5282 **Important** - Once reaching next-3.23.0, we should add back the eslint configuration: `'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_', caughtErrors: 'none' }],`. --- .../helpers/SlicesForStringBuilder.ts | 2 +- .../check/arbitrary/definition/Arbitrary.ts | 2 +- packages/fast-check/src/utils/apply.ts | 2 +- packages/fast-check/src/utils/globals.ts | 48 +++++++++---------- packages/fast-check/src/utils/stringify.ts | 4 +- .../fast-check/test/e2e/NoRegression.spec.ts | 2 +- .../test/e2e/NoStackOverflowOnShrink.spec.ts | 2 +- .../fast-check/test/e2e/Poisoning.spec.ts | 2 +- .../test/e2e/ReplayFailures.spec.ts | 2 +- .../e2e/arbitraries/ObjectArbitrary.spec.ts | 2 +- .../__test-helpers__/ArbitraryAssertions.ts | 2 +- .../builders/AnyArbitraryBuilder.spec.ts | 4 +- .../test/unit/arbitrary/commands.spec.ts | 2 +- .../unit/arbitrary/stringMatching.spec.ts | 2 +- .../test/unit/utils/stringify.spec.ts | 2 +- packages/poisoning/test/main.spec.ts | 2 +- 16 files changed, 41 insertions(+), 41 deletions(-) diff --git a/packages/fast-check/src/arbitrary/_internals/helpers/SlicesForStringBuilder.ts b/packages/fast-check/src/arbitrary/_internals/helpers/SlicesForStringBuilder.ts index ae4cf24642a..179960e9e9c 100644 --- a/packages/fast-check/src/arbitrary/_internals/helpers/SlicesForStringBuilder.ts +++ b/packages/fast-check/src/arbitrary/_internals/helpers/SlicesForStringBuilder.ts @@ -38,7 +38,7 @@ function computeCandidateString( let candidate: string[]; try { candidate = stringSplitter(dangerous); - } catch (err) { + } catch { // No split found for `dangerous`, `dangerous` cannot be shrunk by arrays made of `charArbitrary` return undefined; } diff --git a/packages/fast-check/src/check/arbitrary/definition/Arbitrary.ts b/packages/fast-check/src/check/arbitrary/definition/Arbitrary.ts index 71cff693523..f5b95522206 100644 --- a/packages/fast-check/src/check/arbitrary/definition/Arbitrary.ts +++ b/packages/fast-check/src/check/arbitrary/definition/Arbitrary.ts @@ -273,7 +273,7 @@ class MapArbitrary extends Arbitrary { try { const unmapped = this.unmapper(value); return this.arb.canShrinkWithoutContext(unmapped); - } catch (_err) { + } catch { return false; } } diff --git a/packages/fast-check/src/utils/apply.ts b/packages/fast-check/src/utils/apply.ts index 9feba15acf1..4ce74f18016 100644 --- a/packages/fast-check/src/utils/apply.ts +++ b/packages/fast-check/src/utils/apply.ts @@ -11,7 +11,7 @@ function safeExtractApply( ): ((thisArg: T) => TReturn) | undefined { try { return f.apply; - } catch (err) { + } catch { return undefined; } } diff --git a/packages/fast-check/src/utils/globals.ts b/packages/fast-check/src/utils/globals.ts index 3a3151ef72a..24bfa1c02a8 100644 --- a/packages/fast-check/src/utils/globals.ts +++ b/packages/fast-check/src/utils/globals.ts @@ -65,77 +65,77 @@ const untouchedEvery = Array.prototype.every; function extractForEach(instance: unknown[]) { try { return instance.forEach; - } catch (err) { + } catch { return undefined; } } function extractIndexOf(instance: readonly unknown[]) { try { return instance.indexOf; - } catch (err) { + } catch { return undefined; } } function extractJoin(instance: unknown[]) { try { return instance.join; - } catch (err) { + } catch { return undefined; } } function extractMap(instance: unknown[]) { try { return instance.map; - } catch (err) { + } catch { return undefined; } } function extractFilter(instance: unknown[]) { try { return instance.filter; - } catch (err) { + } catch { return undefined; } } function extractPush(instance: unknown[]) { try { return instance.push; - } catch (err) { + } catch { return undefined; } } function extractPop(instance: unknown[]) { try { return instance.pop; - } catch (err) { + } catch { return undefined; } } function extractSplice(instance: unknown[]) { try { return instance.splice; - } catch (err) { + } catch { return undefined; } } function extractSlice(instance: unknown[]) { try { return instance.slice; - } catch (err) { + } catch { return undefined; } } function extractSort(instance: unknown[]) { try { return instance.sort; - } catch (err) { + } catch { return undefined; } } function extractEvery(instance: unknown[]) { try { return instance.every; - } catch (err) { + } catch { return undefined; } } @@ -219,14 +219,14 @@ const untouchedToISOString = Date.prototype.toISOString; function extractGetTime(instance: Date) { try { return instance.getTime; - } catch (err) { + } catch { return undefined; } } function extractToISOString(instance: Date) { try { return instance.toISOString; - } catch (err) { + } catch { return undefined; } } @@ -249,7 +249,7 @@ const untouchedAdd = Set.prototype.add; function extractAdd(instance: Set) { try { return instance.add; - } catch (err) { + } catch { return undefined; } } @@ -274,63 +274,63 @@ const untouchedReplace: (pattern: RegExp | string, replacement: string) => strin function extractSplit(instance: string) { try { return instance.split; - } catch (err) { + } catch { return undefined; } } function extractStartsWith(instance: string) { try { return instance.startsWith; - } catch (err) { + } catch { return undefined; } } function extractEndsWith(instance: string) { try { return instance.endsWith; - } catch (err) { + } catch { return undefined; } } function extractSubstring(instance: string) { try { return instance.substring; - } catch (err) { + } catch { return undefined; } } function extractToLowerCase(instance: string) { try { return instance.toLowerCase; - } catch (err) { + } catch { return undefined; } } function extractToUpperCase(instance: string) { try { return instance.toUpperCase; - } catch (err) { + } catch { return undefined; } } function extractPadStart(instance: string) { try { return instance.padStart; - } catch (err) { + } catch { return undefined; } } function extractCharCodeAt(instance: string) { try { return instance.charCodeAt; - } catch (err) { + } catch { return undefined; } } function extractReplace(instance: string) { try { return instance.replace; - } catch (err) { + } catch { return undefined; } } @@ -404,7 +404,7 @@ const untouchedNumberToString = Number.prototype.toString; function extractNumberToString(instance: number) { try { return instance.toString; - } catch (err) { + } catch { return undefined; } } diff --git a/packages/fast-check/src/utils/stringify.ts b/packages/fast-check/src/utils/stringify.ts index c31d7dc1c3e..89e50b1154f 100644 --- a/packages/fast-check/src/utils/stringify.ts +++ b/packages/fast-check/src/utils/stringify.ts @@ -157,7 +157,7 @@ function stringifyInternal( // if user defined custom sync serialization function, we use it before next ones try { return value[toStringMethod](); - } catch (err) { + } catch { // fallback to defaults... } } @@ -212,7 +212,7 @@ function stringifyInternal( // Instance (or one of its parent prototypes) overrides the default toString of Object return (value as any).toString(); // <-- Can throw } - } catch (err) { + } catch { // Only return what would have been the default toString on Object return '[object Object]'; } diff --git a/packages/fast-check/test/e2e/NoRegression.spec.ts b/packages/fast-check/test/e2e/NoRegression.spec.ts index 97ca9451adf..002eca4a11b 100644 --- a/packages/fast-check/test/e2e/NoRegression.spec.ts +++ b/packages/fast-check/test/e2e/NoRegression.spec.ts @@ -788,7 +788,7 @@ describe(`NoRegression`, () => { try { fc.modelRun(setup, cmds); return true; - } catch (err) { + } catch { return false; } }, diff --git a/packages/fast-check/test/e2e/NoStackOverflowOnShrink.spec.ts b/packages/fast-check/test/e2e/NoStackOverflowOnShrink.spec.ts index df0e0eba4a8..555341567a5 100644 --- a/packages/fast-check/test/e2e/NoStackOverflowOnShrink.spec.ts +++ b/packages/fast-check/test/e2e/NoStackOverflowOnShrink.spec.ts @@ -12,7 +12,7 @@ const computeMaximalStackSize = () => { }; try { f(); - } catch (_err) { + } catch { // throws 'RangeError: Maximum call stack size exceeded' } return depth; diff --git a/packages/fast-check/test/e2e/Poisoning.spec.ts b/packages/fast-check/test/e2e/Poisoning.spec.ts index d7038bbef4d..84b2eb3480e 100644 --- a/packages/fast-check/test/e2e/Poisoning.spec.ts +++ b/packages/fast-check/test/e2e/Poisoning.spec.ts @@ -175,7 +175,7 @@ function dropAllFromObj(obj: unknown): (() => void)[] { const descriptor = safeObjectGetOwnPropertyDescriptor(obj, k)!; delete (obj as any)[k]; restores.push(() => safeObjectDefineProperty(obj, k, descriptor)); - } catch (err) { + } catch { // Object.prototype cannot be deleted, and others might too } } diff --git a/packages/fast-check/test/e2e/ReplayFailures.spec.ts b/packages/fast-check/test/e2e/ReplayFailures.spec.ts index 2b66503a97a..907f2d4b9f8 100644 --- a/packages/fast-check/test/e2e/ReplayFailures.spec.ts +++ b/packages/fast-check/test/e2e/ReplayFailures.spec.ts @@ -60,7 +60,7 @@ describe(`ReplayFailures (seed: ${seed})`, () => { expect(data).toEqual(out.counterexample![0]); validCallIndex = numCalls; ++numValidCalls; - } catch (err) { + } catch { // noop } ++numCalls; diff --git a/packages/fast-check/test/e2e/arbitraries/ObjectArbitrary.spec.ts b/packages/fast-check/test/e2e/arbitraries/ObjectArbitrary.spec.ts index c4493f0833c..0dac8f35792 100644 --- a/packages/fast-check/test/e2e/arbitraries/ObjectArbitrary.spec.ts +++ b/packages/fast-check/test/e2e/arbitraries/ObjectArbitrary.spec.ts @@ -30,7 +30,7 @@ describe(`ObjectArbitrary (seed: ${seed})`, () => { try { JSON.parse(revJson(json)); return false; - } catch (err) { + } catch { return true; } }), diff --git a/packages/fast-check/test/unit/arbitrary/__test-helpers__/ArbitraryAssertions.ts b/packages/fast-check/test/unit/arbitrary/__test-helpers__/ArbitraryAssertions.ts index e723d726b74..fa66f744b5f 100644 --- a/packages/fast-check/test/unit/arbitrary/__test-helpers__/ArbitraryAssertions.ts +++ b/packages/fast-check/test/unit/arbitrary/__test-helpers__/ArbitraryAssertions.ts @@ -234,7 +234,7 @@ export function assertProduceSomeSpecificValues( // We default numRuns to 1000, but let user override it whenever needed assertParameters: { numRuns: 1000, ...options.assertParameters, endOnFailure: true }, }); - } catch (err) { + } catch { // no-op } expect(foundOne).toBe(true); diff --git a/packages/fast-check/test/unit/arbitrary/_internals/builders/AnyArbitraryBuilder.spec.ts b/packages/fast-check/test/unit/arbitrary/_internals/builders/AnyArbitraryBuilder.spec.ts index ec103a7c28a..7adccb0b26f 100644 --- a/packages/fast-check/test/unit/arbitrary/_internals/builders/AnyArbitraryBuilder.spec.ts +++ b/packages/fast-check/test/unit/arbitrary/_internals/builders/AnyArbitraryBuilder.spec.ts @@ -224,7 +224,7 @@ function isStringified(v: unknown): boolean { try { eval(v); return true; // the string was correctly parsed - } catch (err) { + } catch { return false; // not a valid representation } } @@ -237,7 +237,7 @@ function isStringifiedAsKeys(v: unknown): boolean { try { eval(key); return true; // the string used as key the string representation of a JavaScript instance - } catch (err) { + } catch { // not a valid representation } } diff --git a/packages/fast-check/test/unit/arbitrary/commands.spec.ts b/packages/fast-check/test/unit/arbitrary/commands.spec.ts index b01471f75cf..6bf7e98137c 100644 --- a/packages/fast-check/test/unit/arbitrary/commands.spec.ts +++ b/packages/fast-check/test/unit/arbitrary/commands.spec.ts @@ -25,7 +25,7 @@ describe('commands (integration)', () => { if (!c.check(model)) continue; try { c.run(model, real); - } catch (err) { + } catch { return; } } diff --git a/packages/fast-check/test/unit/arbitrary/stringMatching.spec.ts b/packages/fast-check/test/unit/arbitrary/stringMatching.spec.ts index 38818743f25..9415d15cacf 100644 --- a/packages/fast-check/test/unit/arbitrary/stringMatching.spec.ts +++ b/packages/fast-check/test/unit/arbitrary/stringMatching.spec.ts @@ -77,7 +77,7 @@ function regexBasedOnChunks(): fc.Arbitrary { try { new RegExp('.', 'd'); // Not supported in Node 14 return true; - } catch (err) { + } catch { return false; } })(); diff --git a/packages/fast-check/test/unit/utils/stringify.spec.ts b/packages/fast-check/test/unit/utils/stringify.spec.ts index 8ceeb6c2d50..de2c8b5bae9 100644 --- a/packages/fast-check/test/unit/utils/stringify.spec.ts +++ b/packages/fast-check/test/unit/utils/stringify.spec.ts @@ -19,7 +19,7 @@ const checkEqual = (a: any, b: any): boolean => { try { expect(a).toEqual(b); return true; - } catch (err) { + } catch { return false; } }; diff --git a/packages/poisoning/test/main.spec.ts b/packages/poisoning/test/main.spec.ts index 8244c1360d4..ca42ae8bb28 100644 --- a/packages/poisoning/test/main.spec.ts +++ b/packages/poisoning/test/main.spec.ts @@ -119,7 +119,7 @@ describe('assertNoPoisoning', () => { // @ts-ignore delete obj[k]; ++numDeleted; - } catch (err) { + } catch { // Object.prototype cannot be deleted, and others might too } }