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 10995x 10995x 10995x 10995x 32804x 32804x 32804x 32804x 32804x 32804x 32804x 32804x 10995x 10995x 10444x 10444x 10995x 10995x 260x 260x 10995x 10995x 274x 274x 274x 274x 274x 1549x 10x 1x 1x 9x 9x 9x 1549x 274x 274x 274x 10995x 10995x | 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; } } |