UNPKG

@maniascript/mslint

Version:
27 lines (26 loc) 987 B
import {} from '../linter/rule.js'; import { FunctionDeclaration } from '@maniascript/parser'; export const noDupeParameters = { meta: { id: 'no-dupe-parameters', description: 'Forbid duplicate parameters in function definitions', recommended: true }, create(context) { return { 'FunctionDeclaration:exit': (node) => { if (node instanceof FunctionDeclaration && node.parameters.length > 0) { const parametersName = new Set(); for (const parameter of node.parameters) { if (parametersName.has(parameter.name.name)) { context.report(parameter.name, `Duplicated parameter '${parameter.name.name}'`); } else { parametersName.add(parameter.name.name); } } } } }; } };