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 10998x 10998x 10998x 10998x 32813x 32813x 32813x 32813x 32813x 32813x 32813x 32813x 10998x 10998x 10447x 10447x 10998x 10998x 260x 260x 10998x 10998x 274x 274x 274x 274x 274x 1549x 10x 1x 1x 9x 9x 9x 1549x 274x 274x 274x 10998x 10998x | 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; } } |