@abaplint/core
Version:
abaplint - Core API
49 lines • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NoAliases = exports.NoAliasesConf = void 0;
const issue_1 = require("../issue");
const _basic_rule_config_1 = require("./_basic_rule_config");
const _abap_rule_1 = require("./_abap_rule");
const Statements = require("../abap/2_statements/statements");
const _irule_1 = require("./_irule");
class NoAliasesConf extends _basic_rule_config_1.BasicRuleConfig {
}
exports.NoAliasesConf = NoAliasesConf;
class NoAliases extends _abap_rule_1.ABAPRule {
constructor() {
super(...arguments);
this.conf = new NoAliasesConf();
}
getMetadata() {
return {
key: "no_aliases",
title: "No ALIASES",
shortDescription: `Detects use of the ALIAS statement`,
extendedInformation: `Only one issue is reported for chained statements`,
tags: [_irule_1.RuleTag.SingleFile],
};
}
getConfig() {
return this.conf;
}
setConfig(conf) {
this.conf = conf;
}
runParsed(file) {
const issues = [];
const message = "Do not use ALIASES";
let prev = undefined;
for (const stat of file.getStatements()) {
if (stat.get() instanceof Statements.Aliases) {
if (prev && prev.getColon() === stat.getColon()) {
continue;
}
issues.push(issue_1.Issue.atStatement(file, stat, message, this.getMetadata().key, this.conf.severity));
prev = stat;
}
}
return issues;
}
}
exports.NoAliases = NoAliases;
//# sourceMappingURL=no_aliases.js.map