@abaplint/core 2.102.34 → 2.102.36

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.
@@ -10,10 +10,11 @@ class Loop {
10
10
  getMatcher() {
11
11
  const where = (0, combi_1.seq)("WHERE", (0, combi_1.alt)(expressions_1.ComponentCond, expressions_1.Dynamic));
12
12
  const group = (0, combi_1.ver)(version_1.Version.v740sp08, (0, combi_1.seq)("GROUP BY", loop_group_by_1.LoopGroupBy));
13
+ const step = (0, combi_1.ver)(version_1.Version.v757, (0, combi_1.seq)("STEP", expressions_1.Source));
13
14
  const from = (0, combi_1.seq)("FROM", expressions_1.Source);
14
15
  const to = (0, combi_1.seq)("TO", expressions_1.Source);
15
16
  const usingKey = (0, combi_1.seq)("USING KEY", (0, combi_1.altPrio)(expressions_1.SimpleName, expressions_1.Dynamic));
16
- const options = (0, combi_1.per)(expressions_1.LoopTarget, from, to, where, usingKey, group);
17
+ const options = (0, combi_1.per)(expressions_1.LoopTarget, from, to, where, usingKey, group, step);
17
18
  const at = (0, combi_1.seq)("AT", (0, combi_1.opt)((0, combi_1.seq)("SCREEN", (0, combi_1.failCombinator)())), (0, combi_1.opt)((0, combi_1.ver)(version_1.Version.v740sp08, "GROUP")), (0, combi_1.alt)(simple_source2_1.SimpleSource2, (0, combi_1.ver)(version_1.Version.v740sp02, expressions_1.Source)), (0, combi_1.opt)(options));
18
19
  return (0, combi_1.seq)("LOOP", (0, combi_1.opt)(at));
19
20
  }
@@ -7,7 +7,7 @@ const version_1 = require("../../../version");
7
7
  class ReadTextpool {
8
8
  getMatcher() {
9
9
  const language = (0, combi_1.seq)("LANGUAGE", expressions_1.Source);
10
- const into = (0, combi_1.seq)("INTO", expressions_1.Target);
10
+ const into = (0, combi_1.seq)("INTO", expressions_1.SimpleTarget);
11
11
  const state = (0, combi_1.seq)("STATE", expressions_1.Source);
12
12
  const ret = (0, combi_1.seq)("READ TEXTPOOL", expressions_1.Source, (0, combi_1.per)(into, language, state));
13
13
  return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
@@ -420,6 +420,9 @@ class TypeUtils {
420
420
  else if (target.containsVoid() === true) {
421
421
  return true;
422
422
  }
423
+ else if (source instanceof basic_1.StringType && this.structureContainsString(target)) {
424
+ return false;
425
+ }
423
426
  else if (source instanceof basic_1.IntegerType) {
424
427
  return false;
425
428
  }
@@ -9,7 +9,7 @@ class ReadTextpool {
9
9
  for (const s of node.findDirectExpressions(Expressions.Source)) {
10
10
  new source_1.Source().runSyntax(s, scope, filename);
11
11
  }
12
- for (const t of node.findDirectExpressions(Expressions.Target)) {
12
+ for (const t of node.findDirectExpressions(Expressions.SimpleTarget)) {
13
13
  new target_1.Target().runSyntax(t, scope, filename);
14
14
  }
15
15
  }
@@ -124,9 +124,10 @@ class RenamerHelper {
124
124
  renameFiles(obj, oldName, name) {
125
125
  const list = [];
126
126
  const newName = name.toLowerCase().replace(/\//g, "#");
127
+ oldName = oldName.toLowerCase().replace(/\//g, "#");
127
128
  for (const f of obj.getFiles()) {
128
129
  // todo, this is not completely correct, ie. if the URI contains the same directory name as the object name
129
- const newFilename = f.getFilename().replace(oldName.toLowerCase(), newName.toLowerCase());
130
+ const newFilename = f.getFilename().replace(oldName, newName);
130
131
  list.push(vscode_languageserver_types_1.RenameFile.create(f.getFilename(), newFilename));
131
132
  }
132
133
  return list;
@@ -65,7 +65,7 @@ class Registry {
65
65
  }
66
66
  static abaplintVersion() {
67
67
  // magic, see build script "version.sh"
68
- return "2.102.34";
68
+ return "2.102.36";
69
69
  }
70
70
  getDDICReferences() {
71
71
  return this.ddicReferences;
@@ -98,7 +98,7 @@ class MessageExistsRule {
98
98
  const msag = this.reg.getObject("MSAG", ref.messageClass);
99
99
  if (msag === undefined) {
100
100
  if (new ddic_1.DDIC(this.reg).inErrorNamespace(ref.messageClass) === true) {
101
- const message = "Message class \"" + ref.token.getStr() + "\" not found";
101
+ const message = "Message class \"" + ref.messageClass + "\" not found";
102
102
  issues.push(issue_1.Issue.atToken(file, ref.token, message, this.getMetadata().key, this.conf.severity));
103
103
  }
104
104
  continue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/core",
3
- "version": "2.102.34",
3
+ "version": "2.102.36",
4
4
  "description": "abaplint - Core API",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/abaplint.d.ts",
@@ -51,11 +51,11 @@
51
51
  "homepage": "https://abaplint.org",
52
52
  "devDependencies": {
53
53
  "@microsoft/api-extractor": "^7.36.4",
54
- "@types/chai": "^4.3.5",
54
+ "@types/chai": "^4.3.6",
55
55
  "@types/mocha": "^10.0.1",
56
- "@types/node": "^20.5.7",
56
+ "@types/node": "^20.6.0",
57
57
  "chai": "^4.3.8",
58
- "eslint": "^8.48.0",
58
+ "eslint": "^8.49.0",
59
59
  "mocha": "^10.2.0",
60
60
  "c8": "^8.0.1",
61
61
  "source-map-support": "^0.5.21",