@abaplint/cli 2.120.63 → 2.120.65

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 +581 -651
  2. package/package.json +2 -2
package/build/cli.js CHANGED
@@ -13314,7 +13314,7 @@ const version_1 = __webpack_require__(/*! ../../../version */ "../core/build/src
13314
13314
  class CreateData {
13315
13315
  getMatcher() {
13316
13316
  const areaHandle = (0, combi_1.seq)("AREA HANDLE", expressions_1.Source);
13317
- const typeHandle = (0, combi_1.seq)("TYPE HANDLE", expressions_1.Source);
13317
+ const typeHandle = (0, combi_1.seq)("TYPE HANDLE", expressions_1.SimpleSource3);
13318
13318
  const type = (0, combi_1.seq)((0, combi_1.alt)("TYPE", "TYPE REF TO", "TYPE TABLE OF", "TYPE TABLE OF REF TO", "TYPE SORTED TABLE OF", "TYPE HASHED TABLE OF", "TYPE STANDARD TABLE OF", "TYPE LINE OF"), (0, combi_1.alt)(expressions_1.TypeName, expressions_1.Dynamic));
13319
13319
  const like = (0, combi_1.seq)((0, combi_1.alt)("LIKE", "LIKE HASHED TABLE OF", "LIKE LINE OF", "LIKE STANDARD TABLE OF", "LIKE SORTED TABLE OF", "LIKE TABLE OF"), (0, combi_1.alt)(expressions_1.Source, expressions_1.Dynamic));
13320
13320
  const length = (0, combi_1.seq)("LENGTH", expressions_1.Source);
@@ -16556,7 +16556,7 @@ class Loop {
16556
16556
  getMatcher() {
16557
16557
  const where = (0, combi_1.seq)("WHERE", (0, combi_1.alt)(expressions_1.ComponentCond, (0, combi_1.verNotLang)(version_1.LanguageVersion.KeyUser, expressions_1.Dynamic)));
16558
16558
  const group = (0, combi_1.ver)(version_1.Release.v740sp08, (0, combi_1.seq)("GROUP BY", loop_group_by_1.LoopGroupBy), { also: combi_1.AlsoIn.OpenABAP });
16559
- const step = (0, combi_1.ver)(version_1.Release.v757, (0, combi_1.seq)("STEP", expressions_1.Source));
16559
+ const step = (0, combi_1.ver)(version_1.Release.v757, (0, combi_1.seq)("STEP", expressions_1.Source), { also: combi_1.AlsoIn.OpenABAP });
16560
16560
  const from = (0, combi_1.seq)("FROM", expressions_1.Source);
16561
16561
  const to = (0, combi_1.seq)("TO", expressions_1.Source);
16562
16562
  const usingKey = (0, combi_1.seq)("USING KEY", (0, combi_1.altPrio)(expressions_1.SimpleName, expressions_1.Dynamic));
@@ -27548,6 +27548,7 @@ class TypeUtils {
27548
27548
  || type instanceof basic_1.StringType
27549
27549
  || type instanceof basic_1.CLikeType
27550
27550
  || type instanceof basic_1.CSequenceType
27551
+ || type instanceof basic_1.DataType
27551
27552
  || this.isCharLikeField(type);
27552
27553
  }
27553
27554
  isCharLike(type) {
@@ -28798,6 +28799,7 @@ class BasicTypes {
28798
28799
  }
28799
28800
  parseType(node, qualifiedName) {
28800
28801
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
28802
+ var _l;
28801
28803
  const typeName = node.findFirstExpression(Expressions.TypeName);
28802
28804
  let text = (_a = node.findFirstExpression(Expressions.Type)) === null || _a === void 0 ? void 0 : _a.concatTokens().toUpperCase();
28803
28805
  if (text === undefined) {
@@ -28948,6 +28950,9 @@ class BasicTypes {
28948
28950
  length = parseInt(int.concatTokens(), 10);
28949
28951
  }
28950
28952
  }
28953
+ else if (node.get() instanceof Statements.Parameter) {
28954
+ length = (_l = this.findParameterLength(node)) !== null && _l !== void 0 ? _l : length;
28955
+ }
28951
28956
  found = new Types.CharacterType(length, { qualifiedName: qualifiedName }); // fallback
28952
28957
  if (this.isOccurs(node)) {
28953
28958
  found = new Types.TableType(found, { withHeader: concat.includes(" WITH HEADER LINE"), keyType: Types.TableKeyType.default }, qualifiedName);
@@ -29317,11 +29322,43 @@ class BasicTypes {
29317
29322
  throw new Error("findValue, unexpected");
29318
29323
  }
29319
29324
  findDecimals(node) {
29320
- var _a, _b;
29325
+ var _a, _b, _c;
29321
29326
  const dec = (_b = (_a = node.findDirectExpression(Expressions.Decimals)) === null || _a === void 0 ? void 0 : _a.findDirectExpression(Expressions.Integer)) === null || _b === void 0 ? void 0 : _b.concatTokens();
29322
29327
  if (dec) {
29323
29328
  return parseInt(dec, 10);
29324
29329
  }
29330
+ if (node.get() instanceof Statements.Parameter) {
29331
+ // PARAMETERS spells it seq("DECIMALS", Source) instead of the Decimals expression
29332
+ const source = (_c = this.findParameterAddition(node, "DECIMALS")) === null || _c === void 0 ? void 0 : _c.concatTokens();
29333
+ if (source && /^\d+$/.test(source)) {
29334
+ return parseInt(source, 10);
29335
+ }
29336
+ }
29337
+ return undefined;
29338
+ }
29339
+ // PARAMETERS spells it seq("LENGTH", Constant) instead of the Length expression
29340
+ findParameterLength(node) {
29341
+ const constant = this.findParameterAddition(node, "LENGTH");
29342
+ if (constant === undefined) {
29343
+ return undefined;
29344
+ }
29345
+ const length = this.parseInt(constant.concatTokens());
29346
+ return length === undefined || isNaN(length) ? undefined : length;
29347
+ }
29348
+ // finds the expression following a direct keyword token, "VISIBLE LENGTH" is not "LENGTH"
29349
+ findParameterAddition(node, keyword) {
29350
+ var _a;
29351
+ const children = node.getChildren();
29352
+ for (let i = 0; i < children.length - 1; i++) {
29353
+ const child = children[i];
29354
+ const next = children[i + 1];
29355
+ if (child instanceof nodes_1.ExpressionNode
29356
+ || child.getFirstToken().getStr().toUpperCase() !== keyword
29357
+ || ((_a = children[i - 1]) === null || _a === void 0 ? void 0 : _a.getFirstToken().getStr().toUpperCase()) === "VISIBLE") {
29358
+ continue;
29359
+ }
29360
+ return next instanceof nodes_1.ExpressionNode ? next : undefined;
29361
+ }
29325
29362
  return undefined;
29326
29363
  }
29327
29364
  findLength(node) {
@@ -29342,6 +29379,9 @@ class BasicTypes {
29342
29379
  }
29343
29380
  }
29344
29381
  if (val === undefined) {
29382
+ if (node.get() instanceof Statements.Parameter) {
29383
+ return this.findParameterLength(node);
29384
+ }
29345
29385
  return undefined;
29346
29386
  }
29347
29387
  const intExpr = val.findFirstExpression(Expressions.Integer);
@@ -29491,6 +29531,72 @@ function checkOffsetLength(source, sourceType, method, input) {
29491
29531
 
29492
29532
  /***/ },
29493
29533
 
29534
+ /***/ "../core/build/src/abap/5_syntax/expressions/_check_text_symbol.js"
29535
+ /*!*************************************************************************!*\
29536
+ !*** ../core/build/src/abap/5_syntax/expressions/_check_text_symbol.js ***!
29537
+ \*************************************************************************/
29538
+ (__unused_webpack_module, exports, __webpack_require__) {
29539
+
29540
+ "use strict";
29541
+
29542
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
29543
+ if (k2 === undefined) k2 = k;
29544
+ var desc = Object.getOwnPropertyDescriptor(m, k);
29545
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
29546
+ desc = { enumerable: true, get: function() { return m[k]; } };
29547
+ }
29548
+ Object.defineProperty(o, k2, desc);
29549
+ }) : (function(o, m, k, k2) {
29550
+ if (k2 === undefined) k2 = k;
29551
+ o[k2] = m[k];
29552
+ }));
29553
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29554
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
29555
+ }) : function(o, v) {
29556
+ o["default"] = v;
29557
+ });
29558
+ var __importStar = (this && this.__importStar) || (function () {
29559
+ var ownKeys = function(o) {
29560
+ ownKeys = Object.getOwnPropertyNames || function (o) {
29561
+ var ar = [];
29562
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29563
+ return ar;
29564
+ };
29565
+ return ownKeys(o);
29566
+ };
29567
+ return function (mod) {
29568
+ if (mod && mod.__esModule) return mod;
29569
+ var result = {};
29570
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
29571
+ __setModuleDefault(result, mod);
29572
+ return result;
29573
+ };
29574
+ })();
29575
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
29576
+ exports.checkTextSymbol = checkTextSymbol;
29577
+ const Expressions = __importStar(__webpack_require__(/*! ../../2_statements/expressions */ "../core/build/src/abap/2_statements/expressions/index.js"));
29578
+ const basic_1 = __webpack_require__(/*! ../../types/basic */ "../core/build/src/abap/types/basic/index.js");
29579
+ const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "../core/build/src/abap/5_syntax/_syntax_input.js");
29580
+ // A text symbol, 'text'(001), is a character literal of type C. Unlike a plain
29581
+ // literal it does not convert when passed to a method parameter typed STRING,
29582
+ // the system reports it as not type-compatible. Returns true if an issue was reported.
29583
+ function checkTextSymbol(source, parameterType, input) {
29584
+ if (source === undefined || !(parameterType instanceof basic_1.StringType)) {
29585
+ return false;
29586
+ }
29587
+ const children = source.getChildren();
29588
+ const constant = children.length === 1 ? source.findDirectExpression(Expressions.Constant) : undefined;
29589
+ if ((constant === null || constant === void 0 ? void 0 : constant.findDirectExpression(Expressions.TextElementString)) === undefined) {
29590
+ return false;
29591
+ }
29592
+ const message = `Text symbol "${source.concatTokens()}" is a character literal, not type-compatible with a STRING parameter`;
29593
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, source.getFirstToken(), message));
29594
+ return true;
29595
+ }
29596
+ //# sourceMappingURL=_check_text_symbol.js.map
29597
+
29598
+ /***/ },
29599
+
29494
29600
  /***/ "../core/build/src/abap/5_syntax/expressions/attribute_chain.js"
29495
29601
  /*!**********************************************************************!*\
29496
29602
  !*** ../core/build/src/abap/5_syntax/expressions/attribute_chain.js ***!
@@ -32868,6 +32974,7 @@ const _type_utils_1 = __webpack_require__(/*! ../_type_utils */ "../core/build/s
32868
32974
  const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "../core/build/src/abap/5_syntax/_syntax_input.js");
32869
32975
  const constant_1 = __webpack_require__(/*! ./constant */ "../core/build/src/abap/5_syntax/expressions/constant.js");
32870
32976
  const _check_offset_length_1 = __webpack_require__(/*! ./_check_offset_length */ "../core/build/src/abap/5_syntax/expressions/_check_offset_length.js");
