@abaplint/cli 2.113.232 → 2.113.234
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 +53 -6
- package/package.json +4 -4
package/build/cli.js
CHANGED
|
@@ -23979,9 +23979,30 @@ class TypeUtils {
|
|
|
23979
23979
|
return true;
|
|
23980
23980
|
}
|
|
23981
23981
|
else if (source instanceof basic_1.StructureType) {
|
|
23982
|
-
|
|
23982
|
+
const targetDeep = this.structureContainsString(target);
|
|
23983
|
+
const sourceDeep = this.structureContainsString(source);
|
|
23984
|
+
if (targetDeep && !sourceDeep) {
|
|
23983
23985
|
return false;
|
|
23984
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
|
+
}
|
|
23985
24006
|
return true;
|
|
23986
24007
|
}
|
|
23987
24008
|
else if (target.containsVoid() === true) {
|
|
@@ -25977,7 +25998,7 @@ class FieldAssignment {
|
|
|
25977
25998
|
const text = c.concatTokens();
|
|
25978
25999
|
if (text !== "-" && context instanceof basic_1.StructureType) {
|
|
25979
26000
|
context = context.getComponentByName(text);
|
|
25980
|
-
if (context === undefined
|
|
26001
|
+
if (context === undefined) {
|
|
25981
26002
|
const message = `field ${text} does not exist in structure`;
|
|
25982
26003
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
25983
26004
|
return;
|
|
@@ -26498,11 +26519,19 @@ class InlineData {
|
|
|
26498
26519
|
if (type instanceof basic_1.CSequenceType || type instanceof basic_1.CLikeType) {
|
|
26499
26520
|
type = basic_1.StringType.get();
|
|
26500
26521
|
}
|
|
26522
|
+
else if (type instanceof basic_1.XSequenceType) {
|
|
26523
|
+
type = basic_1.StringType.get();
|
|
26524
|
+
}
|
|
26501
26525
|
else if (type instanceof basic_1.CGenericType) {
|
|
26502
26526
|
const message = "InlineData, generic type C cannot be used for inferred type";
|
|
26503
26527
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
26504
26528
|
return;
|
|
26505
26529
|
}
|
|
26530
|
+
if (type.isGeneric()) {
|
|
26531
|
+
const message = "DATA definition cannot be generic, " + type.constructor.name;
|
|
26532
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
26533
|
+
type = basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
|
|
26534
|
+
}
|
|
26506
26535
|
const identifier = new _typed_identifier_1.TypedIdentifier(token, input.filename, type, ["inline" /* IdentifierMeta.InlineDefinition */]);
|
|
26507
26536
|
input.scope.addIdentifier(identifier);
|
|
26508
26537
|
input.scope.addReference(token, identifier, _reference_1.ReferenceType.DataWriteReference, input.filename);
|
|
@@ -28438,15 +28467,20 @@ class Source {
|
|
|
28438
28467
|
const s = Source.runSyntax(node.findDirectExpression(Expressions.Source), input);
|
|
28439
28468
|
/*
|
|
28440
28469
|
console.dir(node.concatTokens());
|
|
28441
|
-
console.dir(targetType);
|
|
28442
|
-
console.dir(foundType);
|
|
28443
28470
|
console.dir(s);
|
|
28471
|
+
console.dir(foundType);
|
|
28472
|
+
console.dir(targetType);
|
|
28444
28473
|
*/
|
|
28445
28474
|
if (foundType && foundType.isGeneric() && s) {
|
|
28446
28475
|
foundType = new basic_1.DataReference(s);
|
|
28447
28476
|
}
|
|
28448
28477
|
else if (foundType === undefined && s) {
|
|
28449
|
-
|
|
28478
|
+
if (s instanceof basic_1.AnyType) {
|
|
28479
|
+
foundType = new basic_1.DataReference(basic_1.VoidType.get("REF-ANY"));
|
|
28480
|
+
}
|
|
28481
|
+
else {
|
|
28482
|
+
foundType = new basic_1.DataReference(s);
|
|
28483
|
+
}
|
|
28450
28484
|
}
|
|
28451
28485
|
else if (foundType && targetType === undefined) {
|
|
28452
28486
|
foundType = new basic_1.DataReference(foundType);
|
|
@@ -33131,6 +33165,7 @@ const _object_oriented_1 = __webpack_require__(/*! ../_object_oriented */ "./nod
|
|
|
33131
33165
|
const _scope_type_1 = __webpack_require__(/*! ../_scope_type */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_scope_type.js");
|
|
33132
33166
|
const _reference_1 = __webpack_require__(/*! ../_reference */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_reference.js");
|
|
33133
33167
|
const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_syntax_input.js");
|
|
33168
|
+
const visibility_1 = __webpack_require__(/*! ../../4_file_information/visibility */ "./node_modules/@abaplint/core/build/src/abap/4_file_information/visibility.js");
|
|
33134
33169
|
class MethodImplementation {
|
|
33135
33170
|
runSyntax(node, input) {
|
|
33136
33171
|
const helper = new _object_oriented_1.ObjectOriented(input.scope);
|
|
@@ -33144,6 +33179,13 @@ class MethodImplementation {
|
|
|
33144
33179
|
return;
|
|
33145
33180
|
}
|
|
33146
33181
|
const { method: methodDefinition } = helper.searchMethodName(classDefinition, methodName);
|
|
33182
|
+
if (classDefinition.isForTesting()
|
|
33183
|
+
&& (methodDefinition === null || methodDefinition === void 0 ? void 0 : methodDefinition.getVisibility()) !== visibility_1.Visibility.Private
|
|
33184
|
+
&& ["SETUP", "TEARDOWN", "CLASS_SETUP", "CLASS_TEARDOWN"].includes(methodName.toUpperCase())) {
|
|
33185
|
+
const message = "Special test method \"" + methodName + "\" must be private";
|
|
33186
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
33187
|
+
return;
|
|
33188
|
+
}
|
|
33147
33189
|
const start = node.getFirstToken().getStart();
|
|
33148
33190
|
if ((methodDefinition === null || methodDefinition === void 0 ? void 0 : methodDefinition.isStatic()) === false) {
|
|
33149
33191
|
input.scope.push(_scope_type_1.ScopeType.MethodInstance, methodName, start, input.filename);
|
|
@@ -33984,6 +34026,11 @@ class ReadTable {
|
|
|
33984
34026
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
33985
34027
|
return;
|
|
33986
34028
|
}
|
|
34029
|
+
else if (sourceType instanceof basic_1.TableType && sourceType.getAccessType() === basic_1.TableAccessType.hashed) {
|
|
34030
|
+
const message = "INDEX on hashed table not possible";
|
|
34031
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
34032
|
+
return;
|
|
34033
|
+
}
|
|
33987
34034
|
}
|
|
33988
34035
|
const fromSource = node.findExpressionAfterToken("FROM");
|
|
33989
34036
|
if (fromSource) {
|
|
@@ -54737,7 +54784,7 @@ class Registry {
|
|
|
54737
54784
|
}
|
|
54738
54785
|
static abaplintVersion() {
|
|
54739
54786
|
// magic, see build script "version.sh"
|
|
54740
|
-
return "2.113.
|
|
54787
|
+
return "2.113.234";
|
|
54741
54788
|
}
|
|
54742
54789
|
getDDICReferences() {
|
|
54743
54790
|
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.234",
|
|
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.234",
|
|
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",
|