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 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 11057x 11057x 11057x 11057x 32989x 32989x 32989x 32989x 32989x 32989x 32989x 32989x 11057x 11057x 10504x 10504x 11057x 11057x 261x 261x 11057x 11057x 275x 275x 275x 275x 275x 1550x 10x 1x 1x 9x 9x 9x 1550x 275x 275x 275x 11057x 11057x | import {Issue} from "../issue"; import {BasicRuleConfig} from "./_basic_rule_config"; import {ABAPRule} from "./_abap_rule"; import * as Statements from "../abap/2_statements/statements"; import {IRuleMetadata, RuleTag} from "./_irule"; import {ABAPFile} from "../abap/abap_file"; import {StatementNode} from "../abap/nodes"; export class NoAliasesConf extends BasicRuleConfig { } export class NoAliases extends ABAPRule { private conf = new NoAliasesConf(); public getMetadata(): IRuleMetadata { return { key: "no_aliases", title: "No ALIASES", shortDescription: `Detects use of the ALIAS statement`, extendedInformation: `Only one issue is reported for chained statements`, tags: [RuleTag.SingleFile], }; } public getConfig() { return this.conf; } public setConfig(conf: NoAliasesConf) { this.conf = conf; } public runParsed(file: ABAPFile) { const issues: Issue[] = []; const message = "Do not use ALIASES"; let prev: StatementNode | undefined = undefined; for (const stat of file.getStatements()) { if (stat.get() instanceof Statements.Aliases) { if (prev && prev.getColon() === stat.getColon()) { continue; } issues.push(Issue.atStatement(file, stat, message, this.getMetadata().key, this.conf.severity)); prev = stat; } } return issues; } } |