32977
+ const _check_text_symbol_1 = __webpack_require__(/*! ./_check_text_symbol */ "../core/build/src/abap/5_syntax/expressions/_check_text_symbol.js");
32871
32978
  class MethodCallParam {
32872
32979
  static runSyntax(node, input, method) {
32873
32980
  if (!(node.get() instanceof Expressions.MethodCallParam)) {
@@ -32940,6 +33047,9 @@ class MethodCallParam {
32940
33047
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
32941
33048
  return;
32942
33049
  }
33050
+ else if ((0, _check_text_symbol_1.checkTextSymbol)(child, targetType, input)) {
33051
+ return;
33052
+ }
32943
33053
  else if (new _type_utils_1.TypeUtils(input.scope).isAssignableStrict(sourceType, targetType, child) === false) {
32944
33054
  const message = "Method parameter type not compatible";
32945
33055
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
@@ -33191,6 +33301,7 @@ const assert_error_1 = __webpack_require__(/*! ../assert_error */ "../core/build
33191
33301
  const field_chain_1 = __webpack_require__(/*! ./field_chain */ "../core/build/src/abap/5_syntax/expressions/field_chain.js");
33192
33302
  const _reference_1 = __webpack_require__(/*! ../_reference */ "../core/build/src/abap/5_syntax/_reference.js");
33193
33303
  const _check_offset_length_1 = __webpack_require__(/*! ./_check_offset_length */ "../core/build/src/abap/5_syntax/expressions/_check_offset_length.js");
33304
+ const _check_text_symbol_1 = __webpack_require__(/*! ./_check_text_symbol */ "../core/build/src/abap/5_syntax/expressions/_check_text_symbol.js");
33194
33305
  class MethodParameters {
33195
33306
  constructor() {
33196
33307
  this.requiredParameters = undefined;
@@ -33342,6 +33453,9 @@ class MethodParameters {
33342
33453
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
33343
33454
  continue;
33344
33455
  }
33456
+ else if ((0, _check_text_symbol_1.checkTextSymbol)(item.source, parameter.getType(), input)) {
33457
+ return;
33458
+ }
33345
33459
  else if (new _type_utils_1.TypeUtils(input.scope).isAssignableStrict(item.sourceType, parameter.getType(), item.source) === false) {
33346
33460
  const message = "Method parameter type not compatible, " + item.name;
33347
33461
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
@@ -34360,6 +34474,13 @@ class Select {
34360
34474
  const intoTable = node.findDirectExpression(Expressions.SQLIntoTable);
34361
34475
  if (intoTable) {
34362
34476
  const inline = intoTable.findFirstExpression(Expressions.InlineData);
34477
+ if (inline
34478
+ && intoTable.findDirectTokenByText("INTO") !== undefined
34479
+ && intoTable.findDirectTokenByText("CORRESPONDING") !== undefined
34480
+ && !(0, version_1.releaseAtLeast)(input.scope.getRelease(), version_1.Release.v755)) {
34481
+ const message = "INTO CORRESPONDING FIELDS OF TABLE with an inline declaration requires 7.55";
34482
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
34483
+ }
34363
34484
  if (inline) {
34364
34485
  inline_data_1.InlineData.runSyntax(inline, input, this.buildTableType(fields, dbSources, input.scope, from));
34365
34486
  }
@@ -39522,6 +39643,9 @@ class CreateData {
39522
39643
  return;
39523
39644
  }
39524
39645
  }
39646
+ for (const s of node.findDirectExpressions(Expressions.SimpleSource3)) {
39647
+ source_1.Source.runSyntax(s, input);
39648
+ }
39525
39649
  for (const t of node.findDirectExpressions(Expressions.Target)) {
39526
39650
  target_1.Target.runSyntax(t, input);
39527
39651
  }
@@ -42823,14 +42947,21 @@ class Loop {
42823
42947
  // https://github.com/abap2xlsx/abap2xlsx/issues/1341
42824
42948
  const keyName = node.findExpressionAfterToken("KEY");
42825
42949
  let key = undefined;
42826
- if ((keyName === null || keyName === void 0 ? void 0 : keyName.get()) instanceof Expressions.SimpleName) {
42827
- // it might be dynamic, in that case we cannot check anything
42828
- key = (_b = topType.getOptions().secondary) === null || _b === void 0 ? void 0 : _b.find(k => k.name.toUpperCase() === keyName.getFirstToken().getStr().toUpperCase());
42950
+ const name = (keyName === null || keyName === void 0 ? void 0 : keyName.get()) instanceof Expressions.SimpleName ? keyName.getFirstToken().getStr().toUpperCase() : undefined;
42951
+ // it might be dynamic, in that case we cannot check anything; and
42952
+ // primary_key is the predefined name of the primary key every table has
42953
+ if (name !== undefined && name !== "PRIMARY_KEY") {
42954
+ key = (_b = topType.getOptions().secondary) === null || _b === void 0 ? void 0 : _b.find(k => k.name.toUpperCase() === name);
42829
42955
  if (key === undefined) {
42830
42956
  const message = "Key " + (keyName === null || keyName === void 0 ? void 0 : keyName.concatTokens()) + " not found in table type";
42831
42957
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
42832
42958
  return;
42833
42959
  }
42960
+ if (cond.findDirectTokenByText("OR") !== undefined) {
42961
+ const message = "Loop, secondary key requires an optimizable WHERE, top-level OR not allowed";
42962
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
42963
+ return;
42964
+ }
42834
42965
  if (!(0, version_1.releaseAtLeast)(input.scope.getRelease(), version_1.Release.v740sp02)) {
42835
42966
  const compares = cond.findAllExpressionsRecursive(Expressions.ComponentCompare).map(c => c.concatTokens().toUpperCase());
42836
42967
  for (const keyField of key.keyFields) {
@@ -43493,6 +43624,7 @@ const _type_utils_1 = __webpack_require__(/*! ../_type_utils */ "../core/build/s
43493
43624
  const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "../core/build/src/abap/5_syntax/_syntax_input.js");
43494
43625
  const dereference_1 = __webpack_require__(/*! ../expressions/dereference */ "../core/build/src/abap/5_syntax/expressions/dereference.js");
43495
43626
  const basic_1 = __webpack_require__(/*! ../../types/basic */ "../core/build/src/abap/types/basic/index.js");
43627
+ const nodes_1 = __webpack_require__(/*! ../../nodes */ "../core/build/src/abap/nodes/index.js");
43496
43628
  class Move {
43497
43629
  runSyntax(node, input) {
43498
43630
  const targets = node.findDirectExpressions(Expressions.Target);
@@ -43524,6 +43656,13 @@ class Move {
43524
43656
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
43525
43657
  return;
43526
43658
  }
43659
+ if (inline === undefined
43660
+ && node.findDirectTokenByText("=") !== undefined
43661
+ && Move.isRefInferIntoGenericFieldSymbol(targets, source, targetType)) {
43662
+ const message = "REF #( ) cannot infer a type from a generic target, use REF data( ) or a named type";
43663
+ input.issues.push((0, _syntax_input_1.syntaxIssue)(input, source.getFirstToken(), message));
43664
+ return;
43665
+ }
43527
43666
  if (node.findDirectExpression(Expressions.Dereference)) {
43528
43667
  sourceType = dereference_1.Dereference.runSyntax(node, sourceType, input);
43529
43668
  }
@@ -43547,6 +43686,26 @@ class Move {
43547
43686
  return;
43548
43687
  }
43549
43688
  }
43689
+ /** target = REF #( ... ), with the single target being a field symbol typed "any" or "data",
43690
+ * the type of REF # is inferred from the target, which is generic */
43691
+ static isRefInferIntoGenericFieldSymbol(targets, source, targetType) {
43692
+ var _a;
43693
+ if (targets.length !== 1 || source === undefined) {
43694
+ return false;
43695
+ }
43696
+ else if (!(targetType instanceof basic_1.AnyType) && !(targetType instanceof basic_1.DataType)) {
43697
+ return false;
43698
+ }
43699
+ const targetChildren = targets[0].getChildren();
43700
+ if (targetChildren.length !== 1 || !(targetChildren[0].get() instanceof Expressions.TargetFieldSymbol)) {
43701
+ return false;
43702
+ }
43703
+ const first = source.getFirstChild();
43704
+ if (!(first instanceof nodes_1.TokenNode) || first.getFirstToken().getStr().toUpperCase() !== "REF") {
43705
+ return false;
43706
+ }
43707
+ return ((_a = source.findDirectExpression(Expressions.TypeNameOrInfer)) === null || _a === void 0 ? void 0 : _a.concatTokens()) === "#";
43708
+ }
43550
43709
  }
43551
43710
  exports.Move = Move;
43552
43711
  //# sourceMappingURL=move.js.map
@@ -49188,38 +49347,45 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
49188
49347
  exports.ArtifactsABAP = void 0;
49189
49348
  const Statements = __importStar(__webpack_require__(/*! ./2_statements/statements */ "../core/build/src/abap/2_statements/statements/index.js"));
49190
49349
  const Expressions = __importStar(__webpack_require__(/*! ./2_statements/expressions */ "../core/build/src/abap/2_statements/expressions/index.js"));
49191
- const combi_1 = __webpack_require__(/*! ./2_statements/combi */ "../core/build/src/abap/2_statements/combi.js");
49192
49350
  const Structures = __importStar(__webpack_require__(/*! ./3_structures/structures */ "../core/build/src/abap/3_structures/structures/index.js"));
49351
+ /*
49193
49352
  class List {
49194
- constructor() {
49195
- this.words = [];
49196
- }
49197
- add(keywords, source) {
49198
- for (const w of keywords) {
49199
- const index = this.find(w);
49200
- if (index >= 0) {
49201
- this.words[index].source.push(source);
49202
- }
49203
- else {
49204
- this.words.push({ word: w, source: [source] });
49205
- }
49206
- }
49207
- }
49208
- get() {
49209
- return this.words;
49353
+ private readonly words: IKeyword[];
49354
+
49355
+ public constructor() {
49356
+ this.words = [];
49357
+ }
49358
+
49359
+ public add(keywords: string[], source: string): void {
49360
+ for (const w of keywords) {
49361
+ const index = this.find(w);
49362
+ if (index >= 0) {
49363
+ this.words[index].source.push(source);
49364
+ } else {
49365
+ this.words.push({word: w, source: [source]});
49366
+ }
49210
49367
  }
49211
- find(keyword) {
49212
- for (let i = 0; i < this.words.length; i++) {
49213
- if (this.words[i].word === keyword) {
49214
- return i;
49215
- }
49216
- }
49217
- return -1;
49368
+ }
49369
+
49370
+ public get(): IKeyword[] {
49371
+ return this.words;
49372
+ }
49373
+
49374
+ private find(keyword: string): number {
49375
+ for (let i = 0; i < this.words.length; i++) {
49376
+ if (this.words[i].word === keyword) {
49377
+ return i;
49378
+ }
49218
49379
  }
49380
+ return -1;
49381
+ }
49219
49382
  }
49220
- function className(cla) {
49221
- return cla.constructor.name;
49383
+
49384
+
49385
+ function className(cla: any) {
49386
+ return cla.constructor.name;
49222
49387
  }
49388
+ */
49223
49389
  class ArtifactsABAP {
49224
49390
  static getStructures() {
49225
49391
  const ret = [];
@@ -49251,16 +49417,6 @@ class ArtifactsABAP {
49251
49417
  }
49252
49418
  return ret;
49253
49419
  }
49254
- static getKeywords() {
49255
- const list = new List();
49256
- for (const stat of this.getStatements()) {
49257
- list.add(combi_1.Combi.listKeywords(stat.getMatcher()), "statement_" + className(stat));
49258
- }
49259
- for (const expr of this.getExpressions()) {
49260
- list.add(combi_1.Combi.listKeywords(new expr().getRunnable()), "expression_" + className(expr));
49261
- }
49262
- return list.get();
49263
- }
49264
49420
  }
49265
49421
  exports.ArtifactsABAP = ArtifactsABAP;
49266
49422
  //# sourceMappingURL=artifacts.js.map
@@ -56498,7 +56654,7 @@ class DDIC {
56498
56654
  return new Types.PackedType(length, 0, { qualifiedName: qualifiedName });
56499
56655
  }
56500
56656
  else {
56501
- return new Types.PackedType(8, 0, { qualifiedName: qualifiedName });
56657
+ return new Types.PackedType(8, decimals !== null && decimals !== void 0 ? decimals : 0, { qualifiedName: qualifiedName });
56502
56658
  }
56503
56659
  case "C":
56504
56660
  if (length) {
@@ -61133,6 +61289,9 @@ class AbstractObject {
61133
61289
  this.old = [];
61134
61290
  this.dirty = false;
61135
61291
  }
61292
+ getDescription() {
61293
+ return undefined;
61294
+ }
61136
61295
  getParsingIssues() {
61137
61296
  return this.old;
61138
61297
  }
@@ -61323,9 +61482,6 @@ class UnknownObject extends _abstract_object_1.AbstractObject {
61323
61482
  allowNamespace: true,
61324
61483
  };
61325
61484
  }
61326
- getDescription() {
61327
- return undefined;
61328
- }
61329
61485
  getParsingIssues() {
61330
61486
  const pos = new position_1.Position(1, 1);
61331
61487
  const file = this.getFiles()[0];
@@ -61360,10 +61516,6 @@ class ABAPQueryFunctionalArea extends _abstract_object_1.AbstractObject {
61360
61516
  allowNamespace: true,
61361
61517
  };
61362
61518
  }
61363
- getDescription() {
61364
- // todo
61365
- return undefined;
61366
- }
61367
61519
  }
61368
61520
  exports.ABAPQueryFunctionalArea = ABAPQueryFunctionalArea;
61369
61521
  //# sourceMappingURL=abap_query_functional_area.js.map
@@ -61391,10 +61543,6 @@ class ABAPQueryQuery extends _abstract_object_1.AbstractObject {
61391
61543
  allowNamespace: true,
61392
61544
  };
61393
61545
  }
61394
- getDescription() {
61395
- // todo
61396
- return undefined;
61397
- }
61398
61546
  }
61399
61547
  exports.ABAPQueryQuery = ABAPQueryQuery;
61400
61548
  //# sourceMappingURL=abap_query_query.js.map
@@ -61422,10 +61570,6 @@ class ActivationVariant extends _abstract_object_1.AbstractObject {
61422
61570
  allowNamespace: true,
61423
61571
  };
61424
61572
  }
61425
- getDescription() {
61426
- // todo
61427
- return undefined;
61428
- }
61429
61573
  }
61430
61574
  exports.ActivationVariant = ActivationVariant;
61431
61575
  //# sourceMappingURL=activation_variant.js.map
@@ -61453,10 +61597,6 @@ class APIReleaseState extends _abstract_object_1.AbstractObject {
61453
61597
  allowNamespace: true,
61454
61598
  };
61455
61599
  }
61456
- getDescription() {
61457
- // todo
61458
- return undefined;
61459
- }
61460
61600
  }
61461
61601
  exports.APIReleaseState = APIReleaseState;
61462
61602
  //# sourceMappingURL=api_release_state.js.map
@@ -61484,10 +61624,6 @@ class ApplicationDescriptorsFiori extends _abstract_object_1.AbstractObject {
61484
61624
  allowNamespace: true,
61485
61625
  };
61486
61626
  }
61487
- getDescription() {
61488
- // todo
61489
- return undefined;
61490
- }
61491
61627
  }
61492
61628
  exports.ApplicationDescriptorsFiori = ApplicationDescriptorsFiori;
61493
61629
  //# sourceMappingURL=application_descriptors_fiori.js.map
@@ -61515,10 +61651,6 @@ class ApplicationJobCatalogEntry extends _abstract_object_1.AbstractObject {
61515
61651
  allowNamespace: true,
61516
61652
  };
61517
61653
  }
61518
- getDescription() {
61519
- // todo
61520
- return undefined;
61521
- }
61522
61654
  }
61523
61655
  exports.ApplicationJobCatalogEntry = ApplicationJobCatalogEntry;
61524
61656
  //# sourceMappingURL=application_job_catalog_entry.js.map
@@ -61546,10 +61678,6 @@ class ApplicationJobTemplate extends _abstract_object_1.AbstractObject {
61546
61678
  allowNamespace: true,
61547
61679
  };
61548
61680
  }
61549
- getDescription() {
61550
- // todo
61551
- return undefined;
61552
- }
61553
61681
  }
61554
61682
  exports.ApplicationJobTemplate = ApplicationJobTemplate;
61555
61683
  //# sourceMappingURL=application_job_template.js.map
@@ -61577,10 +61705,6 @@ class ApplicationLogObject extends _abstract_object_1.AbstractObject {
61577
61705
  allowNamespace: true,
61578
61706
  };
61579
61707
  }
61580
- getDescription() {
61581
- // todo
61582
- return undefined;
61583
- }
61584
61708
  }
61585
61709
  exports.ApplicationLogObject = ApplicationLogObject;
61586
61710
  //# sourceMappingURL=application_log_object.js.map
@@ -61608,10 +61732,6 @@ class AssignmentServiceToAuthorizationGroup extends _abstract_object_1.AbstractO
61608
61732
  allowNamespace: true,
61609
61733
  };
61610
61734
  }
61611
- getDescription() {
61612
- // todo
61613
- return undefined;
61614
- }
61615
61735
  }
61616
61736
  exports.AssignmentServiceToAuthorizationGroup = AssignmentServiceToAuthorizationGroup;
61617
61737
  //# sourceMappingURL=assignment_service_to_authorization_group.js.map
@@ -61639,10 +61759,6 @@ class ATCCheckCategory extends _abstract_object_1.AbstractObject {
61639
61759
  allowNamespace: true,
61640
61760
  };
61641
61761
  }
61642
- getDescription() {
61643
- // todo
61644
- return undefined;
61645
- }
61646
61762
  }
61647
61763
  exports.ATCCheckCategory = ATCCheckCategory;
61648
61764
  //# sourceMappingURL=atc_check_category.js.map
@@ -61670,10 +61786,6 @@ class ATCCheckObject extends _abstract_object_1.AbstractObject {
61670
61786
  allowNamespace: true,
61671
61787
  };
61672
61788
  }
61673
- getDescription() {
61674
- // todo
61675
- return undefined;
61676
- }
61677
61789
  }
61678
61790
  exports.ATCCheckObject = ATCCheckObject;
61679
61791
  //# sourceMappingURL=atc_check_object.js.map
