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 11217x 11217x 11217x 11217x 33488x 33488x 33488x 33488x 33488x 33488x 33488x 33488x 33488x 33488x 33488x 33488x 33488x 33488x 33488x 33488x 33488x 33488x 33488x 33488x 33488x 33488x 33488x 11217x 11217x 10731x 10731x 11217x 11217x 227x 227x 11217x 11217x 240x 240x 240x 7x 7x 6x 6x 1x 1x 7x 1x 7x 1x 1x 1x 240x 240x 240x 11217x 11217x | 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; } } |