@abaplint/core 2.119.13 → 2.119.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -74,7 +74,7 @@ class Registry {
74
74
  }
75
75
  static abaplintVersion() {
76
76
  // magic, see build script "version.sh"
77
- return "2.119.13";
77
+ return "2.119.15";
78
78
  }
79
79
  getDDICReferences() {
80
80
  return this.ddicReferences;
@@ -4,9 +4,14 @@ exports.NoAliases = exports.NoAliasesConf = void 0;
4
4
  const issue_1 = require("../issue");
5
5
  const _basic_rule_config_1 = require("./_basic_rule_config");
6
6
  const _abap_rule_1 = require("./_abap_rule");
7
- const Statements = require("../abap/2_statements/statements");
8
7
  const _irule_1 = require("./_irule");
8
+ const visibility_1 = require("../abap/4_file_information/visibility");
9
9
  class NoAliasesConf extends _basic_rule_config_1.BasicRuleConfig {
10
+ constructor() {
11
+ super(...arguments);
12
+ /** Skip reporting aliases in private sections. */
13
+ this.ignorePrivate = false;
14
+ }
10
15
  }
11
16
  exports.NoAliasesConf = NoAliasesConf;
12
17
  class NoAliases extends _abap_rule_1.ABAPRule {
@@ -19,7 +24,6 @@ class NoAliases extends _abap_rule_1.ABAPRule {
19
24
  key: "no_aliases",
20
25
  title: "No ALIASES",
21
26
  shortDescription: `Detects use of the ALIAS statement`,
22
- extendedInformation: `Only one issue is reported for chained statements`,
23
27
  tags: [_irule_1.RuleTag.SingleFile],
24
28
  };
25
29
  }
@@ -32,18 +36,24 @@ class NoAliases extends _abap_rule_1.ABAPRule {
32
36
  runParsed(file) {
33
37
  const issues = [];
34
38
  const message = "Do not use ALIASES";
35
- let prev = undefined;
36
- for (const stat of file.getStatements()) {
37
- if (stat.get() instanceof Statements.Aliases) {
38
- if (prev && prev.getColon() === stat.getColon()) {
39
+ for (const classDef of file.getInfo().listClassDefinitions()) {
40
+ for (const alias of classDef.aliases) {
41
+ if (this.skipAlias(alias)) {
39
42
  continue;
40
43
  }
41
- issues.push(issue_1.Issue.atStatement(file, stat, message, this.getMetadata().key, this.conf.severity));
42
- prev = stat;
44
+ issues.push(issue_1.Issue.atIdentifier(alias.identifier, message, this.getMetadata().key, this.conf.severity));
45
+ }
46
+ }
47
+ for (const interfaceDef of file.getInfo().listInterfaceDefinitions()) {
48
+ for (const alias of interfaceDef.aliases) {
49
+ issues.push(issue_1.Issue.atIdentifier(alias.identifier, message, this.getMetadata().key, this.conf.severity));
43
50
  }
44
51
  }
45
52
  return issues;
46
53
  }
54
+ skipAlias(alias) {
55
+ return this.conf.ignorePrivate === true && alias.visibility === visibility_1.Visibility.Private;
56
+ }
47
57
  }
48
58
  exports.NoAliases = NoAliases;
49
59
  //# sourceMappingURL=no_aliases.js.map
@@ -44,10 +44,6 @@ class UnreachableCode extends _abap_rule_1.ABAPRule {
44
44
  || node.get() instanceof _statement_1.Empty) {
45
45
  continue;
46
46
  }
47
- else if (this.isExit(node)) {
48
- exit = true;
49
- continue;
50
- }
51
47
  else if (this.isStructure(node.get())) {
52
48
  exit = false;
53
49
  continue;
@@ -56,6 +52,11 @@ class UnreachableCode extends _abap_rule_1.ABAPRule {
56
52
  const issue = issue_1.Issue.atStatement(file, node, this.getMessage(), this.getMetadata().key, this.conf.severity);
57
53
  output.push(issue);
58
54
  exit = false;
55
+ continue;
56
+ }
57
+ else if (this.isExit(node)) {
58
+ exit = true;
59
+ continue;
59
60
  }
60
61
  }
61
62
  return output;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/core",
3
- "version": "2.119.13",
3
+ "version": "2.119.15",
4
4
  "description": "abaplint - Core API",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/abaplint.d.ts",