@@ -61701,10 +61813,6 @@ class ATCCheckVariant extends _abstract_object_1.AbstractObject {
61701
61813
  allowNamespace: true,
61702
61814
  };
61703
61815
  }
61704
- getDescription() {
61705
- // todo
61706
- return undefined;
61707
- }
61708
61816
  }
61709
61817
  exports.ATCCheckVariant = ATCCheckVariant;
61710
61818
  //# sourceMappingURL=atc_check_variant.js.map
@@ -61738,10 +61846,6 @@ class AuthorizationCheckField extends _abstract_object_1.AbstractObject {
61738
61846
  this.parsedXML = undefined;
61739
61847
  super.setDirty();
61740
61848
  }
61741
- getDescription() {
61742
- // todo
61743
- return undefined;
61744
- }
61745
61849
  getDataElementName() {
61746
61850
  var _a;
61747
61851
  this.parse();
@@ -61814,10 +61918,6 @@ class AuthorizationGroup extends _abstract_object_1.AbstractObject {
61814
61918
  allowNamespace: true,
61815
61919
  };
61816
61920
  }
61817
- getDescription() {
61818
- // todo
61819
- return undefined;
61820
- }
61821
61921
  }
61822
61922
  exports.AuthorizationGroup = AuthorizationGroup;
61823
61923
  //# sourceMappingURL=authorization_group.js.map
@@ -61845,10 +61945,6 @@ class AuthorizationObject extends _abstract_object_1.AbstractObject {
61845
61945
  allowNamespace: true,
61846
61946
  };
61847
61947
  }
61848
- getDescription() {
61849
- // todo
61850
- return undefined;
61851
- }
61852
61948
  }
61853
61949
  exports.AuthorizationObject = AuthorizationObject;
61854
61950
  //# sourceMappingURL=authorization_object.js.map
@@ -61876,10 +61972,6 @@ class AuthorizationObjectClass extends _abstract_object_1.AbstractObject {
61876
61972
  allowNamespace: false,
61877
61973
  };
61878
61974
  }
61879
- getDescription() {
61880
- // todo
61881
- return undefined;
61882
- }
61883
61975
  }
61884
61976
  exports.AuthorizationObjectClass = AuthorizationObjectClass;
61885
61977
  //# sourceMappingURL=authorization_object_class.js.map
@@ -61907,10 +61999,6 @@ class AuthorizationObjectExtension extends _abstract_object_1.AbstractObject {
61907
61999
  allowNamespace: true,
61908
62000
  };
61909
62001
  }
61910
- getDescription() {
61911
- // todo
61912
- return undefined;
61913
- }
61914
62002
  }
61915
62003
  exports.AuthorizationObjectExtension = AuthorizationObjectExtension;
61916
62004
  //# sourceMappingURL=authorization_object_extension.js.map
@@ -61938,10 +62026,6 @@ class BADIDefinition extends _abstract_object_1.AbstractObject {
61938
62026
  allowNamespace: true,
61939
62027
  };
61940
62028
  }
61941
- getDescription() {
61942
- // todo
61943
- return undefined;
61944
- }
61945
62029
  }
61946
62030
  exports.BADIDefinition = BADIDefinition;
61947
62031
  //# sourceMappingURL=badi_definition.js.map
@@ -61973,10 +62057,6 @@ class BehaviorDefinition extends _abstract_object_1.AbstractObject {
61973
62057
  allowNamespace: true,
61974
62058
  };
61975
62059
  }
61976
- getDescription() {
61977
- // todo
61978
- return undefined;
61979
- }
61980
62060
  setDirty() {
61981
62061
  this.parsedData = undefined;
61982
62062
  super.setDirty();
@@ -62047,10 +62127,6 @@ class BRFPlusSystemApplication extends _abstract_object_1.AbstractObject {
62047
62127
  allowNamespace: true,
62048
62128
  };
62049
62129
  }
62050
- getDescription() {
62051
- // todo
62052
- return undefined;
62053
- }
62054
62130
  }
62055
62131
  exports.BRFPlusSystemApplication = BRFPlusSystemApplication;
62056
62132
  //# sourceMappingURL=brf_plus_system_application.js.map
@@ -62078,10 +62154,6 @@ class BSPApplication extends _abstract_object_1.AbstractObject {
62078
62154
  allowNamespace: true,
62079
62155
  };
62080
62156
  }
62081
- getDescription() {
62082
- // todo
62083
- return undefined;
62084
- }
62085
62157
  }
62086
62158
  exports.BSPApplication = BSPApplication;
62087
62159
  //# sourceMappingURL=bsp_application.js.map
@@ -62109,10 +62181,6 @@ class BusinessAddInImplementation extends _abstract_object_1.AbstractObject {
62109
62181
  allowNamespace: true,
62110
62182
  };
62111
62183
  }
62112
- getDescription() {
62113
- // todo
62114
- return undefined;
62115
- }
62116
62184
  }
62117
62185
  exports.BusinessAddInImplementation = BusinessAddInImplementation;
62118
62186
  //# sourceMappingURL=business_add_in_implementation.js.map
@@ -62140,10 +62208,6 @@ class BusinessCatalog extends _abstract_object_1.AbstractObject {
62140
62208
  allowNamespace: true,
62141
62209
  };
62142
62210
  }
62143
- getDescription() {
62144
- // todo
62145
- return undefined;
62146
- }
62147
62211
  }
62148
62212
  exports.BusinessCatalog = BusinessCatalog;
62149
62213
  //# sourceMappingURL=business_catalog.js.map
@@ -62171,10 +62235,6 @@ class BusinessCatalogAppAssignment extends _abstract_object_1.AbstractObject {
62171
62235
  allowNamespace: true,
62172
62236
  };
62173
62237
  }
62174
- getDescription() {
62175
- // todo
62176
- return undefined;
62177
- }
62178
62238
  }
62179
62239
  exports.BusinessCatalogAppAssignment = BusinessCatalogAppAssignment;
62180
62240
  //# sourceMappingURL=business_catalog_app_assignment.js.map
@@ -62202,10 +62262,6 @@ class BusinessConfigurationMaintenanceObject extends _abstract_object_1.Abstract
62202
62262
  allowNamespace: true,
62203
62263
  };
62204
62264
  }
62205
- getDescription() {
62206
- // todo
62207
- return undefined;
62208
- }
62209
62265
  }
62210
62266
  exports.BusinessConfigurationMaintenanceObject = BusinessConfigurationMaintenanceObject;
62211
62267
  //# sourceMappingURL=business_configuration_maintenance_object.js.map
@@ -62233,10 +62289,6 @@ class BusinessConfigurationSet extends _abstract_object_1.AbstractObject {
62233
62289
  allowNamespace: true,
62234
62290
  };
62235
62291
  }
62236
- getDescription() {
62237
- // todo
62238
- return undefined;
62239
- }
62240
62292
  }
62241
62293
  exports.BusinessConfigurationSet = BusinessConfigurationSet;
62242
62294
  //# sourceMappingURL=business_configuration_set.js.map
@@ -62264,10 +62316,6 @@ class BusinessFunctionAssignment extends _abstract_object_1.AbstractObject {
62264
62316
  allowNamespace: true,
62265
62317
  };
62266
62318
  }
62267
- getDescription() {
62268
- // todo
62269
- return undefined;
62270
- }
62271
62319
  }
62272
62320
  exports.BusinessFunctionAssignment = BusinessFunctionAssignment;
62273
62321
  //# sourceMappingURL=business_function_assignment.js.map
@@ -62295,10 +62343,6 @@ class BusinessFunctionSetAssignment extends _abstract_object_1.AbstractObject {
62295
62343
  allowNamespace: true,
62296
62344
  };
62297
62345
  }
62298
- getDescription() {
62299
- // todo
62300
- return undefined;
62301
- }
62302
62346
  }
62303
62347
  exports.BusinessFunctionSetAssignment = BusinessFunctionSetAssignment;
62304
62348
  //# sourceMappingURL=business_function_set_assignment.js.map
@@ -62326,10 +62370,6 @@ class BusinessObjectModel extends _abstract_object_1.AbstractObject {
62326
62370
  allowNamespace: true,
62327
62371
  };
62328
62372
  }
62329
- getDescription() {
62330
- // todo
62331
- return undefined;
62332
- }
62333
62373
  }
62334
62374
  exports.BusinessObjectModel = BusinessObjectModel;
62335
62375
  //# sourceMappingURL=business_object_model.js.map
@@ -62357,10 +62397,6 @@ class BusinessObjectType extends _abstract_object_1.AbstractObject {
62357
62397
  allowNamespace: true,
62358
62398
  };
62359
62399
  }
62360
- getDescription() {
62361
- // todo
62362
- return undefined;
62363
- }
62364
62400
  }
62365
62401
  exports.BusinessObjectType = BusinessObjectType;
62366
62402
  //# sourceMappingURL=business_object_type.js.map
@@ -62388,10 +62424,6 @@ class CDSEntityBuffer extends _abstract_object_1.AbstractObject {
62388
62424
  allowNamespace: true,
62389
62425
  };
62390
62426
  }
62391
- getDescription() {
62392
- // todo
62393
- return undefined;
62394
- }
62395
62427
  }
62396
62428
  exports.CDSEntityBuffer = CDSEntityBuffer;
62397
62429
  //# sourceMappingURL=cds_entity_buffer.js.map
@@ -62425,6 +62457,11 @@ class CDSMetadataExtension extends _abstract_object_1.AbstractObject {
62425
62457
  allowNamespace: true,
62426
62458
  };
62427
62459
  }
62460
+ setDirty() {
62461
+ this.parsedData = undefined;
62462
+ this.parserError = undefined;
62463
+ super.setDirty();
62464
+ }
62428
62465
  hasParserError() {
62429
62466
  return this.parserError;
62430
62467
  }
@@ -62443,10 +62480,6 @@ class CDSMetadataExtension extends _abstract_object_1.AbstractObject {
62443
62480
  this.dirty = false;
62444
62481
  return { updated: true, runtime: Date.now() - start };
62445
62482
  }
62446
- getDescription() {
62447
- // todo
62448
- return undefined;
62449
- }
62450
62483
  findSourceFile() {
62451
62484
  return this.getFiles().find(f => f.getFilename().endsWith(".asddlxs") || f.getFilename().endsWith(".acds"));
62452
62485
  }
@@ -62477,10 +62510,6 @@ class CDSType extends _abstract_object_1.AbstractObject {
62477
62510
  allowNamespace: true,
62478
62511
  };
62479
62512
  }
62480
- getDescription() {
62481
- // todo
62482
- return undefined;
62483
- }
62484
62513
  }
62485
62514
  exports.CDSType = CDSType;
62486
62515
  //# sourceMappingURL=cds_type.js.map
@@ -62508,10 +62537,6 @@ class ChangeDocument extends _abstract_object_1.AbstractObject {
62508
62537
  allowNamespace: true,
62509
62538
  };
62510
62539
  }
62511
- getDescription() {
62512
- // todo
62513
- return undefined;
62514
- }
62515
62540
  }
62516
62541
  exports.ChangeDocument = ChangeDocument;
62517
62542
  //# sourceMappingURL=change_document.js.map
@@ -62539,10 +62564,6 @@ class ChapterOfBookStructure extends _abstract_object_1.AbstractObject {
62539
62564
  allowNamespace: true,
62540
62565
  };
62541
62566
  }
62542
- getDescription() {
62543
- // todo
62544
- return undefined;
62545
- }
62546
62567
  }
62547
62568
  exports.ChapterOfBookStructure = ChapterOfBookStructure;
62548
62569
  //# sourceMappingURL=chapter_of_book_structure.js.map
@@ -62570,10 +62591,6 @@ class CheckpointGroup extends _abstract_object_1.AbstractObject {
62570
62591
  allowNamespace: true,
62571
62592
  };
62572
62593
  }
62573
- getDescription() {
62574
- // todo
62575
- return undefined;
62576
- }
62577
62594
  }
62578
62595
  exports.CheckpointGroup = CheckpointGroup;
62579
62596
  //# sourceMappingURL=checkpoint_group.js.map
@@ -62721,10 +62738,6 @@ class Classification extends _abstract_object_1.AbstractObject {
62721
62738
  allowNamespace: true,
62722
62739
  };
62723
62740
  }
62724
- getDescription() {
62725
- // todo
62726
- return undefined;
62727
- }
62728
62741
  }
62729
62742
  exports.Classification = Classification;
62730
62743
  //# sourceMappingURL=classification.js.map
@@ -62752,10 +62765,6 @@ class CommunicationScenario extends _abstract_object_1.AbstractObject {
62752
62765
  allowNamespace: true,
62753
62766
  };
62754
62767
  }
62755
- getDescription() {
62756
- // todo
62757
- return undefined;
62758
- }
62759
62768
  }
62760
62769
  exports.CommunicationScenario = CommunicationScenario;
62761
62770
  //# sourceMappingURL=communication_scenario.js.map
@@ -62783,10 +62792,6 @@ class CompositeEnhancementImplementation extends _abstract_object_1.AbstractObje
62783
62792
  allowNamespace: true,
62784
62793
  };
62785
62794
  }
62786
- getDescription() {
62787
- // todo
62788
- return undefined;
62789
- }
62790
62795
  }
62791
62796
  exports.CompositeEnhancementImplementation = CompositeEnhancementImplementation;
62792
62797
  //# sourceMappingURL=composite_enhancement_implementation.js.map
@@ -62814,10 +62819,6 @@ class CompositeEnhancementSpot extends _abstract_object_1.AbstractObject {
62814
62819
  allowNamespace: true,
62815
62820
  };
62816
62821
  }
62817
- getDescription() {
62818
- // todo
62819
- return undefined;
62820
- }
62821
62822
  }
62822
62823
  exports.CompositeEnhancementSpot = CompositeEnhancementSpot;
62823
62824
  //# sourceMappingURL=composite_enhancement_spot.js.map
@@ -62846,10 +62847,6 @@ class ConceptsOfPackage extends _abstract_object_1.AbstractObject {
62846
62847
  customRegex: new RegExp(/^(\/[A-Z_\d]{3,8}\/)?[A-Z_-\d<> ]+$/i),
62847
62848
  };
62848
62849
  }
62849
- getDescription() {
62850
- // todo
62851
- return undefined;
62852
- }
62853
62850
  }
62854
62851
  exports.ConceptsOfPackage = ConceptsOfPackage;
62855
62852
  //# sourceMappingURL=concepts_of_package.js.map
@@ -62877,10 +62874,6 @@ class CustomDataBrowserObject extends _abstract_object_1.AbstractObject {
62877
62874
  allowNamespace: true,
62878
62875
  };
62879
62876
  }
62880
- getDescription() {
62881
- // todo
62882
- return undefined;
62883
- }
62884
62877
  }
62885
62878
  exports.CustomDataBrowserObject = CustomDataBrowserObject;
62886
62879
  //# sourceMappingURL=custom_data_browser_object.js.map
