@abaplint/core
Version:
abaplint - Core API
56 lines • 2.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TablesDeclaredLocally = exports.TablesDeclaredLocallyConf = void 0;
const issue_1 = require("../issue");
const Statements = require("../abap/2_statements/statements");
const Structures = require("../abap/3_structures/structures");
const _abap_rule_1 = require("./_abap_rule");
const _basic_rule_config_1 = require("./_basic_rule_config");
const _irule_1 = require("./_irule");
class TablesDeclaredLocallyConf extends _basic_rule_config_1.BasicRuleConfig {
}
exports.TablesDeclaredLocallyConf = TablesDeclaredLocallyConf;
class TablesDeclaredLocally extends _abap_rule_1.ABAPRule {
constructor() {
super(...arguments);
this.conf = new TablesDeclaredLocallyConf();
}
getMetadata() {
return {
key: "tables_declared_locally",
title: "Check for locally declared TABLES",
shortDescription: `TABLES are always global, so declare them globally`,
extendedInformation: `https://help.sap.com/doc/abapdocu_752_index_htm/7.52/en-us/abaptables.htm`,
tags: [_irule_1.RuleTag.SingleFile],
badExample: `FORM foo.
TABLES t100.
ENDFORM.`,
goodExample: `TABLES t000.`,
};
}
getConfig() {
return this.conf;
}
setConfig(conf) {
this.conf = conf;
}
runParsed(file) {
const issues = [];
const structure = file.getStructure();
if (structure === undefined) {
return issues;
}
const procedures = structure.findAllStructuresMulti([Structures.Form, Structures.FunctionModule]);
for (const p of procedures) {
const tablesStatement = p.findFirstStatement(Statements.Tables);
if (tablesStatement) {
const message = "Declare TABLES globaly";
const issue = issue_1.Issue.atStatement(file, tablesStatement, message, this.getMetadata().key, this.conf.severity);
issues.push(issue);
}
}
return issues;
}
}
exports.TablesDeclaredLocally = TablesDeclaredLocally;
//# sourceMappingURL=tables_declared_locally.js.map