@abaplint/cli 2.113.39 → 2.113.41
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.
- package/build/cli.js +99 -40
- package/package.json +3 -3
package/build/cli.js
CHANGED
|
@@ -5947,6 +5947,7 @@ __exportStar(__webpack_require__(/*! ./sql_for_all_entries */ "./node_modules/@a
|
|
|
5947
5947
|
__exportStar(__webpack_require__(/*! ./sql_from_source */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_from_source.js"), exports);
|
|
5948
5948
|
__exportStar(__webpack_require__(/*! ./sql_from */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_from.js"), exports);
|
|
5949
5949
|
__exportStar(__webpack_require__(/*! ./sql_function */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_function.js"), exports);
|
|
5950
|
+
__exportStar(__webpack_require__(/*! ./sql_function_input */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_function_input.js"), exports);
|
|
5950
5951
|
__exportStar(__webpack_require__(/*! ./sql_group_by */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_group_by.js"), exports);
|
|
5951
5952
|
__exportStar(__webpack_require__(/*! ./sql_having */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_having.js"), exports);
|
|
5952
5953
|
__exportStar(__webpack_require__(/*! ./sql_hints */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_hints.js"), exports);
|
|
@@ -8381,37 +8382,29 @@ exports.SQLFromSource = SQLFromSource;
|
|
|
8381
8382
|
|
|
8382
8383
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
8383
8384
|
exports.SQLFunction = void 0;
|
|
8384
|
-
const constant_1 = __webpack_require__(/*! ./constant */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/constant.js");
|
|
8385
8385
|
const version_1 = __webpack_require__(/*! ../../../version */ "./node_modules/@abaplint/core/build/src/version.js");
|
|
8386
8386
|
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/index.js");
|
|
8387
8387
|
const combi_1 = __webpack_require__(/*! ../combi */ "./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js");
|
|
8388
8388
|
const integer_1 = __webpack_require__(/*! ./integer */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/integer.js");
|
|
8389
|
-
const
|
|
8390
|
-
const sql_field_name_1 = __webpack_require__(/*! ./sql_field_name */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_field_name.js");
|
|
8391
|
-
const simple_source3_1 = __webpack_require__(/*! ./simple_source3 */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/simple_source3.js");
|
|
8392
|
-
const source_1 = __webpack_require__(/*! ./source */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/source.js");
|
|
8393
|
-
const sql_aggregation_1 = __webpack_require__(/*! ./sql_aggregation */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_aggregation.js");
|
|
8389
|
+
const sql_function_input_1 = __webpack_require__(/*! ./sql_function_input */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_function_input.js");
|
|
8394
8390
|
class SQLFunction extends combi_1.Expression {
|
|
8395
8391
|
getRunnable() {
|
|
8396
|
-
const paren = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), source_1.Source, (0, combi_1.tok)(tokens_1.WParenRightW));
|
|
8397
|
-
const at = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), (0, combi_1.altPrio)(simple_source3_1.SimpleSource3, paren)));
|
|
8398
|
-
const param = (0, combi_1.altPrio)(SQLFunction, sql_aggregation_1.SQLAggregation, sql_field_name_1.SQLFieldName, sql_alias_field_1.SQLAliasField, constant_1.Constant, at);
|
|
8399
8392
|
const castTypes = (0, combi_1.altPrio)((0, combi_1.seq)("CHAR", (0, combi_1.tok)(tokens_1.ParenLeftW), integer_1.Integer, (0, combi_1.tok)(tokens_1.WParenRightW)), (0, combi_1.seq)("DEC", (0, combi_1.tok)(tokens_1.ParenLeftW), integer_1.Integer, ",", integer_1.Integer, (0, combi_1.tok)(tokens_1.WParenRightW)), "FLTP", "NUMC", "INT8");
|
|
8400
|
-
const commaParam = (0, combi_1.seq)(",",
|
|
8393
|
+
const commaParam = (0, combi_1.seq)(",", sql_function_input_1.SQLFunctionInput);
|
|
8401
8394
|
// note: the function names are not keywords, they are usually in lower case
|
|
8402
|
-
const abs = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^abs$/i), (0, combi_1.tok)(tokens_1.ParenLeftW),
|
|
8403
|
-
const cast = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^cast$/i), (0, combi_1.tok)(tokens_1.ParenLeftW),
|
|
8404
|
-
const ceil = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^ceil$/i), (0, combi_1.tok)(tokens_1.ParenLeftW),
|
|
8405
|
-
const coalesce = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^coalesce$/i), (0, combi_1.tok)(tokens_1.ParenLeftW),
|
|
8406
|
-
const concat = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^concat$/i), (0, combi_1.tok)(tokens_1.ParenLeftW),
|
|
8407
|
-
const div = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^div$/i), (0, combi_1.tok)(tokens_1.ParenLeftW),
|
|
8408
|
-
const floor = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^floor$/i), (0, combi_1.tok)(tokens_1.ParenLeftW),
|
|
8409
|
-
const length = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^length$/i), (0, combi_1.tok)(tokens_1.ParenLeftW),
|
|
8410
|
-
const lower = (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)((0, combi_1.regex)(/^lower$/i), (0, combi_1.tok)(tokens_1.ParenLeftW),
|
|
8411
|
-
const mod = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^mod$/i), (0, combi_1.tok)(tokens_1.ParenLeftW),
|
|
8412
|
-
const replace = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^replace$/i), (0, combi_1.tok)(tokens_1.ParenLeftW),
|
|
8413
|
-
const round = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^round$/i), (0, combi_1.tok)(tokens_1.ParenLeftW),
|
|
8414
|
-
const upper = (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)((0, combi_1.regex)(/^upper$/i), (0, combi_1.tok)(tokens_1.ParenLeftW),
|
|
8395
|
+
const abs = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^abs$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8396
|
+
const cast = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^cast$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, "AS", castTypes, (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8397
|
+
const ceil = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^ceil$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8398
|
+
const coalesce = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^coalesce$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, (0, combi_1.optPrio)(commaParam), (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8399
|
+
const concat = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^concat$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8400
|
+
const div = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^div$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8401
|
+
const floor = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^floor$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8402
|
+
const length = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^length$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8403
|
+
const lower = (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)((0, combi_1.regex)(/^lower$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8404
|
+
const mod = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.regex)(/^mod$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8405
|
+
const replace = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^replace$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8406
|
+
const round = (0, combi_1.ver)(version_1.Version.v750, (0, combi_1.seq)((0, combi_1.regex)(/^round$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, commaParam, (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8407
|
+
const upper = (0, combi_1.ver)(version_1.Version.v751, (0, combi_1.seq)((0, combi_1.regex)(/^upper$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), sql_function_input_1.SQLFunctionInput, (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8415
8408
|
const uuid = (0, combi_1.ver)(version_1.Version.v754, (0, combi_1.seq)((0, combi_1.regex)(/^uuid$/i), (0, combi_1.tok)(tokens_1.ParenLeftW), (0, combi_1.tok)(tokens_1.WParenRightW)));
|
|
8416
8409
|
return (0, combi_1.altPrio)(uuid, abs, ceil, floor, cast, div, mod, coalesce, concat, replace, length, lower, upper, round);
|
|
8417
8410
|
}
|
|
@@ -8421,6 +8414,40 @@ exports.SQLFunction = SQLFunction;
|
|
|
8421
8414
|
|
|
8422
8415
|
/***/ }),
|
|
8423
8416
|
|
|
8417
|
+
/***/ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_function_input.js":
|
|
8418
|
+
/*!***************************************************************************************************!*\
|
|
8419
|
+
!*** ./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_function_input.js ***!
|
|
8420
|
+
\***************************************************************************************************/
|
|
8421
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
8422
|
+
|
|
8423
|
+
"use strict";
|
|
8424
|
+
|
|
8425
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
8426
|
+
exports.SQLFunctionInput = void 0;
|
|
8427
|
+
const constant_1 = __webpack_require__(/*! ./constant */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/constant.js");
|
|
8428
|
+
const version_1 = __webpack_require__(/*! ../../../version */ "./node_modules/@abaplint/core/build/src/version.js");
|
|
8429
|
+
const tokens_1 = __webpack_require__(/*! ../../1_lexer/tokens */ "./node_modules/@abaplint/core/build/src/abap/1_lexer/tokens/index.js");
|
|
8430
|
+
const combi_1 = __webpack_require__(/*! ../combi */ "./node_modules/@abaplint/core/build/src/abap/2_statements/combi.js");
|
|
8431
|
+
const sql_alias_field_1 = __webpack_require__(/*! ./sql_alias_field */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_alias_field.js");
|
|
8432
|
+
const sql_field_name_1 = __webpack_require__(/*! ./sql_field_name */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_field_name.js");
|
|
8433
|
+
const simple_source3_1 = __webpack_require__(/*! ./simple_source3 */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/simple_source3.js");
|
|
8434
|
+
const source_1 = __webpack_require__(/*! ./source */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/source.js");
|
|
8435
|
+
const sql_aggregation_1 = __webpack_require__(/*! ./sql_aggregation */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_aggregation.js");
|
|
8436
|
+
const sql_function_1 = __webpack_require__(/*! ./sql_function */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_function.js");
|
|
8437
|
+
class SQLFunctionInput extends combi_1.Expression {
|
|
8438
|
+
getRunnable() {
|
|
8439
|
+
const paren = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.ParenLeftW), source_1.Source, (0, combi_1.tok)(tokens_1.WParenRightW));
|
|
8440
|
+
const at = (0, combi_1.ver)(version_1.Version.v740sp05, (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WAt), (0, combi_1.altPrio)(simple_source3_1.SimpleSource3, paren)));
|
|
8441
|
+
const param = (0, combi_1.altPrio)(sql_function_1.SQLFunction, sql_aggregation_1.SQLAggregation, sql_field_name_1.SQLFieldName, sql_alias_field_1.SQLAliasField, constant_1.Constant, at);
|
|
8442
|
+
const operator = (0, combi_1.altPrio)("+", "-", "*", "/", "&&");
|
|
8443
|
+
return (0, combi_1.seq)(param, (0, combi_1.starPrio)((0, combi_1.seq)(operator, param)));
|
|
8444
|
+
}
|
|
8445
|
+
}
|
|
8446
|
+
exports.SQLFunctionInput = SQLFunctionInput;
|
|
8447
|
+
//# sourceMappingURL=sql_function_input.js.map
|
|
8448
|
+
|
|
8449
|
+
/***/ }),
|
|
8450
|
+
|
|
8424
8451
|
/***/ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_group_by.js":
|
|
8425
8452
|
/*!*********************************************************************************************!*\
|
|
8426
8453
|
!*** ./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/sql_group_by.js ***!
|
|
@@ -11586,7 +11613,8 @@ const expressions_1 = __webpack_require__(/*! ../expressions */ "./node_modules/
|
|
|
11586
11613
|
class DataBegin {
|
|
11587
11614
|
getMatcher() {
|
|
11588
11615
|
const occurs = (0, combi_1.seq)("OCCURS", expressions_1.Integer);
|
|
11589
|
-
const
|
|
11616
|
+
const common = (0, combi_1.altPrio)((0, combi_1.seq)("COMMON PART", expressions_1.DefinitionName), "COMMON PART");
|
|
11617
|
+
const structure = (0, combi_1.seq)("BEGIN OF", (0, combi_1.altPrio)(common, (0, combi_1.seq)(expressions_1.DefinitionName, (0, combi_1.opt)("READ-ONLY"), (0, combi_1.opt)(occurs))));
|
|
11590
11618
|
return (0, combi_1.seq)("DATA", structure);
|
|
11591
11619
|
}
|
|
11592
11620
|
}
|
|
@@ -31688,17 +31716,18 @@ class MethodImplementation {
|
|
|
31688
31716
|
return;
|
|
31689
31717
|
}
|
|
31690
31718
|
const { method: methodDefinition } = helper.searchMethodName(classDefinition, methodName);
|
|
31691
|
-
if (methodDefinition === undefined) {
|
|
31692
|
-
const message = "Method definition \"" + methodName + "\" not found";
|
|
31693
|
-
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
31694
|
-
return;
|
|
31695
|
-
}
|
|
31696
31719
|
const start = node.getFirstToken().getStart();
|
|
31697
|
-
if (methodDefinition.isStatic() === false) {
|
|
31720
|
+
if ((methodDefinition === null || methodDefinition === void 0 ? void 0 : methodDefinition.isStatic()) === false) {
|
|
31698
31721
|
input.scope.push(_scope_type_1.ScopeType.MethodInstance, methodName, start, input.filename);
|
|
31699
31722
|
input.scope.addList(classDefinition.getAttributes().getInstance());
|
|
31700
31723
|
}
|
|
31701
31724
|
input.scope.push(_scope_type_1.ScopeType.Method, methodName, start, input.filename);
|
|
31725
|
+
// note: the scope must be pushed before returning
|
|
31726
|
+
if (methodDefinition === undefined) {
|
|
31727
|
+
const message = "Method definition \"" + methodName + "\" not found";
|
|
31728
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
31729
|
+
return;
|
|
31730
|
+
}
|
|
31702
31731
|
input.scope.addReference(methodToken, methodDefinition, _reference_1.ReferenceType.MethodImplementationReference, input.filename);
|
|
31703
31732
|
input.scope.addList(methodDefinition.getParameters().getAll());
|
|
31704
31733
|
for (const i of helper.findInterfaces(classDefinition)) {
|
|
@@ -32499,7 +32528,7 @@ class ReadTable {
|
|
|
32499
32528
|
if (indexSource) {
|
|
32500
32529
|
const indexType = new source_1.Source().runSyntax(indexSource, input);
|
|
32501
32530
|
if (new _type_utils_1.TypeUtils(input.scope).isAssignable(indexType, basic_1.IntegerType.get()) === false) {
|
|
32502
|
-
const message = "READ TABLE, INDEX must be simple";
|
|
32531
|
+
const message = "READ TABLE, INDEX must be simple, got " + (indexType === null || indexType === void 0 ? void 0 : indexType.constructor.name);
|
|
32503
32532
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
32504
32533
|
return;
|
|
32505
32534
|
}
|
|
@@ -35334,6 +35363,7 @@ const Expressions = __webpack_require__(/*! ../2_statements/expressions */ "./no
|
|
|
35334
35363
|
const flow_graph_1 = __webpack_require__(/*! ./flow_graph */ "./node_modules/@abaplint/core/build/src/abap/flow/flow_graph.js");
|
|
35335
35364
|
const objects_1 = __webpack_require__(/*! ../../objects */ "./node_modules/@abaplint/core/build/src/objects/index.js");
|
|
35336
35365
|
const selection_events_1 = __webpack_require__(/*! ./selection_events */ "./node_modules/@abaplint/core/build/src/abap/flow/selection_events.js");
|
|
35366
|
+
const virtual_position_1 = __webpack_require__(/*! ../../virtual_position */ "./node_modules/@abaplint/core/build/src/virtual_position.js");
|
|
35337
35367
|
class StatementFlow {
|
|
35338
35368
|
constructor() {
|
|
35339
35369
|
this.counter = 0;
|
|
@@ -35422,6 +35452,7 @@ class StatementFlow {
|
|
|
35422
35452
|
var _a;
|
|
35423
35453
|
return ((_a = f.findDirectStructure(Structures.Body)) === null || _a === void 0 ? void 0 : _a.getChildren()) || [];
|
|
35424
35454
|
}
|
|
35455
|
+
// note: it must handle macros and chained statements
|
|
35425
35456
|
buildName(statement) {
|
|
35426
35457
|
let token = undefined;
|
|
35427
35458
|
const colon = statement.getColon();
|
|
@@ -35436,12 +35467,18 @@ class StatementFlow {
|
|
|
35436
35467
|
}
|
|
35437
35468
|
}
|
|
35438
35469
|
}
|
|
35470
|
+
let extra = "";
|
|
35471
|
+
const tStart = token === null || token === void 0 ? void 0 : token.getStart();
|
|
35472
|
+
if (tStart instanceof virtual_position_1.VirtualPosition) {
|
|
35473
|
+
extra += "$" + tStart.vrow;
|
|
35474
|
+
extra += "," + tStart.vcol;
|
|
35475
|
+
}
|
|
35439
35476
|
if (token === undefined) {
|
|
35440
35477
|
return "tokenError";
|
|
35441
35478
|
}
|
|
35442
35479
|
return statement.get().constructor.name +
|
|
35443
35480
|
":" + token.getRow() +
|
|
35444
|
-
"," + token.getCol();
|
|
35481
|
+
"," + token.getCol() + extra;
|
|
35445
35482
|
}
|
|
35446
35483
|
traverseBody(children, context) {
|
|
35447
35484
|
const graph = new flow_graph_1.FlowGraph(this.counter++);
|
|
@@ -39743,9 +39780,19 @@ class CDSDetermineTypes {
|
|
|
39743
39780
|
const components = [];
|
|
39744
39781
|
for (const f of (parsedData === null || parsedData === void 0 ? void 0 : parsedData.fields) || []) {
|
|
39745
39782
|
if (f.prefix !== "") {
|
|
39746
|
-
|
|
39783
|
+
const prefixUpper = f.prefix.toUpperCase();
|
|
39784
|
+
let source = parsedData.sources.find((s) => { var _a; return ((_a = s.as) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === prefixUpper; });
|
|
39747
39785
|
if ((source === null || source === void 0 ? void 0 : source.name) === undefined) {
|
|
39748
|
-
source = parsedData.sources.find((s) => s.name.toUpperCase() ===
|
|
39786
|
+
source = parsedData.sources.find((s) => s.name.toUpperCase() === prefixUpper);
|
|
39787
|
+
}
|
|
39788
|
+
if ((source === null || source === void 0 ? void 0 : source.name) === undefined
|
|
39789
|
+
&& (parsedData.associations.find((s) => s.name.toUpperCase() === prefixUpper)
|
|
39790
|
+
|| parsedData.associations.find((s) => { var _a; return ((_a = s.as) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === prefixUpper; }))) {
|
|
39791
|
+
components.push({
|
|
39792
|
+
name: f.name,
|
|
39793
|
+
type: new basic_1.VoidType("DDLS:association"),
|
|
39794
|
+
});
|
|
39795
|
+
continue;
|
|
39749
39796
|
}
|
|
39750
39797
|
if ((source === null || source === void 0 ? void 0 : source.name) === undefined) {
|
|
39751
39798
|
components.push({
|
|
@@ -40302,7 +40349,7 @@ const combi_1 = __webpack_require__(/*! ../../abap/2_statements/combi */ "./node
|
|
|
40302
40349
|
class CDSCast extends combi_1.Expression {
|
|
40303
40350
|
getRunnable() {
|
|
40304
40351
|
const name = (0, combi_1.seq)(_1.CDSName, (0, combi_1.opt)((0, combi_1.seq)(".", _1.CDSName)));
|
|
40305
|
-
return (0, combi_1.seq)("CAST", "(", (0, combi_1.alt)(name, _1.CDSFunction, _1.CDSCase, CDSCast, _1.CDSString, _1.CDSArithmetics), "AS", _1.CDSType, (0, combi_1.opt)((0, combi_1.seq)("PRESERVING", "TYPE")), ")");
|
|
40352
|
+
return (0, combi_1.seq)("CAST", "(", (0, combi_1.alt)(name, _1.CDSFunction, _1.CDSCase, _1.CDSAggregate, CDSCast, _1.CDSString, _1.CDSArithmetics), "AS", _1.CDSType, (0, combi_1.opt)((0, combi_1.seq)("PRESERVING", "TYPE")), ")");
|
|
40306
40353
|
}
|
|
40307
40354
|
}
|
|
40308
40355
|
exports.CDSCast = CDSCast;
|
|
@@ -43569,6 +43616,7 @@ const _lsp_utils_1 = __webpack_require__(/*! ./_lsp_utils */ "./node_modules/@ab
|
|
|
43569
43616
|
const syntax_1 = __webpack_require__(/*! ../abap/5_syntax/syntax */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/syntax.js");
|
|
43570
43617
|
const _abap_object_1 = __webpack_require__(/*! ../objects/_abap_object */ "./node_modules/@abaplint/core/build/src/objects/_abap_object.js");
|
|
43571
43618
|
const dump_scope_1 = __webpack_require__(/*! ./dump_scope */ "./node_modules/@abaplint/core/build/src/lsp/dump_scope.js");
|
|
43619
|
+
const virtual_position_1 = __webpack_require__(/*! ../virtual_position */ "./node_modules/@abaplint/core/build/src/virtual_position.js");
|
|
43572
43620
|
class Help {
|
|
43573
43621
|
static find(reg, textDocument, position) {
|
|
43574
43622
|
const file = _lsp_utils_1.LSPUtils.getABAPFile(reg, textDocument.uri);
|
|
@@ -43743,13 +43791,24 @@ class Help {
|
|
|
43743
43791
|
return ret + "</ul>";
|
|
43744
43792
|
}
|
|
43745
43793
|
static tokens(file) {
|
|
43746
|
-
let inner =
|
|
43794
|
+
let inner = `<table><tr><td><b>String</b></td><td><b>Type</b></td>
|
|
43795
|
+
<td><b>Row</b></td><td><b>Column</b></td>
|
|
43796
|
+
<td><b>vRow</b></td><td><b>vColumn</b></td>
|
|
43797
|
+
</tr>`;
|
|
43747
43798
|
for (const token of file.getTokens()) {
|
|
43748
|
-
|
|
43799
|
+
const tStart = token.getStart();
|
|
43800
|
+
inner += "<tr><td><tt>" +
|
|
43749
43801
|
this.escape(token.getStr()) + "</tt></td><td>" +
|
|
43750
43802
|
token.constructor.name + "</td><td align=\"right\">" +
|
|
43751
|
-
|
|
43752
|
-
|
|
43803
|
+
tStart.getRow() + "</td><td align=\"right\">" +
|
|
43804
|
+
tStart.getCol() + "</td>";
|
|
43805
|
+
if (tStart instanceof virtual_position_1.VirtualPosition) {
|
|
43806
|
+
inner += `<td>${tStart.vcol}</td><td>${tStart.vrow}</td>`;
|
|
43807
|
+
}
|
|
43808
|
+
else {
|
|
43809
|
+
inner += "<td></td><td></td>";
|
|
43810
|
+
}
|
|
43811
|
+
inner += "</tr>";
|
|
43753
43812
|
}
|
|
43754
43813
|
inner = inner + "</table>";
|
|
43755
43814
|
return inner;
|
|
@@ -52974,7 +53033,7 @@ class Registry {
|
|
|
52974
53033
|
}
|
|
52975
53034
|
static abaplintVersion() {
|
|
52976
53035
|
// magic, see build script "version.sh"
|
|
52977
|
-
return "2.113.
|
|
53036
|
+
return "2.113.41";
|
|
52978
53037
|
}
|
|
52979
53038
|
getDDICReferences() {
|
|
52980
53039
|
return this.ddicReferences;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/cli",
|
|
3
|
-
"version": "2.113.
|
|
3
|
+
"version": "2.113.41",
|
|
4
4
|
"description": "abaplint - Command Line Interface",
|
|
5
5
|
"funding": "https://github.com/sponsors/larshp",
|
|
6
6
|
"bin": {
|
|
@@ -38,12 +38,12 @@
|
|
|
38
38
|
},
|
|
39
39
|
"homepage": "https://abaplint.org",
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@abaplint/core": "^2.113.
|
|
41
|
+
"@abaplint/core": "^2.113.41",
|
|
42
42
|
"@types/chai": "^4.3.20",
|
|
43
43
|
"@types/glob": "^8.1.0",
|
|
44
44
|
"@types/minimist": "^1.2.5",
|
|
45
45
|
"@types/mocha": "^10.0.9",
|
|
46
|
-
"@types/node": "^22.
|
|
46
|
+
"@types/node": "^22.9.0",
|
|
47
47
|
"@types/progress": "^2.0.7",
|
|
48
48
|
"chai": "^4.5.0",
|
|
49
49
|
"chalk": "^5.3.0",
|