@@ -62908,10 +62901,6 @@ class CustomerEnhancementProject extends _abstract_object_1.AbstractObject {
62908
62901
  allowNamespace: true,
62909
62902
  };
62910
62903
  }
62911
- getDescription() {
62912
- // todo
62913
- return undefined;
62914
- }
62915
62904
  }
62916
62905
  exports.CustomerEnhancementProject = CustomerEnhancementProject;
62917
62906
  //# sourceMappingURL=customer_enhancement_project.js.map
@@ -62939,10 +62928,6 @@ class CustomizingAttributes extends _abstract_object_1.AbstractObject {
62939
62928
  allowNamespace: true,
62940
62929
  };
62941
62930
  }
62942
- getDescription() {
62943
- // todo
62944
- return undefined;
62945
- }
62946
62931
  }
62947
62932
  exports.CustomizingAttributes = CustomizingAttributes;
62948
62933
  //# sourceMappingURL=customizing_attributes.js.map
@@ -62970,10 +62955,6 @@ class CustomizingImgActivity extends _abstract_object_1.AbstractObject {
62970
62955
  allowNamespace: true,
62971
62956
  };
62972
62957
  }
62973
- getDescription() {
62974
- // todo
62975
- return undefined;
62976
- }
62977
62958
  }
62978
62959
  exports.CustomizingImgActivity = CustomizingImgActivity;
62979
62960
  //# sourceMappingURL=customizing_img_activity.js.map
@@ -63001,10 +62982,6 @@ class CustomizingTransaction extends _abstract_object_1.AbstractObject {
63001
62982
  allowNamespace: true,
63002
62983
  };
63003
62984
  }
63004
- getDescription() {
63005
- // todo
63006
- return undefined;
63007
- }
63008
62985
  }
63009
62986
  exports.CustomizingTransaction = CustomizingTransaction;
63010
62987
  //# sourceMappingURL=customizing_transaction.js.map
@@ -63032,10 +63009,6 @@ class DataControl extends _abstract_object_1.AbstractObject {
63032
63009
  allowNamespace: true,
63033
63010
  };
63034
63011
  }
63035
- getDescription() {
63036
- // todo
63037
- return undefined;
63038
- }
63039
63012
  }
63040
63013
  exports.DataControl = DataControl;
63041
63014
  //# sourceMappingURL=data_control.js.map
@@ -63604,10 +63577,6 @@ class DatastoreObject extends _abstract_object_1.AbstractObject {
63604
63577
  allowNamespace: true,
63605
63578
  };
63606
63579
  }
63607
- getDescription() {
63608
- // todo
63609
- return undefined;
63610
- }
63611
63580
  }
63612
63581
  exports.DatastoreObject = DatastoreObject;
63613
63582
  //# sourceMappingURL=datastore_object.js.map
@@ -63635,10 +63604,6 @@ class DialogModule extends _abstract_object_1.AbstractObject {
63635
63604
  allowNamespace: true,
63636
63605
  };
63637
63606
  }
63638
- getDescription() {
63639
- // todo
63640
- return undefined;
63641
- }
63642
63607
  }
63643
63608
  exports.DialogModule = DialogModule;
63644
63609
  //# sourceMappingURL=dialog_module.js.map
@@ -63666,10 +63631,6 @@ class Documentation extends _abstract_object_1.AbstractObject {
63666
63631
  allowNamespace: true,
63667
63632
  };
63668
63633
  }
63669
- getDescription() {
63670
- // todo
63671
- return undefined;
63672
- }
63673
63634
  }
63674
63635
  exports.Documentation = Documentation;
63675
63636
  //# sourceMappingURL=documentation.js.map
@@ -63873,11 +63834,13 @@ class Domain extends _abstract_object_1.AbstractObject {
63873
63834
  getFixedValues() {
63874
63835
  var _a;
63875
63836
  var _b;
63837
+ this.parse();
63876
63838
  return (_b = (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.values) !== null && _b !== void 0 ? _b : [];
63877
63839
  }
63878
63840
  getFixedValuesTranslations() {
63879
63841
  var _a;
63880
63842
  var _b;
63843
+ this.parse();
63881
63844
  return (_b = (_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.valuesTranslations) !== null && _b !== void 0 ? _b : [];
63882
63845
  }
63883
63846
  getAFFFile() {
@@ -63910,10 +63873,6 @@ class EcattTestConfiguration extends _abstract_object_1.AbstractObject {
63910
63873
  allowNamespace: true,
63911
63874
  };
63912
63875
  }
63913
- getDescription() {
63914
- // todo
63915
- return undefined;
63916
- }
63917
63876
  }
63918
63877
  exports.EcattTestConfiguration = EcattTestConfiguration;
63919
63878
  //# sourceMappingURL=ecatt_test_configuration.js.map
@@ -63941,10 +63900,6 @@ class EcattTestDataContainer extends _abstract_object_1.AbstractObject {
63941
63900
  allowNamespace: true,
63942
63901
  };
63943
63902
  }
63944
- getDescription() {
63945
- // todo
63946
- return undefined;
63947
- }
63948
63903
  }
63949
63904
  exports.EcattTestDataContainer = EcattTestDataContainer;
63950
63905
  //# sourceMappingURL=ecatt_test_data_container.js.map
@@ -63972,10 +63927,6 @@ class EcattTestScript extends _abstract_object_1.AbstractObject {
63972
63927
  allowNamespace: true,
63973
63928
  };
63974
63929
  }
63975
- getDescription() {
63976
- // todo
63977
- return undefined;
63978
- }
63979
63930
  }
63980
63931
  exports.EcattTestScript = EcattTestScript;
63981
63932
  //# sourceMappingURL=ecatt_test_script.js.map
@@ -64003,10 +63954,6 @@ class EmailTemplate extends _abstract_object_1.AbstractObject {
64003
63954
  allowNamespace: true,
64004
63955
  };
64005
63956
  }
64006
- getDescription() {
64007
- // todo
64008
- return undefined;
64009
- }
64010
63957
  }
64011
63958
  exports.EmailTemplate = EmailTemplate;
64012
63959
  //# sourceMappingURL=email_template.js.map
@@ -64088,10 +64035,6 @@ class EnhancementSpot extends _abstract_object_1.AbstractObject {
64088
64035
  getType() {
64089
64036
  return "ENHS";
64090
64037
  }
64091
- getDescription() {
64092
- // todo
64093
- return undefined;
64094
- }
64095
64038
  getAllowedNaming() {
64096
64039
  return {
64097
64040
  maxLength: 30,
@@ -64151,10 +64094,6 @@ class EntityType extends _abstract_object_1.AbstractObject {
64151
64094
  allowNamespace: true,
64152
64095
  };
64153
64096
  }
64154
- getDescription() {
64155
- // todo
64156
- return undefined;
64157
- }
64158
64097
  }
64159
64098
  exports.EntityType = EntityType;
64160
64099
  //# sourceMappingURL=entity_type.js.map
@@ -64182,10 +64121,6 @@ class EventBinding extends _abstract_object_1.AbstractObject {
64182
64121
  allowNamespace: true,
64183
64122
  };
64184
64123
  }
64185
- getDescription() {
64186
- // todo
64187
- return undefined;
64188
- }
64189
64124
  }
64190
64125
  exports.EventBinding = EventBinding;
64191
64126
  //# sourceMappingURL=event_binding.js.map
@@ -64213,10 +64148,6 @@ class EventConsumer extends _abstract_object_1.AbstractObject {
64213
64148
  allowNamespace: true,
64214
64149
  };
64215
64150
  }
64216
- getDescription() {
64217
- // todo
64218
- return undefined;
64219
- }
64220
64151
  }
64221
64152
  exports.EventConsumer = EventConsumer;
64222
64153
  //# sourceMappingURL=event_consumer.js.map
@@ -64308,10 +64239,6 @@ class FieldCatalog extends _abstract_object_1.AbstractObject {
64308
64239
  allowNamespace: true,
64309
64240
  };
64310
64241
  }
64311
- getDescription() {
64312
- // todo
64313
- return undefined;
64314
- }
64315
64242
  }
64316
64243
  exports.FieldCatalog = FieldCatalog;
64317
64244
  //# sourceMappingURL=field_catalog.js.map
@@ -64339,10 +64266,6 @@ class FormObjectForm extends _abstract_object_1.AbstractObject {
64339
64266
  allowNamespace: true,
64340
64267
  };
64341
64268
  }
64342
- getDescription() {
64343
- // todo
64344
- return undefined;
64345
- }
64346
64269
  }
64347
64270
  exports.FormObjectForm = FormObjectForm;
64348
64271
  //# sourceMappingURL=form_object_form.js.map
@@ -64370,10 +64293,6 @@ class FormObjectInterface extends _abstract_object_1.AbstractObject {
64370
64293
  allowNamespace: true,
64371
64294
  };
64372
64295
  }
64373
- getDescription() {
64374
- // todo
64375
- return undefined;
64376
- }
64377
64296
  }
64378
64297
  exports.FormObjectInterface = FormObjectInterface;
64379
64298
  //# sourceMappingURL=form_object_interface.js.map
@@ -64401,10 +64320,6 @@ class FormatType extends _abstract_object_1.AbstractObject {
64401
64320
  allowNamespace: true,
64402
64321
  };
64403
64322
  }
64404
- getDescription() {
64405
- // todo
64406
- return undefined;
64407
- }
64408
64323
  }
64409
64324
  exports.FormatType = FormatType;
64410
64325
  //# sourceMappingURL=format_type.js.map
@@ -64637,10 +64552,6 @@ class GatewayModel extends _abstract_object_1.AbstractObject {
64637
64552
  allowNamespace: true,
64638
64553
  };
64639
64554
  }
64640
- getDescription() {
64641
- // todo
64642
- return undefined;
64643
- }
64644
64555
  }
64645
64556
  exports.GatewayModel = GatewayModel;
64646
64557
  //# sourceMappingURL=gateway_model.js.map
@@ -64668,10 +64579,6 @@ class GatewayModelMetadata extends _abstract_object_1.AbstractObject {
64668
64579
  allowNamespace: true,
64669
64580
  };
64670
64581
  }
64671
- getDescription() {
64672
- // todo
64673
- return undefined;
64674
- }
64675
64582
  }
64676
64583
  exports.GatewayModelMetadata = GatewayModelMetadata;
64677
64584
  //# sourceMappingURL=gateway_model_metadata.js.map
@@ -64699,10 +64606,6 @@ class GatewayODataGroupAndAssignment extends _abstract_object_1.AbstractObject {
64699
64606
  allowNamespace: true,
64700
64607
  };
64701
64608
  }
64702
- getDescription() {
64703
- // todo
64704
- return undefined;
64705
- }
64706
64609
  }
64707
64610
  exports.GatewayODataGroupAndAssignment = GatewayODataGroupAndAssignment;
64708
64611
  //# sourceMappingURL=gateway_odata_group_and_assignment.js.map
@@ -64730,10 +64633,6 @@ class GatewayProject extends _abstract_object_1.AbstractObject {
64730
64633
  allowNamespace: true,
64731
64634
  };
64732
64635
  }
64733
- getDescription() {
64734
- // todo
64735
- return undefined;
64736
- }
64737
64636
  }
64738
64637
  exports.GatewayProject = GatewayProject;
64739
64638
  //# sourceMappingURL=gateway_project.js.map
@@ -64761,10 +64660,6 @@ class GatewayService extends _abstract_object_1.AbstractObject {
64761
64660
  allowNamespace: true,
64762
64661
  };
64763
64662
  }
64764
- getDescription() {
64765
- // todo
64766
- return undefined;
64767
- }
64768
64663
  }
64769
64664
  exports.GatewayService = GatewayService;
64770
64665
  //# sourceMappingURL=gateway_service.js.map
@@ -64792,10 +64687,6 @@ class GatewayServiceGroupsMetadata extends _abstract_object_1.AbstractObject {
64792
64687
  allowNamespace: true,
64793
64688
  };
64794
64689
  }
64795
- getDescription() {
64796
- // todo
64797
- return undefined;
64798
- }
64799
64690
  }
64800
64691
  exports.GatewayServiceGroupsMetadata = GatewayServiceGroupsMetadata;
64801
64692
  //# sourceMappingURL=gateway_service_groups_metadata.js.map
@@ -64823,10 +64714,6 @@ class GatewayVocabularyAnnotation extends _abstract_object_1.AbstractObject {
64823
64714
  allowNamespace: true,
64824
64715
  };
64825
64716
  }
64826
- getDescription() {
64827
- // todo
64828
- return undefined;
64829
- }
64830
64717
  }
64831
64718
  exports.GatewayVocabularyAnnotation = GatewayVocabularyAnnotation;
64832
64719
  //# sourceMappingURL=gateway_vocabulary_annotation.js.map
@@ -64854,10 +64741,6 @@ class GeneralHierarchyStorageExtrensionName extends _abstract_object_1.AbstractO
64854
64741
  allowNamespace: true,
64855
64742
  };
64856
64743
  }
64857
- getDescription() {
64858
- // todo
64859
- return undefined;
64860
- }
64861
64744
  }
64862
64745
  exports.GeneralHierarchyStorageExtrensionName = GeneralHierarchyStorageExtrensionName;
64863
64746
  //# sourceMappingURL=general_hierarchy_storage_extrension_name.js.map
@@ -64885,10 +64768,6 @@ class GeneralStorageStructure extends _abstract_object_1.AbstractObject {
64885
64768
  allowNamespace: true,
64886
64769
  };
64887
64770
  }
64888
- getDescription() {
64889
- // todo
64890
- return undefined;
64891
- }
64892
64771
  }
64893
64772
  exports.GeneralStorageStructure = GeneralStorageStructure;
64894
64773
  //# sourceMappingURL=general_storage_structure.js.map
@@ -64916,10 +64795,6 @@ class GeneralText extends _abstract_object_1.AbstractObject {
64916
64795
  allowNamespace: true,
64917
64796
  };
64918
64797
  }
64919
- getDescription() {
64920
- // todo
64921
- return undefined;
64922
- }
64923
64798
  }
64924
64799
  exports.GeneralText = GeneralText;
64925
64800
  //# sourceMappingURL=general_text.js.map
@@ -64947,10 +64822,6 @@ class HttpService extends _abstract_object_1.AbstractObject {
64947
64822
  allowNamespace: true,
64948
64823
  };
64949
64824
  }
64950
- getDescription() {
64951
- // todo
64952
- return undefined;
64953
- }
64954
64825
  }
64955
64826
  exports.HttpService = HttpService;
64956
64827
  //# sourceMappingURL=http_service.js.map
@@ -64978,10 +64849,6 @@ class IACBinaryData extends _abstract_object_1.AbstractObject {
64978
64849
  allowNamespace: true,
64979
64850
  };
64980
64851
  }
64981
- getDescription() {
64982
- // todo
64983
- return undefined;
64984
- }
64985
64852
  }
