@abaplint/core 2.102.35 → 2.102.37

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.
@@ -281,18 +281,23 @@ class TypeUtils {
281
281
  }
282
282
  return true;
283
283
  }
284
- else if (source instanceof basic_1.StructureType && target instanceof basic_1.StructureType) {
285
- const sourceComponents = source.getComponents();
286
- const targetComponents = target.getComponents();
287
- if (sourceComponents.length !== targetComponents.length) {
288
- return false;
289
- }
290
- for (let i = 0; i < sourceComponents.length; i++) {
291
- if (this.isAssignableStrict(sourceComponents[i].type, targetComponents[i].type) === false) {
284
+ else if (source instanceof basic_1.StructureType) {
285
+ if (target instanceof basic_1.StructureType) {
286
+ const sourceComponents = source.getComponents();
287
+ const targetComponents = target.getComponents();
288
+ if (sourceComponents.length !== targetComponents.length) {
292
289
  return false;
293
290
  }
291
+ for (let i = 0; i < sourceComponents.length; i++) {
292
+ if (this.isAssignableStrict(sourceComponents[i].type, targetComponents[i].type) === false) {
293
+ return false;
294
+ }
295
+ }
296
+ return true;
297
+ }
298
+ else if (target instanceof basic_1.CharacterType) {
299
+ return false;
294
300
  }
295
- return true;
296
301
  }
297
302
  else if (source instanceof basic_1.Integer8Type) {
298
303
  if (target instanceof basic_1.IntegerType || target instanceof basic_1.StringType) {
@@ -420,6 +425,9 @@ class TypeUtils {
420
425
  else if (target.containsVoid() === true) {
421
426
  return true;
422
427
  }
428
+ else if (source instanceof basic_1.StringType && this.structureContainsString(target)) {
429
+ return false;
430
+ }
423
431
  else if (source instanceof basic_1.IntegerType) {
424
432
  return false;
425
433
  }
@@ -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.35";
68
+ return "2.102.37";
69
69
  }
70
70
  getDDICReferences() {
71
71
  return this.ddicReferences;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/core",
3
- "version": "2.102.35",
3
+ "version": "2.102.37",
4
4
  "description": "abaplint - Core API",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/abaplint.d.ts",
@@ -53,9 +53,9 @@
53
53
  "@microsoft/api-extractor": "^7.36.4",
54
54
  "@types/chai": "^4.3.6",
55
55
  "@types/mocha": "^10.0.1",
56
- "@types/node": "^20.5.9",
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",