@abaplint/cli 2.113.226 → 2.113.227

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.
Files changed (2) hide show
  1. package/build/cli.js +88 -5
  2. package/package.json +2 -2
package/build/cli.js CHANGED
@@ -32068,6 +32068,30 @@ exports.Format = Format;
32068
32068
 
32069
32069
  /***/ }),
32070
32070
 
32071
+ /***/ "./node_modules/@abaplint/core/build/src/abap/5_syntax/statements/free.js":
32072
+ /*!********************************************************************************!*\
32073
+ !*** ./node_modules/@abaplint/core/build/src/abap/5_syntax/statements/free.js ***!
32074
+ \********************************************************************************/
32075
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
32076
+
32077
+ "use strict";
32078
+
32079
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
32080
+ exports.Free = void 0;
32081
+ const Expressions = __webpack_require__(/*! ../../2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
32082
+ const target_1 = __webpack_require__(/*! ../expressions/target */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/target.js");
32083
+ class Free {
32084
+ runSyntax(node, input) {
32085
+ for (const t of node.findDirectExpressions(Expressions.Target)) {
32086
+ target_1.Target.runSyntax(t, input);
32087
+ }
32088
+ }
32089
+ }
32090
+ exports.Free = Free;
32091
+ //# sourceMappingURL=free.js.map
32092
+
32093
+ /***/ }),
32094
+
32071
32095
  /***/ "./node_modules/@abaplint/core/build/src/abap/5_syntax/statements/get_badi.js":
32072
32096
  /*!************************************************************************************!*\
32073
32097
  !*** ./node_modules/@abaplint/core/build/src/abap/5_syntax/statements/get_badi.js ***!
@@ -32440,7 +32464,7 @@ const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "./node_modu
32440
32464
  const assert_error_1 = __webpack_require__(/*! ../assert_error */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/assert_error.js");