64986
64853
  exports.IACBinaryData = IACBinaryData;
64987
64854
  //# sourceMappingURL=iac_binary_data.js.map
@@ -65009,10 +64876,6 @@ class IACLanguageResource extends _abstract_object_1.AbstractObject {
65009
64876
  allowNamespace: true,
65010
64877
  };
65011
64878
  }
65012
- getDescription() {
65013
- // todo
65014
- return undefined;
65015
- }
65016
64879
  }
65017
64880
  exports.IACLanguageResource = IACLanguageResource;
65018
64881
  //# sourceMappingURL=iac_language_resource.js.map
@@ -65040,10 +64903,6 @@ class IACService extends _abstract_object_1.AbstractObject {
65040
64903
  allowNamespace: true,
65041
64904
  };
65042
64905
  }
65043
- getDescription() {
65044
- // todo
65045
- return undefined;
65046
- }
65047
64906
  }
65048
64907
  exports.IACService = IACService;
65049
64908
  //# sourceMappingURL=iac_service.js.map
@@ -65071,10 +64930,6 @@ class IACTemplate extends _abstract_object_1.AbstractObject {
65071
64930
  allowNamespace: true,
65072
64931
  };
65073
64932
  }
65074
- getDescription() {
65075
- // todo
65076
- return undefined;
65077
- }
65078
64933
  }
65079
64934
  exports.IACTemplate = IACTemplate;
65080
64935
  //# sourceMappingURL=iac_template.js.map
@@ -65102,10 +64957,6 @@ class IAMApp extends _abstract_object_1.AbstractObject {
65102
64957
  allowNamespace: true,
65103
64958
  };
65104
64959
  }
65105
- getDescription() {
65106
- // todo
65107
- return undefined;
65108
- }
65109
64960
  }
65110
64961
  exports.IAMApp = IAMApp;
65111
64962
  //# sourceMappingURL=iam_app.js.map
@@ -65138,10 +64989,6 @@ class ICFService extends _abstract_object_1.AbstractObject {
65138
64989
  this.parsedXML = undefined;
65139
64990
  super.setDirty();
65140
64991
  }
65141
- getDescription() {
65142
- // todo
65143
- return undefined;
65144
- }
65145
64992
  getURL() {
65146
64993
  var _a;
65147
64994
  this.parse();
@@ -65203,10 +65050,6 @@ class Idoc extends _abstract_object_1.AbstractObject {
65203
65050
  allowNamespace: true,
65204
65051
  };
65205
65052
  }
65206
- getDescription() {
65207
- // todo
65208
- return undefined;
65209
- }
65210
65053
  }
65211
65054
  exports.Idoc = Idoc;
65212
65055
  //# sourceMappingURL=idoc.js.map
@@ -65234,10 +65077,6 @@ class IdocExtension extends _abstract_object_1.AbstractObject {
65234
65077
  allowNamespace: false,
65235
65078
  };
65236
65079
  }
65237
- getDescription() {
65238
- // todo
65239
- return undefined;
65240
- }
65241
65080
  }
65242
65081
  exports.IdocExtension = IdocExtension;
65243
65082
  //# sourceMappingURL=idoc_extension.js.map
@@ -65265,10 +65104,6 @@ class InboundService extends _abstract_object_1.AbstractObject {
65265
65104
  allowNamespace: true,
65266
65105
  };
65267
65106
  }
65268
- getDescription() {
65269
- // todo
65270
- return undefined;
65271
- }
65272
65107
  }
65273
65108
  exports.InboundService = InboundService;
65274
65109
  //# sourceMappingURL=inbound_service.js.map
@@ -65490,10 +65325,6 @@ class InfoArea extends _abstract_object_1.AbstractObject {
65490
65325
  allowNamespace: true,
65491
65326
  };
65492
65327
  }
65493
- getDescription() {
65494
- // todo
65495
- return undefined;
65496
- }
65497
65328
  }
65498
65329
  exports.InfoArea = InfoArea;
65499
65330
  //# sourceMappingURL=info_area.js.map
@@ -65521,10 +65352,6 @@ class InfoObject extends _abstract_object_1.AbstractObject {
65521
65352
  allowNamespace: true,
65522
65353
  };
65523
65354
  }
65524
- getDescription() {
65525
- // todo
65526
- return undefined;
65527
- }
65528
65355
  }
65529
65356
  exports.InfoObject = InfoObject;
65530
65357
  //# sourceMappingURL=info_object.js.map
@@ -65642,10 +65469,6 @@ class KnowledgeTransferDocument extends _abstract_object_1.AbstractObject {
65642
65469
  allowNamespace: true,
65643
65470
  };
65644
65471
  }
65645
- getDescription() {
65646
- // todo
65647
- return undefined;
65648
- }
65649
65472
  }
65650
65473
  exports.KnowledgeTransferDocument = KnowledgeTransferDocument;
65651
65474
  //# sourceMappingURL=knowledge_transfer_document.js.map
@@ -65776,10 +65599,6 @@ class MaintenanceAndTransportObject extends _abstract_object_1.AbstractObject {
65776
65599
  getType() {
65777
65600
  return "TOBJ";
65778
65601
  }
65779
- getDescription() {
65780
- // todo
65781
- return undefined;
65782
- }
65783
65602
  getAllowedNaming() {
65784
65603
  return {
65785
65604
  maxLength: 31,
@@ -65973,10 +65792,6 @@ class MessagingChannel extends _abstract_object_1.AbstractObject {
65973
65792
  allowNamespace: true,
65974
65793
  };
65975
65794
  }
65976
- getDescription() {
65977
- // todo
65978
- return undefined;
65979
- }
65980
65795
  }
65981
65796
  exports.MessagingChannel = MessagingChannel;
65982
65797
  //# sourceMappingURL=messaging_channel.js.map
@@ -66010,6 +65825,7 @@ class MIMEObject extends _abstract_object_1.AbstractObject {
66010
65825
  }
66011
65826
  isFolder() {
66012
65827
  var _a;
65828
+ this.parse();
66013
65829
  return ((_a = this.parsedXML) === null || _a === void 0 ? void 0 : _a.FOLDER) === "X";
66014
65830
  }
66015
65831
  getAllowedNaming() {
@@ -66031,10 +65847,6 @@ class MIMEObject extends _abstract_object_1.AbstractObject {
66031
65847
  this.parsedXML = undefined;
66032
65848
  super.setDirty();
66033
65849
  }
66034
- getDescription() {
66035
- // this object type does not have a description
66036
- return undefined;
66037
- }
66038
65850
  parse() {
66039
65851
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
66040
65852
  if (this.parsedXML) {
@@ -66082,10 +65894,6 @@ class Namespace extends _abstract_object_1.AbstractObject {
66082
65894
  customRegex: new RegExp(/^\/[A-Z_\d]{3,8}\/$/i),
66083
65895
  };
66084
65896
  }
66085
- getDescription() {
66086
- // todo
66087
- return undefined;
66088
- }
66089
65897
  }
66090
65898
  exports.Namespace = Namespace;
66091
65899
  //# sourceMappingURL=namespace.js.map
@@ -66114,10 +65922,6 @@ class NeptuneAPI extends _abstract_object_1.AbstractObject {
66114
65922
  customRegex: /.*/i,
66115
65923
  };
66116
65924
  }
66117
- getDescription() {
66118
- // todo
66119
- return undefined;
66120
- }
66121
65925
  }
66122
65926
  exports.NeptuneAPI = NeptuneAPI;
66123
65927
  //# sourceMappingURL=neptune_api.js.map
@@ -66145,10 +65949,6 @@ class NeptuneApp extends _abstract_object_1.AbstractObject {
66145
65949
  allowNamespace: true,
66146
65950
  };
66147
65951
  }
66148
- getDescription() {
66149
- // todo
66150
- return undefined;
66151
- }
66152
65952
  }
66153
65953
  exports.NeptuneApp = NeptuneApp;
66154
65954
  //# sourceMappingURL=neptune_app.js.map
@@ -66176,10 +65976,6 @@ class NeptuneCustomColor extends _abstract_object_1.AbstractObject {
66176
65976
  allowNamespace: true,
66177
65977
  };
66178
65978
  }
66179
- getDescription() {
66180
- // todo
66181
- return undefined;
66182
- }
66183
65979
  }
66184
65980
  exports.NeptuneCustomColor = NeptuneCustomColor;
66185
65981
  //# sourceMappingURL=neptune_custom_color.js.map
@@ -66207,10 +66003,6 @@ class NeptuneCustomJSHelper extends _abstract_object_1.AbstractObject {
66207
66003
  allowNamespace: true,
66208
66004
  };
66209
66005
  }
66210
- getDescription() {
66211
- // todo
66212
- return undefined;
66213
- }
66214
66006
  }
66215
66007
  exports.NeptuneCustomJSHelper = NeptuneCustomJSHelper;
66216
66008
  //# sourceMappingURL=neptune_custom_js_helper.js.map
@@ -66238,10 +66030,6 @@ class NeptuneDocumentation extends _abstract_object_1.AbstractObject {
66238
66030
  allowNamespace: true,
66239
66031
  };
66240
66032
  }
66241
- getDescription() {
66242
- // todo
66243
- return undefined;
66244
- }
66245
66033
  }
66246
66034
  exports.NeptuneDocumentation = NeptuneDocumentation;
66247
66035
  //# sourceMappingURL=neptune_documentation.js.map
@@ -66269,10 +66057,6 @@ class NeptuneEnhancement extends _abstract_object_1.AbstractObject {
66269
66057
  allowNamespace: true,
66270
66058
  };
66271
66059
  }
66272
- getDescription() {
66273
- // todo
66274
- return undefined;
66275
- }
66276
66060
  }
66277
66061
  exports.NeptuneEnhancement = NeptuneEnhancement;
66278
66062
  //# sourceMappingURL=neptune_enhancement.js.map
@@ -66300,10 +66084,6 @@ class NeptuneLaunchpad extends _abstract_object_1.AbstractObject {
66300
66084
  allowNamespace: true,
66301
66085
  };
66302
66086
  }
66303
- getDescription() {
66304
- // todo
66305
- return undefined;
66306
- }
66307
66087
  }
66308
66088
  exports.NeptuneLaunchpad = NeptuneLaunchpad;
66309
66089
  //# sourceMappingURL=neptune_launchpad.js.map
@@ -66331,10 +66111,6 @@ class NeptuneLaunchpadLayout extends _abstract_object_1.AbstractObject {
66331
66111
  allowNamespace: true,
66332
66112
  };
66333
66113
  }
66334
- getDescription() {
66335
- // todo
66336
- return undefined;
66337
- }
66338
66114
  }
66339
66115
  exports.NeptuneLaunchpadLayout = NeptuneLaunchpadLayout;
66340
66116
  //# sourceMappingURL=neptune_launchpad_layout.js.map
@@ -66362,10 +66138,6 @@ class NeptuneLoginPage extends _abstract_object_1.AbstractObject {
66362
66138
  allowNamespace: true,
66363
66139
  };
66364
66140
  }
66365
- getDescription() {
66366
- // todo
66367
- return undefined;
66368
- }
66369
66141
  }
66370
66142
  exports.NeptuneLoginPage = NeptuneLoginPage;
66371
66143
  //# sourceMappingURL=neptune_login_page.js.map
@@ -66393,10 +66165,6 @@ class NeptuneMediaLibrary extends _abstract_object_1.AbstractObject {
66393
66165
  allowNamespace: true,
66394
66166
  };
66395
66167
  }
66396
- getDescription() {
66397
- // todo
66398
- return undefined;
66399
- }
66400
66168
  }
66401
66169
  exports.NeptuneMediaLibrary = NeptuneMediaLibrary;
66402
66170
  //# sourceMappingURL=neptune_media_library.js.map
@@ -66424,10 +66192,6 @@ class NeptuneMediaPack extends _abstract_object_1.AbstractObject {
66424
66192
  allowNamespace: true,
66425
66193
  };
66426
66194
  }
66427
- getDescription() {
66428
- // todo
66429
- return undefined;
66430
- }
66431
66195
  }
66432
66196
  exports.NeptuneMediaPack = NeptuneMediaPack;
66433
66197
  //# sourceMappingURL=neptune_media_pack.js.map
@@ -66455,10 +66219,6 @@ class NeptuneMetadata extends _abstract_object_1.AbstractObject {
66455
66219
  allowNamespace: true,
66456
66220
  };
66457
66221
  }
66458
- getDescription() {
66459
- // todo
66460
- return undefined;
66461
- }
66462
66222
  }
66463
66223
  exports.NeptuneMetadata = NeptuneMetadata;
66464
66224
  //# sourceMappingURL=neptune_metadata.js.map
@@ -66486,10 +66246,6 @@ class NeptuneMobileClient extends _abstract_object_1.AbstractObject {
66486
66246
  allowNamespace: true,
66487
66247
  };
66488
66248
  }
66489
- getDescription() {
66490
- // todo
66491
- return undefined;
66492
- }
66493
66249
  }
66494
66250
  exports.NeptuneMobileClient = NeptuneMobileClient;
66495
66251
  //# sourceMappingURL=neptune_mobile_client.js.map
@@ -66517,10 +66273,6 @@ class NeptuneOData extends _abstract_object_1.AbstractObject {
66517
66273
  allowNamespace: true,
66518
66274
  };
66519
66275
  }
66520
- getDescription() {
66521
- // todo
66522
- return undefined;
66523
- }
66524
66276
  }
66525
66277
  exports.NeptuneOData = NeptuneOData;
66526
66278
  //# sourceMappingURL=neptune_odata.js.map
@@ -66548,10 +66300,6 @@ class NeptunePolicy extends _abstract_object_1.AbstractObject {
66548
66300
  allowNamespace: true,
66549
66301
  };
66550
66302
  }
66551
- getDescription() {
66552
- // todo
66553
- return undefined;
66554
- }
66555
66303
  }
66556
66304
  exports.NeptunePolicy = NeptunePolicy;
66557
66305
  //# sourceMappingURL=neptune_policy.js.map
@@ -66579,10 +66327,6 @@ class NeptuneRFCMapping extends _abstract_object_1.AbstractObject {
66579
66327
  allowNamespace: true,
66580
66328
  };
66581
66329
  }
66582
- getDescription() {
66583
- // todo
66584
- return undefined;
66585
- }
66586
66330
  }
66587
66331
  exports.NeptuneRFCMapping = NeptuneRFCMapping;
66588
66332
  //# sourceMappingURL=neptune_rfc_mapping.js.map
@@ -66610,10 +66354,6 @@ class NeptuneRichTextTemplate extends _abstract_object_1.AbstractObject {
66610
66354
  allowNamespace: true,
66611
66355
  };
66612
66356
  }
66613
- getDescription() {
66614
- // todo
66615
- return undefined;
66616
- }
66617
66357
  }
66618
66358
  exports.NeptuneRichTextTemplate = NeptuneRichTextTemplate;
