tools: simplify prefer-common-mustnotcall rule
PR-URL: https://github.com/nodejs/node/pull/17572 Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
This commit is contained in:
parent
c84ca17305
commit
e4a71098ef
@ -10,30 +10,21 @@
|
||||
|
||||
const msg = 'Please use common.mustNotCall(msg) instead of ' +
|
||||
'common.mustCall(fn, 0) or common.mustCall(0).';
|
||||
|
||||
function isCommonMustCall(node) {
|
||||
return node &&
|
||||
node.callee &&
|
||||
node.callee.object &&
|
||||
node.callee.object.name === 'common' &&
|
||||
node.callee.property &&
|
||||
node.callee.property.name === 'mustCall';
|
||||
}
|
||||
|
||||
function isArgZero(argument) {
|
||||
return argument &&
|
||||
typeof argument.value === 'number' &&
|
||||
argument.value === 0;
|
||||
}
|
||||
const mustCallSelector = 'CallExpression[callee.object.name="common"]' +
|
||||
'[callee.property.name="mustCall"]';
|
||||
const arg0Selector = `${mustCallSelector}[arguments.0.value=0]`;
|
||||
const arg1Selector = `${mustCallSelector}[arguments.1.value=0]`;
|
||||
|
||||
module.exports = function(context) {
|
||||
function report(node) {
|
||||
context.report(node, msg);
|
||||
}
|
||||
|
||||
return {
|
||||
CallExpression(node) {
|
||||
if (isCommonMustCall(node) &&
|
||||
(isArgZero(node.arguments[0]) || // catch common.mustCall(0)
|
||||
isArgZero(node.arguments[1]))) { // catch common.mustCall(fn, 0)
|
||||
context.report(node, msg);
|
||||
}
|
||||
}
|
||||
// Catch common.mustCall(0)
|
||||
[arg0Selector]: report,
|
||||
|
||||
// Catch common.mustCall(fn, 0)
|
||||
[arg1Selector]: report
|
||||
};
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user