32441
32465
  class IncludeType {
32442
32466
  runSyntax(node, input) {
32443
- var _a, _b, _c;
32467
+ var _a, _b, _c, _d, _e;
32444
32468
  const components = [];
32445
32469
  const iname = node.findFirstExpression(Expressions.TypeName);
32446
32470
  if (iname === undefined) {
@@ -32455,7 +32479,10 @@ class IncludeType {
32455
32479
  ityp = found;
32456
32480
  }
32457
32481
  }
32458
- const as = (_b = node.findExpressionAfterToken("AS")) === null || _b === void 0 ? void 0 : _b.concatTokens();
32482
+ else if (ityp instanceof basic_1.UnknownType) {
32483
+ ityp = (_c = (_b = input.scope.findVariable(name)) === null || _b === void 0 ? void 0 : _b.getType()) !== null && _c !== void 0 ? _c : ityp;
32484
+ }
32485
+ const as = (_d = node.findExpressionAfterToken("AS")) === null || _d === void 0 ? void 0 : _d.concatTokens();
32459
32486
  if (as && ityp instanceof basic_1.StructureType) {
32460
32487
  ityp = new basic_1.StructureType(ityp.getComponents().concat([{
32461
32488
  name: as,
@@ -32469,12 +32496,15 @@ class IncludeType {
32469
32496
  if (ityp instanceof basic_1.VoidType) {
32470
32497
  return ityp;
32471
32498
  }
32499
+ else if (ityp instanceof basic_1.UnknownType) {
32500
+ return ityp;
32501
+ }
32472
32502
  if (!(ityp instanceof basic_1.StructureType)) {
32473
32503
  const message = "not structured, " + name;
32474
32504
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, iname.getFirstToken(), message));
32475
32505
  return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
32476
32506
  }
32477
- const suffix = (_c = node.findExpressionAfterToken("SUFFIX")) === null || _c === void 0 ? void 0 : _c.concatTokens();
32507
+ const suffix = (_e = node.findExpressionAfterToken("SUFFIX")) === null || _e === void 0 ? void 0 : _e.concatTokens();
32478
32508
  if (suffix && ityp instanceof basic_1.StructureType) {
32479
32509
  const components = [];
32480
32510
  for (const c of ityp.getComponents()) {
@@ -34034,6 +34064,30 @@ exports.Receive = Receive;
34034
34064
 
34035
34065
  /***/ }),
34036
34066
 
34067
+ /***/ "./node_modules/@abaplint/core/build/src/abap/5_syntax/statements/refresh.js":
34068
+ /*!***********************************************************************************!*\
34069
+ !*** ./node_modules/@abaplint/core/build/src/abap/5_syntax/statements/refresh.js ***!
34070
+ \***********************************************************************************/
34071
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
34072
+
34073
+ "use strict";
34074
+
34075
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
34076
+ exports.Refresh = void 0;
34077
+ const Expressions = __webpack_require__(/*! ../../2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
34078
+ const target_1 = __webpack_require__(/*! ../expressions/target */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/target.js");
34079
+ class Refresh {
34080
+ runSyntax(node, input) {
34081
+ for (const t of node.findDirectExpressions(Expressions.Target)) {
34082
+ target_1.Target.runSyntax(t, input);
34083
+ }
34084
+ }
34085
+ }
34086
+ exports.Refresh = Refresh;
34087
+ //# sourceMappingURL=refresh.js.map
34088
+
34089
+ /***/ }),
34090
+
34037
34091
  /***/ "./node_modules/@abaplint/core/build/src/abap/5_syntax/statements/replace.js":
34038
34092
  /*!***********************************************************************************!*\
34039
34093
  !*** ./node_modules/@abaplint/core/build/src/abap/5_syntax/statements/replace.js ***!
@@ -35522,6 +35576,9 @@ class Data {
35522
35576
  return new _typed_identifier_1.TypedIdentifier(name, input.filename, found);
35523
35577
  }
35524
35578
  }
35579
+ else if (found instanceof Basic.UnknownType) {
35580
+ return new _typed_identifier_1.TypedIdentifier(name, input.filename, found);
35581
+ }
35525
35582
  for (const c of found) {
35526
35583
  components.push(c);
35527
35584
  }
@@ -35804,7 +35861,7 @@ class Types {
35804
35861
  }
35805
35862
  else if (ctyp instanceof Statements.IncludeType) {
35806
35863
  const found = new include_type_1.IncludeType().runSyntax(c, input);
35807
- if (found instanceof basic_1.VoidType) {
35864
+ if (found instanceof basic_1.VoidType || found instanceof Basic.UnknownType) {
35808
35865
  voidd = found;
35809
35866
  }
35810
35867
  else {
@@ -35913,6 +35970,8 @@ const do_1 = __webpack_require__(/*! ./statements/do */ "./node_modules/@abaplin
35913
35970
  const concatenate_1 = __webpack_require__(/*! ./statements/concatenate */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/statements/concatenate.js");
35914
35971
  const call_function_1 = __webpack_require__(/*! ./statements/call_function */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/statements/call_function.js");
35915
35972
  const clear_1 = __webpack_require__(/*! ./statements/clear */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/statements/clear.js");
35973
+ const refresh_1 = __webpack_require__(/*! ./statements/refresh */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/statements/refresh.js");
35974
+ const free_1 = __webpack_require__(/*! ./statements/free */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/statements/free.js");
35916
35975
  const replace_1 = __webpack_require__(/*! ./statements/replace */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/statements/replace.js");
35917
35976
  const get_bit_1 = __webpack_require__(/*! ./statements/get_bit */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/statements/get_bit.js");
35918
35977
  const raise_1 = __webpack_require__(/*! ./statements/raise */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/statements/raise.js");
@@ -36039,6 +36098,8 @@ if (Object.keys(map).length === 0) {
36039
36098
  addToMap(new delete_internal_1.DeleteInternal());
36040
36099
  addToMap(new delete_cluster_1.DeleteCluster());
36041
36100
  addToMap(new clear_1.Clear());
36101
+ addToMap(new free_1.Free());
36102
+ addToMap(new refresh_1.Refresh());
36042
36103
  addToMap(new receive_1.Receive());
36043
36104
  addToMap(new get_bit_1.GetBit());
36044
36105
  addToMap(new class_local_friends_1.ClassLocalFriends());
@@ -54600,7 +54661,7 @@ class Registry {
54600
54661
  }
54601
54662
  static abaplintVersion() {
54602
54663
  // magic, see build script "version.sh"
54603
- return "2.113.226";
54664
+ return "2.113.227";
54604
54665
  }
54605
54666
  getDDICReferences() {
54606
54667
  return this.ddicReferences;
@@ -56579,6 +56640,10 @@ DATA END OF foo.`,
56579
56640
  if (t.getChildren().length !== 3) {
56580
56641
  continue;
56581
56642
  }
56643
+ const data = t.findFirstStatement(Statements.DataBegin);
56644
+ if (data === null || data === void 0 ? void 0 : data.findDirectTokenByText("OCCURS")) {
56645
+ continue;
56646
+ }
56582
56647
  if (t.findFirstStatement(Statements.IncludeType)) {
56583
56648
  const token = t.getFirstToken();
56584
56649
  const message = "DATA BEGIN with single INCLUDE";
@@ -70110,6 +70175,12 @@ class ObsoleteStatementConf extends _basic_rule_config_1.BasicRuleConfig {
70110
70175
  this.formDefinition = true;
70111
70176
  /** Check for FORM IMPLEMENTATION */
70112
70177
  this.formImplementation = true;
70178
+ /** Check for COMMON PART */
70179
+ this.commonPart = true;
70180
+ /** Check for FIELD-GROUPS */
70181
+ this.fieldGroups = true;
70182
+ /** Check for REPLACE INTO */
70183
+ this.replaceInto = true;
70113
70184
  }
70114
70185
  }
70115
70186
  exports.ObsoleteStatementConf = ObsoleteStatementConf;
@@ -70221,10 +70292,22 @@ ENDIF.`,
70221
70292
  const issue = issue_1.Issue.atStatement(file, staNode, "COMMUNICATION is obsolete", this.getMetadata().key, this.conf.severity);
70222
70293
  issues.push(issue);
70223
70294
  }
70295
+ if (this.conf.commonPart && sta instanceof Statements.DataBegin && staNode.findDirectTokenByText("COMMON")) {
70296
+ const issue = issue_1.Issue.atStatement(file, staNode, "COMMON PART is obsolete", this.getMetadata().key, this.conf.severity);
70297
+ issues.push(issue);
70298
+ }
70299
+ if (this.conf.replaceInto && sta instanceof Statements.Replace && staNode.findDirectTokenByText("INTO")) {
70300
+ const issue = issue_1.Issue.atStatement(file, staNode, "REPLACE INTO is obsolete", this.getMetadata().key, this.conf.severity);
70301
+ issues.push(issue);
70302
+ }
70224
70303
  if (this.conf.pack && sta instanceof Statements.Pack) {
70225
70304
  const issue = issue_1.Issue.atStatement(file, staNode, "PACK is obsolete", this.getMetadata().key, this.conf.severity);
70226
70305
  issues.push(issue);
70227
70306
  }
70307
+ if (this.conf.fieldGroups && sta instanceof Statements.FieldGroup) {
70308
+ const issue = issue_1.Issue.atStatement(file, staNode, "FIELD-GROUPS is obsolete", this.getMetadata().key, this.conf.severity);
70309
+ issues.push(issue);
70310
+ }
70228
70311
  if (this.conf.parameter && sta instanceof Statements.Parameter) {
70229
70312
  const token = staNode.getFirstToken();
70230
70313
  if (token.getStr().toUpperCase() === "PARAMETER") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/cli",
3
- "version": "2.113.226",
3
+ "version": "2.113.227",
4
4
  "description": "abaplint - Command Line Interface",
5
5
  "funding": "https://github.com/sponsors/larshp",
6
6
  "bin": {
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "homepage": "https://abaplint.org",
40
40
  "devDependencies": {
41
- "@abaplint/core": "^2.113.226",
41
+ "@abaplint/core": "^2.113.227",
42
42
  "@types/chai": "^4.3.20",
43
43
  "@types/minimist": "^1.2.5",
44
44
  "@types/mocha": "^10.0.10",