66619
66359
  //# sourceMappingURL=neptune_rich_text_template.js.map
@@ -66641,10 +66381,6 @@ class NeptuneSplashScreen extends _abstract_object_1.AbstractObject {
66641
66381
  allowNamespace: true,
66642
66382
  };
66643
66383
  }
66644
- getDescription() {
66645
- // todo
66646
- return undefined;
66647
- }
66648
66384
  }
66649
66385
  exports.NeptuneSplashScreen = NeptuneSplashScreen;
66650
66386
  //# sourceMappingURL=neptune_splash_screen.js.map
@@ -66672,10 +66408,6 @@ class NeptuneStickyBanner extends _abstract_object_1.AbstractObject {
66672
66408
  allowNamespace: true,
66673
66409
  };
66674
66410
  }
66675
- getDescription() {
66676
- // todo
66677
- return undefined;
66678
- }
66679
66411
  }
66680
66412
  exports.NeptuneStickyBanner = NeptuneStickyBanner;
66681
66413
  //# sourceMappingURL=neptune_sticky_banner.js.map
@@ -66703,10 +66435,6 @@ class NeptuneTile extends _abstract_object_1.AbstractObject {
66703
66435
  allowNamespace: true,
66704
66436
  };
66705
66437
  }
66706
- getDescription() {
66707
- // todo
66708
- return undefined;
66709
- }
66710
66438
  }
66711
66439
  exports.NeptuneTile = NeptuneTile;
66712
66440
  //# sourceMappingURL=neptune_tile.js.map
@@ -66734,10 +66462,6 @@ class NeptuneTileGroup extends _abstract_object_1.AbstractObject {
66734
66462
  allowNamespace: true,
66735
66463
  };
66736
66464
  }
66737
- getDescription() {
66738
- // todo
66739
- return undefined;
66740
- }
66741
66465
  }
66742
66466
  exports.NeptuneTileGroup = NeptuneTileGroup;
66743
66467
  //# sourceMappingURL=neptune_tile_group.js.map
@@ -66765,10 +66489,6 @@ class NeptuneTileLayout extends _abstract_object_1.AbstractObject {
66765
66489
  allowNamespace: true,
66766
66490
  };
66767
66491
  }
66768
- getDescription() {
66769
- // todo
66770
- return undefined;
66771
- }
66772
66492
  }
66773
66493
  exports.NeptuneTileLayout = NeptuneTileLayout;
66774
66494
  //# sourceMappingURL=neptune_tile_layout.js.map
@@ -66796,10 +66516,6 @@ class NeptuneURLAlias extends _abstract_object_1.AbstractObject {
66796
66516
  allowNamespace: true,
66797
66517
  };
66798
66518
  }
66799
- getDescription() {
66800
- // todo
66801
- return undefined;
66802
- }
66803
66519
  }
66804
66520
  exports.NeptuneURLAlias = NeptuneURLAlias;
66805
66521
  //# sourceMappingURL=neptune_url_alias.js.map
@@ -66893,10 +66609,6 @@ class Oauth2Profile extends _abstract_object_1.AbstractObject {
66893
66609
  allowNamespace: true,
66894
66610
  };
66895
66611
  }
66896
- getDescription() {
66897
- // todo
66898
- return undefined;
66899
- }
66900
66612
  listScopes() {
66901
66613
  var _a, _b, _c, _d, _e;
66902
66614
  const ret = [];
@@ -66933,10 +66645,6 @@ class ObjectCharacteristic extends _abstract_object_1.AbstractObject {
66933
66645
  allowNamespace: true,
66934
66646
  };
66935
66647
  }
66936
- getDescription() {
66937
- // todo
66938
- return undefined;
66939
- }
66940
66648
  }
66941
66649
  exports.ObjectCharacteristic = ObjectCharacteristic;
66942
66650
  //# sourceMappingURL=object_characteristic.js.map
@@ -66964,10 +66672,6 @@ class OutboundService extends _abstract_object_1.AbstractObject {
66964
66672
  allowNamespace: true,
66965
66673
  };
66966
66674
  }
66967
- getDescription() {
66968
- // todo
66969
- return undefined;
66970
- }
66971
66675
  }
66972
66676
  exports.OutboundService = OutboundService;
66973
66677
  //# sourceMappingURL=outbound_service.js.map
@@ -66995,10 +66699,6 @@ class Package extends _abstract_object_1.AbstractObject {
66995
66699
  allowNamespace: true,
66996
66700
  };
66997
66701
  }
66998
- getDescription() {
66999
- // todo
67000
- return undefined;
67001
- }
67002
66702
  }
67003
66703
  exports.Package = Package;
67004
66704
  //# sourceMappingURL=package.js.map
@@ -67026,10 +66726,6 @@ class PackageInterface extends _abstract_object_1.AbstractObject {
67026
66726
  allowNamespace: true,
67027
66727
  };
67028
66728
  }
67029
- getDescription() {
67030
- // todo
67031
- return undefined;
67032
- }
67033
66729
  }
67034
66730
  exports.PackageInterface = PackageInterface;
67035
66731
  //# sourceMappingURL=package_interface.js.map
@@ -67057,10 +66753,6 @@ class PageFormat extends _abstract_object_1.AbstractObject {
67057
66753
  allowNamespace: true,
67058
66754
  };
67059
66755
  }
67060
- getDescription() {
67061
- // todo
67062
- return undefined;
67063
- }
67064
66756
  }
67065
66757
  exports.PageFormat = PageFormat;
67066
66758
  //# sourceMappingURL=page_format.js.map
@@ -67088,10 +66780,6 @@ class Parameter extends _abstract_object_1.AbstractObject {
67088
66780
  allowNamespace: true,
67089
66781
  };
67090
66782
  }
67091
- getDescription() {
67092
- // todo
67093
- return undefined;
67094
- }
67095
66783
  }
67096
66784
  exports.Parameter = Parameter;
67097
66785
  //# sourceMappingURL=parameter.js.map
@@ -67119,10 +66807,6 @@ class PersonalizationObject extends _abstract_object_1.AbstractObject {
67119
66807
  allowNamespace: true,
67120
66808
  };
67121
66809
  }
67122
- getDescription() {
67123
- // todo
67124
- return undefined;
67125
- }
67126
66810
  }
67127
66811
  exports.PersonalizationObject = PersonalizationObject;
67128
66812
  //# sourceMappingURL=personalization_object.js.map
@@ -67367,10 +67051,6 @@ class PushChannel extends _abstract_object_1.AbstractObject {
67367
67051
  allowNamespace: true,
67368
67052
  };
67369
67053
  }
67370
- getDescription() {
67371
- // todo
67372
- return undefined;
67373
- }
67374
67054
  }
67375
67055
  exports.PushChannel = PushChannel;
67376
67056
  //# sourceMappingURL=push_channel.js.map
@@ -67398,10 +67078,6 @@ class QueryUserGroup extends _abstract_object_1.AbstractObject {
67398
67078
  allowNamespace: true,
67399
67079
  };
67400
67080
  }
67401
- getDescription() {
67402
- // todo
67403
- return undefined;
67404
- }
67405
67081
  }
67406
67082
  exports.QueryUserGroup = QueryUserGroup;
67407
67083
  //# sourceMappingURL=query_user_group.js.map
@@ -68368,10 +68044,6 @@ class RestrictionField extends _abstract_object_1.AbstractObject {
68368
68044
  allowNamespace: true,
68369
68045
  };
68370
68046
  }
68371
- getDescription() {
68372
- // todo
68373
- return undefined;
68374
- }
68375
68047
  }
68376
68048
  exports.RestrictionField = RestrictionField;
68377
68049
  //# sourceMappingURL=restriction_field.js.map
@@ -68399,10 +68071,6 @@ class RestrictionType extends _abstract_object_1.AbstractObject {
68399
68071
  allowNamespace: true,
68400
68072
  };
68401
68073
  }
68402
- getDescription() {
68403
- // todo
68404
- return undefined;
68405
- }
68406
68074
  }
68407
68075
  exports.RestrictionType = RestrictionType;
68408
68076
  //# sourceMappingURL=restriction_type.js.map
@@ -68430,10 +68098,6 @@ class RFCService extends _abstract_object_1.AbstractObject {
68430
68098
  allowNamespace: true,
68431
68099
  };
68432
68100
  }
68433
- getDescription() {
68434
- // todo
68435
- return undefined;
68436
- }
68437
68101
  }
68438
68102
  exports.RFCService = RFCService;
68439
68103
  //# sourceMappingURL=rfc_service.js.map
@@ -68461,10 +68125,6 @@ class SAPScript extends _abstract_object_1.AbstractObject {
68461
68125
  allowNamespace: true,
68462
68126
  };
68463
68127
  }
68464
- getDescription() {
68465
- // todo
68466
- return undefined;
68467
- }
68468
68128
  }
68469
68129
  exports.SAPScript = SAPScript;
68470
68130
  //# sourceMappingURL=sapscript.js.map
@@ -68492,10 +68152,6 @@ class SAPScriptStyle extends _abstract_object_1.AbstractObject {
68492
68152
  allowNamespace: true,
68493
68153
  };
68494
68154
  }
68495
- getDescription() {
68496
- // todo
68497
- return undefined;
68498
- }
68499
68155
  }
68500
68156
  exports.SAPScriptStyle = SAPScriptStyle;
68501
68157
  //# sourceMappingURL=sapscript_style.js.map
@@ -68523,10 +68179,6 @@ class ScreenVariant extends _abstract_object_1.AbstractObject {
68523
68179
  allowNamespace: true,
68524
68180
  };
68525
68181
  }
68526
- getDescription() {
68527
- // todo
68528
- return undefined;
68529
- }
68530
68182
  }
68531
68183
  exports.ScreenVariant = ScreenVariant;
68532
68184
  //# sourceMappingURL=screen_variant.js.map
@@ -68554,10 +68206,6 @@ class SearchHelp extends _abstract_object_1.AbstractObject {
68554
68206
  allowNamespace: true,
68555
68207
  };
68556
68208
  }
68557
- getDescription() {
68558
- // todo
68559
- return undefined;
68560
- }
68561
68209
  }
68562
68210
  exports.SearchHelp = SearchHelp;
68563
68211
  //# sourceMappingURL=search_help.js.map
@@ -68585,10 +68233,6 @@ class ServiceBinding extends _abstract_object_1.AbstractObject {
68585
68233
  allowNamespace: true,
68586
68234
  };
68587
68235
  }
68588
- getDescription() {
68589
- // todo
68590
- return undefined;
68591
- }
68592
68236
  }
68593
68237
  exports.ServiceBinding = ServiceBinding;
68594
68238
  //# sourceMappingURL=service_binding.js.map
@@ -68616,10 +68260,6 @@ class ServiceDefinition extends _abstract_object_1.AbstractObject {
68616
68260
  allowNamespace: true,
68617
68261
  };
68618
68262
  }
68619
- getDescription() {
68620
- // todo
68621
- return undefined;
68622
- }
68623
68263
  }
68624
68264
  exports.ServiceDefinition = ServiceDefinition;
68625
68265
  //# sourceMappingURL=service_definition.js.map
@@ -68647,10 +68287,6 @@ class SharedMemory extends _abstract_object_1.AbstractObject {
68647
68287
  allowNamespace: true,
68648
68288
  };
68649
68289
  }
68650
- getDescription() {
68651
- // todo
68652
- return undefined;
68653
- }
68654
68290
  }
68655
68291
  exports.SharedMemory = SharedMemory;
68656
68292
  //# sourceMappingURL=shared_memory.js.map
@@ -68678,10 +68314,6 @@ class SmartForm extends _abstract_object_1.AbstractObject {
68678
68314
  allowNamespace: true,
68679
68315
  };
68680
68316
  }
68681
- getDescription() {
68682
- // todo
68683
- return undefined;
68684
- }
68685
68317
  }
68686
68318
  exports.SmartForm = SmartForm;
68687
68319
  //# sourceMappingURL=smart_form.js.map
@@ -68709,10 +68341,6 @@ class SmartStyle extends _abstract_object_1.AbstractObject {
68709
68341
  allowNamespace: true,
68710
68342
  };
68711
68343
  }
68712
- getDescription() {
68713
- // todo
68714
- return undefined;
68715
- }
68716
68344
  }
68717
68345
  exports.SmartStyle = SmartStyle;
68718
68346
  //# sourceMappingURL=smart_style.js.map
@@ -68740,10 +68368,6 @@ class StandardTask extends _abstract_object_1.AbstractObject {
68740
68368
  allowNamespace: true,
68741
68369
  };
68742
68370
  }
68743
- getDescription() {
68744
- // todo
68745
- return undefined;
68746
- }
68747
68371
  }
68748
68372
  exports.StandardTask = StandardTask;
68749
68373
  //# sourceMappingURL=standard_task.js.map
@@ -68771,10 +68395,6 @@ class SwitchAssignmentHierarchy extends _abstract_object_1.AbstractObject {
68771
68395
  allowNamespace: true,
68772
68396
  };
68773
68397
  }
68774
- getDescription() {
68775
- // todo
68776
- return undefined;
68777
- }
68778
68398
  }
68779
68399
  exports.SwitchAssignmentHierarchy = SwitchAssignmentHierarchy;
68780
68400
  //# sourceMappingURL=switch_assignment_hierarchy.js.map
@@ -68802,10 +68422,6 @@ class SwitchAssignments extends _abstract_object_1.AbstractObject {
68802
68422
  allowNamespace: true,
68803
68423
  };
68804
68424
  }
68805
- getDescription() {
68806
- // todo
68807
- return undefined;
68808
- }
68809
68425
  }
68810
68426
  exports.SwitchAssignments = SwitchAssignments;
68811
68427
  //# sourceMappingURL=switch_assignments.js.map
@@ -68934,11 +68550,17 @@ class Table extends _abstract_object_1.AbstractObject {
68934
68550
  }
68935
68551
  const ret = [];
68936
68552
  for (const p of this.parsedData.fields) {
68937
- if (p.KEYFLAG === "X" && p.FIELDNAME === ".INCLUDE") {
68938
- const lookup = new ddic_1.DDIC(reg).lookupTableOrView(p.PRECFIELD).type;
68553
+ if (p.KEYFLAG === "X" && (p.FIELDNAME === ".INCLUDE" || p.FIELDNAME.startsWith(".INCLU-"))) {
68554
+ let lookup = new ddic_1.DDIC(reg).lookupTableOrView(p.PRECFIELD).type;
68555
+ if (lookup instanceof _typed_identifier_1.TypedIdentifier) {
68556
+ lookup = lookup.getType();
68557
+ }
68558
+ // same naming as in parseType(), "--AP" are .APPENDS and get no suffix
68559
+ const postfix = p.FIELDNAME.startsWith(".INCLU-") && p.FIELDNAME !== ".INCLU--AP"
68560
+ ? p.FIELDNAME.substring(".INCLU-".length) : "";
68939
68561
  if (lookup instanceof Types.StructureType) {
68940
68562
  for (const c of lookup.getComponents()) {
68941
- ret.push(c.name);
68563
+ ret.push(c.name + postfix);
68942
68564
  }
68943
68565
  }
68944
68566
  }
@@ -69519,10 +69141,6 @@ class TechnicalJobDefinition extends _abstract_object_1.AbstractObject {
69519
69141
  allowNamespace: true,
69520
69142
  };
69521
69143
  }
69522
- getDescription() {
69523
- // todo
69524
- return undefined;
69525
- }
69526
69144
  }
