@abaplint/cli 2.113.231 → 2.113.233
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 +44 -9
- package/package.json +4 -4
package/build/cli.js
CHANGED
|
@@ -4550,7 +4550,7 @@ const component_chain_simple_1 = __webpack_require__(/*! ./component_chain_simpl
|
|
|
4550
4550
|
const version_1 = __webpack_require__(/*! ../../../version */ "./node_modules/@abaplint/core/build/src/version.js");
|
|
4551
4551
|
class ComponentCompareSimple extends combi_1.Expression {
|
|
4552
4552
|
getRunnable() {
|
|
4553
|
-
const source = (0, combi_1.
|
|
4553
|
+
const source = (0, combi_1.altPrio)((0, combi_1.ver)(version_1.Version.v740sp02, _1.Source, version_1.Version.OpenABAP), _1.SimpleSource4);
|
|
4554
4554
|
const ret = (0, combi_1.seq)((0, combi_1.altPrio)(component_chain_simple_1.ComponentChainSimple, _1.Dynamic), "=", source);
|
|
4555
4555
|
return (0, combi_1.plus)(ret);
|
|
4556
4556
|
}
|
|
@@ -16309,12 +16309,11 @@ class ReadTable {
|
|
|
16309
16309
|
const comparing = (0, combi_1.seq)("COMPARING", (0, combi_1.alt)((0, combi_1.plus)(expressions_1.FieldSub), (0, combi_1.plus)(expressions_1.Dynamic)));
|
|
16310
16310
|
const index = (0, combi_1.seq)("INDEX", expressions_1.Source);
|
|
16311
16311
|
const components = (0, combi_1.seq)((0, combi_1.alt)(expressions_1.Field, expressions_1.Dynamic), "COMPONENTS", expressions_1.ComponentCompareSimple);
|
|
16312
|
-
const
|
|
16313
|
-
const key = (0, combi_1.seq)((0, combi_1.altPrio)("WITH KEY", "WITH TABLE KEY"), (0, combi_1.alt)(expressions_1.ComponentCompareSimple, components, (0, combi_1.seq)((0, combi_1.optPrio)("="), source)));
|
|
16312
|
+
const key = (0, combi_1.seq)((0, combi_1.altPrio)("WITH KEY", "WITH TABLE KEY"), (0, combi_1.alt)(expressions_1.ComponentCompareSimple, components, (0, combi_1.seq)((0, combi_1.optPrio)("="), expressions_1.Source)));
|
|
16314
16313
|
const using = (0, combi_1.seq)("USING KEY", (0, combi_1.alt)(expressions_1.Field, expressions_1.Dynamic));
|
|
16315
|
-
const from = (0, combi_1.seq)("FROM",
|
|
16314
|
+
const from = (0, combi_1.seq)("FROM", expressions_1.Source);
|
|
16316
16315
|
const perm = (0, combi_1.per)((0, combi_1.alt)(index, key, from), expressions_1.ReadTableTarget, using, comparing, "CASTING", (0, combi_1.seq)("TRANSPORTING", (0, combi_1.altPrio)("ALL FIELDS", "NO FIELDS", transporting_fields_1.TransportingFields)), "BINARY SEARCH");
|
|
16317
|
-
return (0, combi_1.seq)("READ TABLE",
|
|
16316
|
+
return (0, combi_1.seq)("READ TABLE", (0, combi_1.alt)(expressions_1.SimpleSource2, (0, combi_1.ver)(version_1.Version.v740sp02, expressions_1.Source, version_1.Version.OpenABAP)), (0, combi_1.opt)(perm));
|
|
16318
16317
|
}
|
|
16319
16318
|
}
|
|
16320
16319
|
exports.ReadTable = ReadTable;
|
|
@@ -23980,9 +23979,30 @@ class TypeUtils {
|
|
|
23980
23979
|
return true;
|
|
23981
23980
|
}
|
|
23982
23981
|
else if (source instanceof basic_1.StructureType) {
|
|
23983
|
-
|
|
23982
|
+
const targetDeep = this.structureContainsString(target);
|
|
23983
|
+
const sourceDeep = this.structureContainsString(source);
|
|
23984
|
+
if (targetDeep && !sourceDeep) {
|
|
23984
23985
|
return false;
|
|
23985
23986
|
}
|
|
23987
|
+
const targetComponents = target.getComponents();
|
|
23988
|
+
const sourceComponents = source.getComponents();
|
|
23989
|
+
if (targetComponents.length !== sourceComponents.length) {
|
|
23990
|
+
if (targetDeep === true || sourceDeep === true) {
|
|
23991
|
+
return false;
|
|
23992
|
+
}
|
|
23993
|
+
}
|
|
23994
|
+
for (let i = 0; i < targetComponents.length; i++) {
|
|
23995
|
+
if (sourceComponents[i] === undefined) {
|
|
23996
|
+
continue;
|
|
23997
|
+
}
|
|
23998
|
+
// hmm
|
|
23999
|
+
if (sourceComponents[i].type instanceof basic_1.StringType && !(targetComponents[i].type instanceof basic_1.StringType)) {
|
|
24000
|
+
return false;
|
|
24001
|
+
}
|
|
24002
|
+
else if (!(sourceComponents[i].type instanceof basic_1.StringType) && targetComponents[i].type instanceof basic_1.StringType) {
|
|
24003
|
+
return false;
|
|
24004
|
+
}
|
|
24005
|
+
}
|
|
23986
24006
|
return true;
|
|
23987
24007
|
}
|
|
23988
24008
|
else if (target.containsVoid() === true) {
|
|
@@ -25458,7 +25478,9 @@ class ComponentCompareSimple {
|
|
|
25458
25478
|
else if (c.get() instanceof Expressions.Dynamic) {
|
|
25459
25479
|
targetType = undefined;
|
|
25460
25480
|
}
|
|
25461
|
-
else if (c.get() instanceof Expressions.Source
|
|
25481
|
+
else if (c.get() instanceof Expressions.Source
|
|
25482
|
+
|| c.get() instanceof Expressions.SimpleSource4
|
|
25483
|
+
|| c.get() instanceof Expressions.SimpleSource2) {
|
|
25462
25484
|
const sourceType = source_1.Source.runSyntax(c, input, targetType);
|
|
25463
25485
|
if (targetType && new _type_utils_1.TypeUtils(input.scope).isAssignable(sourceType, targetType) === false) {
|
|
25464
25486
|
const message = "ComponentCompareSimple, incompatible types";
|
|
@@ -25976,7 +25998,7 @@ class FieldAssignment {
|
|
|
25976
25998
|
const text = c.concatTokens();
|
|
25977
25999
|
if (text !== "-" && context instanceof basic_1.StructureType) {
|
|
25978
26000
|
context = context.getComponentByName(text);
|
|
25979
|
-
if (context === undefined
|
|
26001
|
+
if (context === undefined) {
|
|
25980
26002
|
const message = `field ${text} does not exist in structure`;
|
|
25981
26003
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
25982
26004
|
return;
|
|
@@ -33130,6 +33152,7 @@ const _object_oriented_1 = __webpack_require__(/*! ../_object_oriented */ "./nod
|
|
|
33130
33152
|
const _scope_type_1 = __webpack_require__(/*! ../_scope_type */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_scope_type.js");
|
|
33131
33153
|
const _reference_1 = __webpack_require__(/*! ../_reference */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_reference.js");
|
|
33132
33154
|
const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_syntax_input.js");
|
|
33155
|
+
const visibility_1 = __webpack_require__(/*! ../../4_file_information/visibility */ "./node_modules/@abaplint/core/build/src/abap/4_file_information/visibility.js");
|
|
33133
33156
|
class MethodImplementation {
|
|
33134
33157
|
runSyntax(node, input) {
|
|
33135
33158
|
const helper = new _object_oriented_1.ObjectOriented(input.scope);
|
|
@@ -33143,6 +33166,13 @@ class MethodImplementation {
|
|
|
33143
33166
|
return;
|
|
33144
33167
|
}
|
|
33145
33168
|
const { method: methodDefinition } = helper.searchMethodName(classDefinition, methodName);
|
|
33169
|
+
if (classDefinition.isForTesting()
|
|
33170
|
+
&& (methodDefinition === null || methodDefinition === void 0 ? void 0 : methodDefinition.getVisibility()) !== visibility_1.Visibility.Private
|
|
33171
|
+
&& ["SETUP", "TEARDOWN", "CLASS_SETUP", "CLASS_TEARDOWN"].includes(methodName.toUpperCase())) {
|
|
33172
|
+
const message = "Special test method \"" + methodName + "\" must be private";
|
|
33173
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
33174
|
+
return;
|
|
33175
|
+
}
|
|
33146
33176
|
const start = node.getFirstToken().getStart();
|
|
33147
33177
|
if ((methodDefinition === null || methodDefinition === void 0 ? void 0 : methodDefinition.isStatic()) === false) {
|
|
33148
33178
|
input.scope.push(_scope_type_1.ScopeType.MethodInstance, methodName, start, input.filename);
|
|
@@ -33983,6 +34013,11 @@ class ReadTable {
|
|
|
33983
34013
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
33984
34014
|
return;
|
|
33985
34015
|
}
|
|
34016
|
+
else if (sourceType instanceof basic_1.TableType && sourceType.getAccessType() === basic_1.TableAccessType.hashed) {
|
|
34017
|
+
const message = "INDEX on hashed table not possible";
|
|
34018
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
34019
|
+
return;
|
|
34020
|
+
}
|
|
33986
34021
|
}
|
|
33987
34022
|
const fromSource = node.findExpressionAfterToken("FROM");
|
|
33988
34023
|
if (fromSource) {
|
|
@@ -54736,7 +54771,7 @@ class Registry {
|
|
|
54736
54771
|
}
|
|
54737
54772
|
static abaplintVersion() {
|
|
54738
54773
|
// magic, see build script "version.sh"
|
|
54739
|
-
return "2.113.
|
|
54774
|
+
return "2.113.233";
|
|
54740
54775
|
}
|
|
54741
54776
|
getDDICReferences() {
|
|
54742
54777
|
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.233",
|
|
4
4
|
"description": "abaplint - Command Line Interface",
|
|
5
5
|
"funding": "https://github.com/sponsors/larshp",
|
|
6
6
|
"bin": {
|
|
@@ -38,16 +38,16 @@
|
|
|
38
38
|
},
|
|
39
39
|
"homepage": "https://abaplint.org",
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@abaplint/core": "^2.113.
|
|
41
|
+
"@abaplint/core": "^2.113.233",
|
|
42
42
|
"@types/chai": "^4.3.20",
|
|
43
43
|
"@types/minimist": "^1.2.5",
|
|
44
44
|
"@types/mocha": "^10.0.10",
|
|
45
|
-
"@types/node": "^24.
|
|
45
|
+
"@types/node": "^24.9.1",
|
|
46
46
|
"@types/progress": "^2.0.7",
|
|
47
47
|
"chai": "^4.5.0",
|
|
48
48
|
"p-limit": "^3.1.0",
|
|
49
49
|
"chalk": "^5.6.2",
|
|
50
|
-
"eslint": "^9.
|
|
50
|
+
"eslint": "^9.38.0",
|
|
51
51
|
"glob": "^11.0.3",
|
|
52
52
|
"json5": "^2.2.3",
|
|
53
53
|
"memfs": "^4.49.0",
|