UNPKG

@abaplint/core

Version:
56 lines 2.2 kB
"use strict"; 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