@abaplint/cli 2.113.51 → 2.113.52
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 +35 -19
- package/package.json +2 -2
package/build/cli.js
CHANGED
|
@@ -16218,7 +16218,7 @@ class SelectionScreen {
|
|
|
16218
16218
|
const posIntegers = (0, combi_1.regex)(/^(0?[1-9]|[1234567][0-9]|8[0-3])$/);
|
|
16219
16219
|
const pos = (0, combi_1.seq)("POSITION", (0, combi_1.altPrio)(posIntegers, posSymbols));
|
|
16220
16220
|
const incl = (0, combi_1.seq)("INCLUDE BLOCKS", expressions_1.BlockName);
|
|
16221
|
-
const tabbed = (0, combi_1.seq)("BEGIN OF TABBED BLOCK", expressions_1.
|
|
16221
|
+
const tabbed = (0, combi_1.seq)("BEGIN OF TABBED BLOCK", expressions_1.BlockName, "FOR", expressions_1.Integer, "LINES", (0, combi_1.optPrio)("NO INTERVALS"));
|
|
16222
16222
|
const uline = (0, combi_1.seq)("ULINE", (0, combi_1.opt)(position));
|
|
16223
16223
|
const param = (0, combi_1.seq)("INCLUDE PARAMETERS", expressions_1.Field);
|
|
16224
16224
|
const iso = (0, combi_1.seq)("INCLUDE SELECT-OPTIONS", expressions_1.Field);
|
|
@@ -21989,7 +21989,7 @@ class ObjectOriented {
|
|
|
21989
21989
|
return undefined;
|
|
21990
21990
|
}
|
|
21991
21991
|
findMethodViaAlias(methodName, def) {
|
|
21992
|
-
for (const a of def.getAliases()) {
|
|
21992
|
+
for (const a of def.getAliases() || []) {
|
|
21993
21993
|
if (a.getName().toUpperCase() === methodName.toUpperCase()) {
|
|
21994
21994
|
const comp = a.getComponent();
|
|
21995
21995
|
const res = this.findMethodInInterface(comp.split("~")[0], comp.split("~")[1]);
|
|
@@ -22072,9 +22072,12 @@ class ObjectOriented {
|
|
|
22072
22072
|
return undefined;
|
|
22073
22073
|
}
|
|
22074
22074
|
const upper = name.toUpperCase();
|
|
22075
|
-
|
|
22076
|
-
|
|
22077
|
-
|
|
22075
|
+
const attr = def.getAttributes();
|
|
22076
|
+
if (attr) {
|
|
22077
|
+
for (const a of attr.getAll()) {
|
|
22078
|
+
if (a.getName().toUpperCase() === upper) {
|
|
22079
|
+
return a;
|
|
22080
|
+
}
|
|
22078
22081
|
}
|
|
22079
22082
|
}
|
|
22080
22083
|
for (const a of def.getAliases() || []) {
|
|
@@ -22188,7 +22191,11 @@ class ObjectOriented {
|
|
|
22188
22191
|
return { method: undefined, def: undefined };
|
|
22189
22192
|
}
|
|
22190
22193
|
findMethod(def, methodName) {
|
|
22191
|
-
|
|
22194
|
+
const defs = def.getMethodDefinitions();
|
|
22195
|
+
if (defs === undefined) {
|
|
22196
|
+
return undefined;
|
|
22197
|
+
}
|
|
22198
|
+
for (const method of defs.getAll()) {
|
|
22192
22199
|
if (method.getName().toUpperCase() === methodName.toUpperCase()) {
|
|
22193
22200
|
if (method.isRedefinition()) {
|
|
22194
22201
|
return this.findMethodInSuper(def, methodName);
|
|
@@ -27299,7 +27306,7 @@ class Source {
|
|
|
27299
27306
|
const foundType = this.determineType(node, input, targetType);
|
|
27300
27307
|
const bodyType = new conv_body_1.ConvBody().runSyntax(node.findDirectExpression(Expressions.ConvBody), input);
|
|
27301
27308
|
if (new _type_utils_1.TypeUtils(input.scope).isAssignable(foundType, bodyType) === false) {
|
|
27302
|
-
const message =
|
|
27309
|
+
const message = `CONV: Types not compatible, ${foundType === null || foundType === void 0 ? void 0 : foundType.constructor.name}, ${bodyType === null || bodyType === void 0 ? void 0 : bodyType.constructor.name}`;
|
|
27303
27310
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
27304
27311
|
return new basic_1.VoidType(_syntax_input_1.CheckSyntaxKey);
|
|
27305
27312
|
}
|
|
@@ -32862,30 +32869,35 @@ const basic_1 = __webpack_require__(/*! ../../types/basic */ "./node_modules/@ab
|
|
|
32862
32869
|
const _syntax_input_1 = __webpack_require__(/*! ../_syntax_input */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_syntax_input.js");
|
|
32863
32870
|
class SelectionScreen {
|
|
32864
32871
|
runSyntax(node, input) {
|
|
32865
|
-
const
|
|
32866
|
-
|
|
32872
|
+
const blockNode = node.findFirstExpression(Expressions.BlockName);
|
|
32873
|
+
const blockToken = blockNode === null || blockNode === void 0 ? void 0 : blockNode.getFirstToken();
|
|
32874
|
+
const blockName = blockNode === null || blockNode === void 0 ? void 0 : blockNode.concatTokens();
|
|
32875
|
+
if (blockName !== undefined && blockName.length > 16) {
|
|
32876
|
+
const message = "SELECTION-SCREEN block name too long, " + blockName;
|
|
32877
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
|
|
32867
32878
|
return;
|
|
32868
32879
|
}
|
|
32869
|
-
|
|
32880
|
+
const field = node.findFirstExpression(Expressions.InlineField);
|
|
32881
|
+
if (field !== undefined && field.getFirstToken().getStr().length > 8) {
|
|
32870
32882
|
const message = "SELECTION-SCREEN name too long, " + field.getFirstToken().getStr();
|
|
32871
32883
|
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, field.getFirstToken(), message));
|
|
32872
32884
|
return;
|
|
32873
32885
|
}
|
|
32874
|
-
const
|
|
32886
|
+
const fieldName = field === null || field === void 0 ? void 0 : field.getFirstToken();
|
|
32875
32887
|
const concat = node.concatTokens().toUpperCase();
|
|
32876
|
-
if (concat.includes("BEGIN OF TABBED BLOCK")) {
|
|
32888
|
+
if (concat.includes("BEGIN OF TABBED BLOCK") && blockToken) {
|
|
32877
32889
|
const type = new basic_1.StructureType([
|
|
32878
32890
|
{ name: "PROG", type: new basic_1.CharacterType(40) },
|
|
32879
32891
|
{ name: "DYNNR", type: new basic_1.CharacterType(4) },
|
|
32880
32892
|
{ name: "ACTIVETAB", type: new basic_1.CharacterType(132) },
|
|
32881
32893
|
]);
|
|
32882
|
-
input.scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(
|
|
32894
|
+
input.scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(blockToken, input.filename, type, ["selection_screen_tab" /* IdentifierMeta.SelectionScreenTab */]));
|
|
32883
32895
|
}
|
|
32884
|
-
else if (concat.startsWith("SELECTION-SCREEN TAB")) {
|
|
32885
|
-
input.scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(
|
|
32896
|
+
else if (concat.startsWith("SELECTION-SCREEN TAB") && fieldName) {
|
|
32897
|
+
input.scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(fieldName, input.filename, new basic_1.CharacterType(83), ["selection_screen_tab" /* IdentifierMeta.SelectionScreenTab */]));
|
|
32886
32898
|
}
|
|
32887
|
-
else {
|
|
32888
|
-
input.scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(
|
|
32899
|
+
else if (fieldName) {
|
|
32900
|
+
input.scope.addIdentifier(new _typed_identifier_1.TypedIdentifier(fieldName, input.filename, new basic_1.CharacterType(83)));
|
|
32889
32901
|
}
|
|
32890
32902
|
}
|
|
32891
32903
|
}
|
|
@@ -53114,7 +53126,7 @@ class Registry {
|
|
|
53114
53126
|
}
|
|
53115
53127
|
static abaplintVersion() {
|
|
53116
53128
|
// magic, see build script "version.sh"
|
|
53117
|
-
return "2.113.
|
|
53129
|
+
return "2.113.52";
|
|
53118
53130
|
}
|
|
53119
53131
|
getDDICReferences() {
|
|
53120
53132
|
return this.ddicReferences;
|
|
@@ -71471,7 +71483,11 @@ class SelectionScreenNaming extends _abap_rule_1.ABAPRule {
|
|
|
71471
71483
|
return statNode.findFirstExpression(expressions_1.FieldSub);
|
|
71472
71484
|
}
|
|
71473
71485
|
else if (statNode.get() instanceof statements_1.SelectionScreen) {
|
|
71474
|
-
|
|
71486
|
+
let ret = statNode.findFirstExpression(expressions_1.InlineField);
|
|
71487
|
+
if (ret === undefined && statNode.concatTokens().toUpperCase().includes(" BEGIN OF TABBED BLOCK")) {
|
|
71488
|
+
ret = statNode.findFirstExpression(expressions_1.BlockName);
|
|
71489
|
+
}
|
|
71490
|
+
return ret;
|
|
71475
71491
|
}
|
|
71476
71492
|
else {
|
|
71477
71493
|
return undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/cli",
|
|
3
|
-
"version": "2.113.
|
|
3
|
+
"version": "2.113.52",
|
|
4
4
|
"description": "abaplint - Command Line Interface",
|
|
5
5
|
"funding": "https://github.com/sponsors/larshp",
|
|
6
6
|
"bin": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"homepage": "https://abaplint.org",
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@abaplint/core": "^2.113.
|
|
41
|
+
"@abaplint/core": "^2.113.52",
|
|
42
42
|
"@types/chai": "^4.3.20",
|
|
43
43
|
"@types/glob": "^8.1.0",
|
|
44
44
|
"@types/minimist": "^1.2.5",
|