69527
69145
  exports.TechnicalJobDefinition = TechnicalJobDefinition;
69528
69146
  //# sourceMappingURL=technical_job_definition.js.map
@@ -69624,10 +69242,6 @@ class TransactionVariant extends _abstract_object_1.AbstractObject {
69624
69242
  allowNamespace: true,
69625
69243
  };
69626
69244
  }
69627
- getDescription() {
69628
- // todo
69629
- return undefined;
69630
- }
69631
69245
  }
69632
69246
  exports.TransactionVariant = TransactionVariant;
69633
69247
  //# sourceMappingURL=transaction_variant.js.map
@@ -69655,10 +69269,6 @@ class Transformation extends _abstract_object_1.AbstractObject {
69655
69269
  allowNamespace: true,
69656
69270
  };
69657
69271
  }
69658
- getDescription() {
69659
- // todo
69660
- return undefined;
69661
- }
69662
69272
  }
69663
69273
  exports.Transformation = Transformation;
69664
69274
  //# sourceMappingURL=transformation.js.map
@@ -69929,10 +69539,6 @@ class ViewCluster extends _abstract_object_1.AbstractObject {
69929
69539
  allowNamespace: true,
69930
69540
  };
69931
69541
  }
69932
- getDescription() {
69933
- // todo
69934
- return undefined;
69935
- }
69936
69542
  }
69937
69543
  exports.ViewCluster = ViewCluster;
69938
69544
  //# sourceMappingURL=view_cluster.js.map
@@ -69960,10 +69566,6 @@ class VirtualEndPoint extends _abstract_object_1.AbstractObject {
69960
69566
  allowNamespace: true,
69961
69567
  };
69962
69568
  }
69963
- getDescription() {
69964
- // todo
69965
- return undefined;
69966
- }
69967
69569
  }
69968
69570
  exports.VirtualEndPoint = VirtualEndPoint;
69969
69571
  //# sourceMappingURL=virtual_end_point.js.map
@@ -69991,10 +69593,6 @@ class WebDynproApplication extends _abstract_object_1.AbstractObject {
69991
69593
  allowNamespace: true,
69992
69594
  };
69993
69595
  }
69994
- getDescription() {
69995
- // todo
69996
- return undefined;
69997
- }
69998
69596
  }
69999
69597
  exports.WebDynproApplication = WebDynproApplication;
70000
69598
  //# sourceMappingURL=web_dynpro_application.js.map
@@ -70022,10 +69620,6 @@ class WebDynproApplicationConfiguration extends _abstract_object_1.AbstractObjec
70022
69620
  allowNamespace: true,
70023
69621
  };
70024
69622
  }
70025
- getDescription() {
70026
- // todo
70027
- return undefined;
70028
- }
70029
69623
  }
70030
69624
  exports.WebDynproApplicationConfiguration = WebDynproApplicationConfiguration;
70031
69625
  //# sourceMappingURL=web_dynpro_application_configuration.js.map
@@ -70053,10 +69647,6 @@ class WebDynproComponent extends _abstract_object_1.AbstractObject {
70053
69647
  allowNamespace: true,
70054
69648
  };
70055
69649
  }
70056
- getDescription() {
70057
- // todo
70058
- return undefined;
70059
- }
70060
69650
  }
70061
69651
  exports.WebDynproComponent = WebDynproComponent;
70062
69652
  //# sourceMappingURL=web_dynpro_component.js.map
@@ -70084,10 +69674,6 @@ class WebDynproComponentConfiguration extends _abstract_object_1.AbstractObject
70084
69674
  allowNamespace: true,
70085
69675
  };
70086
69676
  }
70087
- getDescription() {
70088
- // todo
70089
- return undefined;
70090
- }
70091
69677
  }
70092
69678
  exports.WebDynproComponentConfiguration = WebDynproComponentConfiguration;
70093
69679
  //# sourceMappingURL=web_dynpro_component_configuration.js.map
@@ -70195,10 +69781,6 @@ class WebReportingTemplate extends _abstract_object_1.AbstractObject {
70195
69781
  allowNamespace: true,
70196
69782
  };
70197
69783
  }
70198
- getDescription() {
70199
- // todo
70200
- return undefined;
70201
- }
70202
69784
  }
70203
69785
  exports.WebReportingTemplate = WebReportingTemplate;
70204
69786
  //# sourceMappingURL=web_reporting_template.js.map
@@ -70763,7 +70345,7 @@ class Registry {
70763
70345
  }
70764
70346
  static abaplintVersion() {
70765
70347
  // magic, see build script "version.js"
70766
- return "2.120.63";
70348
+ return "2.120.65";
70767
70349
  }
70768
70350
  getDDICReferences() {
70769
70351
  return this.ddicReferences;
@@ -81259,6 +80841,178 @@ exports.EasyToFindMessages = EasyToFindMessages;
81259
80841
 
81260
80842
  /***/ },
81261
80843
 
80844
+ /***/ "../core/build/src/rules/else_after_all_returns.js"
80845
+ /*!*********************************************************!*\
80846
+ !*** ../core/build/src/rules/else_after_all_returns.js ***!
80847
+ \*********************************************************/
80848
+ (__unused_webpack_module, exports, __webpack_require__) {
80849
+
80850
+ "use strict";
80851
+
80852
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
80853
+ if (k2 === undefined) k2 = k;
80854
+ var desc = Object.getOwnPropertyDescriptor(m, k);
80855
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
80856
+ desc = { enumerable: true, get: function() { return m[k]; } };
80857
+ }
80858
+ Object.defineProperty(o, k2, desc);
80859
+ }) : (function(o, m, k, k2) {
80860
+ if (k2 === undefined) k2 = k;
80861
+ o[k2] = m[k];
80862
+ }));
80863
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
80864
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
80865
+ }) : function(o, v) {
80866
+ o["default"] = v;
80867
+ });
80868
+ var __importStar = (this && this.__importStar) || (function () {
80869
+ var ownKeys = function(o) {
80870
+ ownKeys = Object.getOwnPropertyNames || function (o) {
80871
+ var ar = [];
80872
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
80873
+ return ar;
80874
+ };
80875
+ return ownKeys(o);
80876
+ };
80877
+ return function (mod) {
80878
+ if (mod && mod.__esModule) return mod;
80879
+ var result = {};
80880
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
80881
+ __setModuleDefault(result, mod);
80882
+ return result;
80883
+ };
80884
+ })();
80885
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
80886
+ exports.ElseAfterAllReturns = exports.ElseAfterAllReturnsConf = void 0;
80887
+ const issue_1 = __webpack_require__(/*! ../issue */ "../core/build/src/issue.js");
80888
+ const _abap_rule_1 = __webpack_require__(/*! ./_abap_rule */ "../core/build/src/rules/_abap_rule.js");
80889
+ const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "../core/build/src/rules/_basic_rule_config.js");
80890
+ const _irule_1 = __webpack_require__(/*! ./_irule */ "../core/build/src/rules/_irule.js");
80891
+ const Statements = __importStar(__webpack_require__(/*! ../abap/2_statements/statements */ "../core/build/src/abap/2_statements/statements/index.js"));
80892
+ const Structures = __importStar(__webpack_require__(/*! ../abap/3_structures/structures */ "../core/build/src/abap/3_structures/structures/index.js"));
80893
+ const Expressions = __importStar(__webpack_require__(/*! ../abap/2_statements/expressions */ "../core/build/src/abap/2_statements/expressions/index.js"));
80894
+ const nodes_1 = __webpack_require__(/*! ../abap/nodes */ "../core/build/src/abap/nodes/index.js");
80895
+ const edit_helper_1 = __webpack_require__(/*! ../edit_helper */ "../core/build/src/edit_helper.js");
80896
+ const _statement_1 = __webpack_require__(/*! ../abap/2_statements/statements/_statement */ "../core/build/src/abap/2_statements/statements/_statement.js");
80897
+ class ElseAfterAllReturnsConf extends _basic_rule_config_1.BasicRuleConfig {
80898
+ }
80899
+ exports.ElseAfterAllReturnsConf = ElseAfterAllReturnsConf;
80900
+ class ElseAfterAllReturns extends _abap_rule_1.ABAPRule {
80901
+ constructor() {
80902
+ super(...arguments);
80903
+ this.conf = new ElseAfterAllReturnsConf();
80904
+ }
80905
+ getMetadata() {
80906
+ return {
80907
+ key: "else_after_all_returns",
80908
+ title: "Else after all returns",
80909
+ shortDescription: `Finds ELSE branches that are redundant because all prior branches exit unconditionally.`,
80910
+ extendedInformation: `When every branch preceding ELSE ends with RETURN, EXIT, or CONTINUE (or a non-resumable RAISE / LEAVE), ` +
80911
+ `the ELSE keyword adds no logical value and can be removed by de-indenting its body.`,
80912
+ tags: [_irule_1.RuleTag.SingleFile, _irule_1.RuleTag.Styleguide, _irule_1.RuleTag.Quickfix],
80913
+ badExample: `IF x = 1.\n RETURN.\nELSE.\n WRITE 'hello'.\nENDIF.`,
80914
+ goodExample: `IF x = 1.\n RETURN.\nENDIF.\nWRITE 'hello'.`,
80915
+ };
80916
+ }
80917
+ getConfig() {
80918
+ return this.conf;
80919
+ }
80920
+ setConfig(conf) {
80921
+ this.conf = conf;
80922
+ }
80923
+ runParsed(file, _obj) {
80924
+ const issues = [];
80925
+ const structure = file.getStructure();
80926
+ if (structure === undefined) {
80927
+ return [];
80928
+ }
80929
+ for (const ifNode of structure.findAllStructures(Structures.If)) {
80930
+ const elseNode = ifNode.findDirectStructure(Structures.Else);
80931
+ if (elseNode === undefined) {
80932
+ continue;
80933
+ }
80934
+ if (this.allBranchesExit(ifNode)) {
80935
+ const elseStatement = elseNode.findFirstStatement(Statements.Else);
80936
+ const endifStatement = ifNode.findDirectStatement(Statements.EndIf);
80937
+ if (elseStatement === undefined || endifStatement === undefined) {
80938
+ continue;
80939
+ }
80940
+ const fix = edit_helper_1.EditHelper.merge(edit_helper_1.EditHelper.replaceRange(file, elseStatement.getFirstToken().getStart(), elseStatement.getLastToken().getEnd(), "ENDIF."), edit_helper_1.EditHelper.deleteStatement(file, endifStatement));
80941
+ const message = "Redundant ELSE: all prior branches exit unconditionally";
80942
+ issues.push(issue_1.Issue.atStatement(file, elseStatement, message, this.getMetadata().key, this.conf.severity, fix));
80943
+ }
80944
+ }
80945
+ return issues;
80946
+ }
80947
+ // Returns true if every branch before the ELSE ends with an unconditional exit.
80948
+ allBranchesExit(ifNode) {
80949
+ // Main IF body
80950
+ const mainBody = ifNode.findDirectStructure(Structures.Body);
80951
+ if (!this.bodyEndsWithExit(mainBody)) {
80952
+ return false;
80953
+ }
80954
+ // Each ELSEIF body
80955
+ for (const elseifNode of ifNode.findDirectStructures(Structures.ElseIf)) {
80956
+ const elseifBody = elseifNode.findDirectStructure(Structures.Body);
80957
+ if (!this.bodyEndsWithExit(elseifBody)) {
80958
+ return false;
80959
+ }
80960
+ }
80961
+ return true;
80962
+ }
80963
+ bodyEndsWithExit(body) {
80964
+ if (body === undefined) {
80965
+ return false;
80966
+ }
80967
+ const last = this.lastNonCommentStatement(body);
80968
+ if (last === undefined) {
80969
+ return false;
80970
+ }
80971
+ return this.isExit(last);
80972
+ }
80973
+ collectStatements(node) {
80974
+ const result = [];
80975
+ for (const child of node.getChildren()) {
80976
+ if (child instanceof nodes_1.StatementNode) {
80977
+ result.push(child);
80978
+ }
80979
+ else if (child instanceof nodes_1.StructureNode) {
80980
+ result.push(...this.collectStatements(child));
80981
+ }
80982
+ }
80983
+ return result;
80984
+ }
80985
+ lastNonCommentStatement(node) {
80986
+ const all = this.collectStatements(node);
80987
+ for (let i = all.length - 1; i >= 0; i--) {
80988
+ if (!(all[i].get() instanceof _statement_1.Comment)) {
80989
+ return all[i];
80990
+ }
80991
+ }
80992
+ return undefined;
80993
+ }
80994
+ isExit(node) {
80995
+ const s = node.get();
80996
+ if (s instanceof Statements.Return
80997
+ || s instanceof Statements.Exit
80998
+ || s instanceof Statements.Continue) {
80999
+ return true;
81000
+ }
81001
+ if (s instanceof Statements.Raise) {
81002
+ return !node.concatTokens().toUpperCase().includes("RESUMABLE");
81003
+ }
81004
+ if (s instanceof Statements.Leave) {
81005
+ const tokens = node.concatTokens().toUpperCase();
81006
+ return !tokens.includes("LIST-PROCESSING") && node.findFirstExpression(Expressions.AndReturn) === undefined;
81007
+ }
81008
+ return false;
81009
+ }
81010
+ }
81011
+ exports.ElseAfterAllReturns = ElseAfterAllReturns;
81012
+ //# sourceMappingURL=else_after_all_returns.js.map
81013
+
81014
+ /***/ },
81015
+
81262
81016
  /***/ "../core/build/src/rules/empty_event.js"
81263
81017
  /*!**********************************************!*\
81264
81018
  !*** ../core/build/src/rules/empty_event.js ***!
@@ -84221,6 +83975,8 @@ const Statements = __importStar(__webpack_require__(/*! ../abap/2_statements/sta
84221
83975
  const Expressions = __importStar(__webpack_require__(/*! ../abap/2_statements/expressions */ "../core/build/src/abap/2_statements/expressions/index.js"));
84222
83976
  const _irule_1 = __webpack_require__(/*! ./_irule */ "../core/build/src/rules/_irule.js");
84223
83977
  const edit_helper_1 = __webpack_require__(/*! ../edit_helper */ "../core/build/src/edit_helper.js");
