From efe561e112c3c5a4b2f7fe790f2347f9a101881b Mon Sep 17 00:00:00 2001 From: Jack Franklin Date: Mon, 6 Apr 2020 11:36:28 +0100 Subject: [PATCH] chore: fix DocLint method diffing (#5594) Our logic around missing methods wasn't quite right; if there is no set of missing methods for a class it _is_ an error and we still need to report it, we don't want to `continue`. --- utils/doclint/check_public_api/index.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/utils/doclint/check_public_api/index.js b/utils/doclint/check_public_api/index.js index 838cdc834bc39..8478d2e31ccbc 100644 --- a/utils/doclint/check_public_api/index.js +++ b/utils/doclint/check_public_api/index.js @@ -172,6 +172,7 @@ function compareDocumentations(actual, expected) { const actualClasses = Array.from(actual.classes.keys()).sort(); const expectedClasses = Array.from(expected.classes.keys()).sort(); const classesDiff = diff(actualClasses, expectedClasses); + for (const className of classesDiff.extra) errors.push(`Non-existing class found: ${className}`); for (const className of classesDiff.missing) @@ -183,10 +184,11 @@ function compareDocumentations(actual, expected) { const actualMethods = Array.from(actualClass.methods.keys()).sort(); const expectedMethods = Array.from(expectedClass.methods.keys()).sort(); const methodDiff = diff(actualMethods, expectedMethods); + for (const methodName of methodDiff.extra) { const missingMethodsForClass = expectedNonExistingMethods.get(className); - if (!missingMethodsForClass) continue; - if (missingMethodsForClass.has(methodName)) continue; + if (missingMethodsForClass && missingMethodsForClass.has(methodName)) continue; + errors.push(`Non-existing method found: ${className}.${methodName}()`); } for (const methodName of methodDiff.missing)