js-slang
Version:
Javascript-based implementations of Source, written in Typescript
29 lines • 1.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.noConstDeclarationInForLoopInit = exports.NoConstDeclarationInForLoopInit = void 0;
const formatters_1 = require("../../../utils/formatters");
const errors_1 = require("../../errors");
class NoConstDeclarationInForLoopInit extends errors_1.RuleError {
explain() {
return 'Const declaration in init part of for statement is not allowed.';
}
elaborate() {
return (0, formatters_1.stripIndent) `
The init part of this statement cannot contain a const declaration, use a let declaration instead.
`;
}
}
exports.NoConstDeclarationInForLoopInit = NoConstDeclarationInForLoopInit;
const noConstDeclarationInForLoopInit = {
name: 'no-const-declaration-in-for-loop-init',
checkers: {
ForStatement(node) {
if (node.init && node.init.type === 'VariableDeclaration' && node.init.kind === 'const') {
return [new NoConstDeclarationInForLoopInit(node)];
}
return [];
}
}
};
exports.noConstDeclarationInForLoopInit = noConstDeclarationInForLoopInit;
//# sourceMappingURL=noConstDeclarationInForLoopInit.js.map