@abaplint/core 2.95.46 → 2.95.48

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.
@@ -65,7 +65,7 @@ class Source {
65
65
  {
66
66
  const foundType = this.determineType(node, scope, filename, targetType);
67
67
  const bodyType = new reduce_body_1.ReduceBody().runSyntax(node.findDirectExpression(Expressions.ReduceBody), scope, filename, foundType);
68
- if (foundType === undefined) {
68
+ if (foundType === undefined || foundType.isGeneric() === true) {
69
69
  this.addIfInferred(node, scope, filename, bodyType);
70
70
  }
71
71
  return foundType ? foundType : bodyType;
@@ -74,7 +74,7 @@ class Source {
74
74
  {
75
75
  const foundType = this.determineType(node, scope, filename, targetType);
76
76
  const bodyType = new switch_body_1.SwitchBody().runSyntax(node.findDirectExpression(Expressions.SwitchBody), scope, filename);
77
- if (foundType === undefined) {
77
+ if (foundType === undefined || foundType.isGeneric() === true) {
78
78
  this.addIfInferred(node, scope, filename, bodyType);
79
79
  }
80
80
  return foundType ? foundType : bodyType;
@@ -83,7 +83,7 @@ class Source {
83
83
  {
84
84
  const foundType = this.determineType(node, scope, filename, targetType);
85
85
  const bodyType = new cond_body_1.CondBody().runSyntax(node.findDirectExpression(Expressions.CondBody), scope, filename, foundType);
86
- if (foundType === undefined) {
86
+ if (foundType === undefined || foundType.isGeneric() === true) {
87
87
  this.addIfInferred(node, scope, filename, bodyType);
88
88
  }
89
89
  return foundType ? foundType : bodyType;
@@ -9,7 +9,7 @@ class StringTemplate {
9
9
  for (const s of node.findAllExpressions(Expressions.Source)) {
10
10
  new source_1.Source().runSyntax(s, scope, filename, new basic_1.StringType({ qualifiedName: "STRING" }));
11
11
  }
12
- return new basic_1.StringType();
12
+ return new basic_1.StringType({ qualifiedName: "STRING" });
13
13
  }
14
14
  }
15
15
  exports.StringTemplate = StringTemplate;
@@ -63,7 +63,7 @@ class Registry {
63
63
  }
64
64
  static abaplintVersion() {
65
65
  // magic, see build script "version.sh"
66
- return "2.95.46";
66
+ return "2.95.48";
67
67
  }
68
68
  getDDICReferences() {
69
69
  return this.references;
@@ -285,6 +285,16 @@ Only one transformation is applied to a statement at a time, so multiple steps m
285
285
  }
286
286
  }
287
287
  }
288
+ else if (ret.length === 0 && / xsdbool\(/i.test(lowFile.getRaw())) {
289
+ for (let i = 0; i < lowStatements.length; i++) {
290
+ const high = highStatements[i];
291
+ const issue = this.replaceXsdBool(high, lowFile, highSyntax);
292
+ if (issue) {
293
+ ret.push(issue);
294
+ break;
295
+ }
296
+ }
297
+ }
288
298
  }
289
299
  return ret;
290
300
  }
@@ -315,7 +325,12 @@ Only one transformation is applied to a statement at a time, so multiple steps m
315
325
  if (low.getFirstToken().getStart() instanceof position_1.VirtualPosition) {
316
326
  return undefined;
317
327
  }
318
- let found = this.downportEnum(low, high, lowFile, highSyntax, highFile);
328
+ // downport XSDBOOL() early, as it is valid 702 syntax
329
+ let found = this.replaceXsdBool(high, lowFile, highSyntax);
330
+ if (found) {
331
+ return found;
332
+ }
333
+ found = this.downportEnum(low, high, lowFile, highSyntax, highFile);
319
334
  if (found) {
320
335
  return found;
321
336
  }
@@ -457,10 +472,6 @@ Only one transformation is applied to a statement at a time, so multiple steps m
457
472
  if (found) {
458
473
  return found;
459
474
  }
460
- found = this.replaceXsdBool(high, lowFile, highSyntax);
461
- if (found) {
462
- return found;
463
- }
464
475
  found = this.replaceLineFunctions(high, lowFile, highSyntax, highFile);
465
476
  if (found) {
466
477
  return found;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/core",
3
- "version": "2.95.46",
3
+ "version": "2.95.48",
4
4
  "description": "abaplint - Core API",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/abaplint.d.ts",
@@ -50,7 +50,7 @@
50
50
  "@microsoft/api-extractor": "^7.34.4",
51
51
  "@types/chai": "^4.3.4",
52
52
  "@types/mocha": "^10.0.1",
53
- "@types/node": "^18.15.3",
53
+ "@types/node": "^18.15.5",
54
54
  "chai": "^4.3.7",
55
55
  "eslint": "^8.36.0",
56
56
  "mocha": "^10.2.0",