83978
+ const syntax_1 = __webpack_require__(/*! ../abap/5_syntax/syntax */ "../core/build/src/abap/5_syntax/syntax.js");
83979
+ const _reference_1 = __webpack_require__(/*! ../abap/5_syntax/_reference */ "../core/build/src/abap/5_syntax/_reference.js");
84224
83980
  // todo: abstract methods from superclass parents(might be multiple), if class is not abstract
84225
83981
  class ImplementMethodsConf extends _basic_rule_config_1.BasicRuleConfig {
84226
83982
  }
@@ -84331,7 +84087,7 @@ class ImplementMethods extends _abap_rule_1.ABAPRule {
84331
84087
  return undefined;
84332
84088
  }
84333
84089
  findInterface(identifier, name) {
84334
- const idef = this.findInterfaceByName(name);
84090
+ const idef = this.findInterfaceByName(name, identifier);
84335
84091
  if (idef === undefined) {
84336
84092
  const message = "Implemented interface \"" + name + "\" not found";
84337
84093
  const issue = issue_1.Issue.atIdentifier(identifier, message, this.getMetadata().key, this.conf.severity);
@@ -84339,24 +84095,45 @@ class ImplementMethods extends _abap_rule_1.ABAPRule {
84339
84095
  }
84340
84096
  return idef;
84341
84097
  }
84342
- findInterfaceByName(name) {
84098
+ findInterfaceByName(name, usedAt) {
84343
84099
  var _a;
84344
- let idef = undefined;
84345
84100
  const intf = this.reg.getObject("INTF", name);
84346
- if (intf === undefined) {
84347
- // lookup in localfiles
84101
+ const global = (_a = intf === null || intf === void 0 ? void 0 : intf.getMainABAPFile()) === null || _a === void 0 ? void 0 : _a.getInfo().listInterfaceDefinitions()[0];
84102
+ let local = undefined;
84103
+ for (const file of this.obj.getABAPFiles()) {
84104
+ local = file.getInfo().getInterfaceDefinitionByName(name);
84105
+ if (local) {
84106
+ break;
84107
+ }
84108
+ }
84109
+ if (local === undefined || global === undefined) {
84110
+ return global || local;
84111
+ }
84112
+ // both a local and a global interface exist with the same name, use what the syntax check resolved
84113
+ const resolved = this.findResolvedInterface(name, usedAt);
84114
+ if (resolved !== undefined) {
84348
84115
  for (const file of this.obj.getABAPFiles()) {
84349
- const found = file.getInfo().getInterfaceDefinitionByName(name);
84350
- if (found) {
84351
- idef = found;
84352
- break;
84116
+ for (const idef of file.getInfo().listInterfaceDefinitions()) {
84117
+ if (idef.identifier.equals(resolved)) {
84118
+ return idef;
84119
+ }
84353
84120
  }
84354
84121
  }
84355
84122
  }
84356
- else {
84357
- idef = (_a = intf.getMainABAPFile()) === null || _a === void 0 ? void 0 : _a.getInfo().listInterfaceDefinitions()[0];
84123
+ return global;
84124
+ }
84125
+ findResolvedInterface(name, usedAt) {
84126
+ var _a, _b, _c;
84127
+ const scope = new syntax_1.SyntaxLogic(this.reg, this.obj).run().spaghetti.lookupPosition(usedAt.getStart(), usedAt.getFilename());
84128
+ const upper = name.toUpperCase();
84129
+ for (const ref of (scope === null || scope === void 0 ? void 0 : scope.getData().references) || []) {
84130
+ if (ref.referenceType === _reference_1.ReferenceType.ObjectOrientedReference
84131
+ && ((_a = ref.extra) === null || _a === void 0 ? void 0 : _a.ooType) === "INTF"
84132
+ && ((_c = (_b = ref.extra) === null || _b === void 0 ? void 0 : _b.ooName) === null || _c === void 0 ? void 0 : _c.toUpperCase()) === upper) {
84133
+ return ref.resolved;
84134
+ }
84358
84135
  }
84359
- return idef;
84136
+ return undefined;
84360
84137
  }
84361
84138
  /** including implemented super interfaces */
84362
84139
  findInterfaceMethods(idef) {
@@ -84475,7 +84252,7 @@ class ImplementMethods extends _abap_rule_1.ABAPRule {
84475
84252
  }
84476
84253
  if (found === undefined) {
84477
84254
  for (const i of def.interfaces) {
84478
- const idef = this.findInterfaceByName(i.name);
84255
+ const idef = this.findInterfaceByName(i.name, def.identifier);
84479
84256
  if (idef === undefined) {
84480
84257
  continue;
84481
84258
  }
@@ -85080,6 +84857,7 @@ __exportStar(__webpack_require__(/*! ./empty_event */ "../core/build/src/rules/e
85080
84857
  __exportStar(__webpack_require__(/*! ./empty_line_in_statement */ "../core/build/src/rules/empty_line_in_statement.js"), exports);
85081
84858
  __exportStar(__webpack_require__(/*! ./empty_statement */ "../core/build/src/rules/empty_statement.js"), exports);
85082
84859
  __exportStar(__webpack_require__(/*! ./empty_structure */ "../core/build/src/rules/empty_structure.js"), exports);
84860
+ __exportStar(__webpack_require__(/*! ./else_after_all_returns */ "../core/build/src/rules/else_after_all_returns.js"), exports);
85083
84861
  __exportStar(__webpack_require__(/*! ./exit_or_check */ "../core/build/src/rules/exit_or_check.js"), exports);
85084
84862
  __exportStar(__webpack_require__(/*! ./expand_macros */ "../core/build/src/rules/expand_macros.js"), exports);
85085
84863
  __exportStar(__webpack_require__(/*! ./exporting */ "../core/build/src/rules/exporting.js"), exports);
@@ -85166,6 +84944,7 @@ __exportStar(__webpack_require__(/*! ./prefer_string_template */ "../core/build/
85166
84944
  __exportStar(__webpack_require__(/*! ./prefer_returning_to_exporting */ "../core/build/src/rules/prefer_returning_to_exporting.js"), exports);
85167
84945
  __exportStar(__webpack_require__(/*! ./prefer_xsdbool */ "../core/build/src/rules/prefer_xsdbool.js"), exports);
85168
84946
  __exportStar(__webpack_require__(/*! ./preferred_compare_operator */ "../core/build/src/rules/preferred_compare_operator.js"), exports);
84947
+ __exportStar(__webpack_require__(/*! ./preferred_parameter_ignored */ "../core/build/src/rules/preferred_parameter_ignored.js"), exports);
85169
84948
  __exportStar(__webpack_require__(/*! ./prefix_is_current_class */ "../core/build/src/rules/prefix_is_current_class.js"), exports);
85170
84949
  __exportStar(__webpack_require__(/*! ./reduce_procedural_code */ "../core/build/src/rules/reduce_procedural_code.js"), exports);
85171
84950
  __exportStar(__webpack_require__(/*! ./reduce_string_templates */ "../core/build/src/rules/reduce_string_templates.js"), exports);
@@ -94207,6 +93986,157 @@ exports.PreferredCompareOperator = PreferredCompareOperator;
94207
93986
 
94208
93987
  /***/ },
94209
93988
 
93989
+ /***/ "../core/build/src/rules/preferred_parameter_ignored.js"
93990
+ /*!**************************************************************!*\
93991
+ !*** ../core/build/src/rules/preferred_parameter_ignored.js ***!
93992
+ \**************************************************************/
93993
+ (__unused_webpack_module, exports, __webpack_require__) {
93994
+
93995
+ "use strict";
93996
+
93997
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
93998
+ if (k2 === undefined) k2 = k;
93999
+ var desc = Object.getOwnPropertyDescriptor(m, k);
94000
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
94001
+ desc = { enumerable: true, get: function() { return m[k]; } };
94002
+ }
94003
+ Object.defineProperty(o, k2, desc);
94004
+ }) : (function(o, m, k, k2) {
94005
+ if (k2 === undefined) k2 = k;
94006
+ o[k2] = m[k];
94007
+ }));
94008
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
94009
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
94010
+ }) : function(o, v) {
94011
+ o["default"] = v;
94012
+ });
94013
+ var __importStar = (this && this.__importStar) || (function () {
94014
+ var ownKeys = function(o) {
94015
+ ownKeys = Object.getOwnPropertyNames || function (o) {
94016
+ var ar = [];
94017
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
94018
+ return ar;
94019
+ };
94020
+ return ownKeys(o);
94021
+ };
94022
+ return function (mod) {
94023
+ if (mod && mod.__esModule) return mod;
94024
+ var result = {};
94025
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
94026
+ __setModuleDefault(result, mod);
94027
+ return result;
94028
+ };
94029
+ })();
94030
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
94031
+ exports.PreferredParameterIgnored = exports.PreferredParameterIgnoredConf = void 0;
94032
+ const Expressions = __importStar(__webpack_require__(/*! ../abap/2_statements/expressions */ "../core/build/src/abap/2_statements/expressions/index.js"));
94033
+ const issue_1 = __webpack_require__(/*! ../issue */ "../core/build/src/issue.js");
94034
+ const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "../core/build/src/rules/_basic_rule_config.js");
94035
+ const _abap_rule_1 = __webpack_require__(/*! ./_abap_rule */ "../core/build/src/rules/_abap_rule.js");
94036
+ const _irule_1 = __webpack_require__(/*! ./_irule */ "../core/build/src/rules/_irule.js");
94037
+ const edit_helper_1 = __webpack_require__(/*! ../edit_helper */ "../core/build/src/edit_helper.js");
94038
+ class PreferredParameterIgnoredConf extends _basic_rule_config_1.BasicRuleConfig {
94039
+ }
94040
+ exports.PreferredParameterIgnoredConf = PreferredParameterIgnoredConf;
94041
+ class PreferredParameterIgnored extends _abap_rule_1.ABAPRule {
94042
+ constructor() {
94043
+ super(...arguments);
94044
+ this.conf = new PreferredParameterIgnoredConf();
94045
+ }
94046
+ getMetadata() {
94047
+ return {
94048
+ key: "preferred_parameter_ignored",
94049
+ title: "PREFERRED PARAMETER is ignored",
94050
+ shortDescription: `PREFERRED PARAMETER on an IMPORTING clause that still has a mandatory
94051
+ parameter. The addition names the parameter a positional call fills, which only
94052
+ means something when every parameter may be left out - so with a mandatory one
94053
+ present it does nothing.`,
94054
+ extendedInformation: `\`PREFERRED PARAMETER\` names the importing parameter that a call filling exactly
94055
+ one parameter positionally fills. That question only arises when a parameter
94056
+ may be LEFT OUT, so the addition is ignored while any importing parameter is
94057
+ neither \`OPTIONAL\` nor carries a \`DEFAULT\`.
94058
+
94059
+ The compiler warns "Declare the parameter as OPTIONAL. The addition PREFERRED
94060
+ PARAMETER is ignored if non-optional parameters are used", yet it still lets a
94061
+ call leave the preferred parameter out. So the quick fix declares the mandatory
94062
+ importing parameters OPTIONAL, as the compiler asks: every call that compiles
94063
+ today keeps compiling. Removing the addition instead would turn the calls that
94064
+ leave the preferred parameter out into syntax errors.`,
94065
+ tags: [_irule_1.RuleTag.SingleFile, _irule_1.RuleTag.Quickfix],
94066
+ badExample: `METHODS meth
94067
+ IMPORTING
94068
+ val TYPE string
94069
+ other TYPE i OPTIONAL
94070
+ PREFERRED PARAMETER val.`,
94071
+ goodExample: `METHODS meth
94072
+ IMPORTING
94073
+ val TYPE string OPTIONAL
94074
+ other TYPE i OPTIONAL
94075
+ PREFERRED PARAMETER val.`,
94076
+ };
94077
+ }
94078
+ getConfig() {
94079
+ return this.conf;
94080
+ }
94081
+ setConfig(conf) {
94082
+ this.conf = conf;
94083
+ }
94084
+ runParsed(file) {
94085
+ var _a;
94086
+ var _b;
94087
+ const issues = [];
94088
+ for (const statement of file.getStatements()) {
94089
+ const importing = statement.findFirstExpression(Expressions.MethodDefImporting);
94090
+ if (importing === undefined) {
94091
+ continue;
94092
+ }
94093
+ const preferred = this.preferredTokens(importing);
94094
+ if (preferred === undefined) {
94095
+ continue;
94096
+ }
94097
+ const mandatory = this.mandatoryParameters(importing);
94098
+ if (mandatory.length === 0) {
94099
+ continue;
94100
+ }
94101
+ const fix = edit_helper_1.EditHelper.mergeList(mandatory.map(p => edit_helper_1.EditHelper.insertAt(file, p.getLastToken().getEnd(), " OPTIONAL")));
94102
+ const name = (_b = (_a = mandatory[0].findFirstExpression(Expressions.MethodParamName)) === null || _a === void 0 ? void 0 : _a.concatTokens()) !== null && _b !== void 0 ? _b : mandatory[0].concatTokens();
94103
+ const message = `PREFERRED PARAMETER is ignored while ${name} is not optional`;
94104
+ issues.push(issue_1.Issue.atStatement(file, statement, message, this.getMetadata().key, this.conf.severity, fix));
94105
+ }
94106
+ return issues;
94107
+ }
94108
+ ////////////////
94109
+ /** The span of `PREFERRED PARAMETER <name>`, or undefined when the clause
94110
+ * does not carry the addition. */
94111
+ preferredTokens(importing) {
94112
+ const tokens = importing.getTokens();
94113
+ for (let i = 0; i + 2 < tokens.length; i++) {
94114
+ if (tokens[i].getStr().toUpperCase() === "PREFERRED"
94115
+ && tokens[i + 1].getStr().toUpperCase() === "PARAMETER") {
94116
+ return { start: tokens[i].getStart(), end: tokens[i + 2].getEnd() };
94117
+ }
94118
+ }
94119
+ return undefined;
94120
+ }
94121
+ /** The importing parameters that are neither OPTIONAL nor have a DEFAULT,
94122
+ * empty when every one of them may be left out. */
94123
+ mandatoryParameters(importing) {
94124
+ const ret = [];
94125
+ for (const param of importing.findDirectExpressions(Expressions.MethodParamOptional)) {
94126
+ const concat = param.concatTokens().toUpperCase();
94127
+ if (concat.endsWith(" OPTIONAL") || concat.includes(" DEFAULT ")) {
94128
+ continue;
94129
+ }
94130
+ ret.push(param);
94131
+ }
94132
+ return ret;
94133
+ }
94134
+ }
94135
+ exports.PreferredParameterIgnored = PreferredParameterIgnored;
94136
+ //# sourceMappingURL=preferred_parameter_ignored.js.map
94137
+
94138
+ /***/ },
94139
+
94210
94140
  /***/ "../core/build/src/rules/prefix_is_current_class.js"
94211
94141
  /*!**********************************************************!*\
94212
94142
  !*** ../core/build/src/rules/prefix_is_current_class.js ***!