Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 11011x 11011x 11011x 11011x 32888x 32888x 32888x 32888x 32888x 32888x 32888x 32888x 32888x 32888x 32888x 32888x 32888x 32888x 32888x 32888x 32888x 32888x 32888x 32888x 32888x 32888x 32888x 11011x 11011x 10493x 10493x 11011x 11011x 243x 243x 11011x 11011x 265x 265x 265x 7x 7x 6x 6x 1x 1x 7x 1x 7x 1x 1x 1x 265x 265x 265x 11011x 11011x | import {Issue} from "../issue";
import {BasicRuleConfig} from "./_basic_rule_config";
import {IRuleMetadata, RuleTag} from "./_irule";
import * as Expressions from "../abap/2_statements/expressions";
import {ABAPRule} from "./_abap_rule";
import {ABAPFile} from "../abap/abap_file";
export class OmitReceivingConf extends BasicRuleConfig {
}
export class OmitReceiving extends ABAPRule {
private conf = new OmitReceivingConf();
public getMetadata(): IRuleMetadata {
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: [RuleTag.Styleguide, 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 ).`,
};
}
public getConfig() {
return this.conf;
}
public setConfig(conf: OmitReceivingConf) {
this.conf = conf;
}
public runParsed(file: ABAPFile) {
const issues: Issue[] = [];
for (const e of file.getStructure()?.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.atToken(file, r, "Omit RECEIVING", this.getMetadata().key, this.getConfig().severity));
}
return issues;
}
}
|