@abaplint/core
Version:
abaplint - Core API
69 lines • 2.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.OmitReceiving = exports.OmitReceivingConf = void 0;
const issue_1 = require("../issue");
const _basic_rule_config_1 = require("./_basic_rule_config");
const _irule_1 = require("./_irule");
const Expressions = require("../abap/2_statements/expressions");
const _abap_rule_1 = require("./_abap_rule");
class OmitReceivingConf extends _basic_rule_config_1.BasicRuleConfig {
}
exports.OmitReceivingConf = OmitReceivingConf;
class OmitReceiving extends _abap_rule_1.ABAPRule {
constructor() {
super(...arguments);
this.conf = new OmitReceivingConf();
}
getMetadata() {
return {
key: "omit_receiving",
title: "Omit RECEIVING",
shortDescription: `Omit RECEIVING`,
extendedInformation: `https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#omit-receiving`,
tags: [_irule_1.RuleTag.Styleguide, _irule_1.RuleTag.SingleFile],
badExample: `
upload_pack(
EXPORTING
io_client = lo_client
iv_url = iv_url
iv_deepen_level = iv_deepen_level
it_hashes = lt_hashes
RECEIVING
rt_objects = et_objects ).`,
goodExample: `
et_objects = upload_pack(
io_client = lo_client
iv_url = iv_url
iv_deepen_level = iv_deepen_level
it_hashes = lt_hashes ).`,
};
}
getConfig() {
return this.conf;
}
setConfig(conf) {
this.conf = conf;
}
runParsed(file) {
var _a;
const issues = [];
for (const e of ((_a = file.getStructure()) === null || _a === void 0 ? void 0 : _a.findAllExpressions(Expressions.MethodCallParam)) || []) {
const p = e.findDirectExpression(Expressions.MethodParameters);
if (p === undefined) {
continue;
}
const r = p.findDirectTokenByText("RECEIVING");
if (r === undefined) {
continue;
}
const ex = p.findDirectTokenByText("EXCEPTIONS");
if (ex !== undefined) {
continue;
}
issues.push(issue_1.Issue.atToken(file, r, "Omit RECEIVING", this.getMetadata().key, this.getConfig().severity));
}
return issues;
}
}
exports.OmitReceiving = OmitReceiving;
//# sourceMappingURL=omit_receiving.js.map