@abaplint/core 2.102.34 → 2.102.36
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/src/abap/2_statements/statements/loop.js +2 -1
- package/build/src/abap/2_statements/statements/read_textpool.js +1 -1
- package/build/src/abap/5_syntax/_type_utils.js +3 -0
- package/build/src/abap/5_syntax/statements/read_textpool.js +1 -1
- package/build/src/objects/rename/renamer_helper.js +2 -1
- package/build/src/registry.js +1 -1
- package/build/src/rules/message_exists.js +1 -1
- package/package.json +4 -4
|
@@ -10,10 +10,11 @@ class Loop {
|
|
|
10
10
|
getMatcher() {
|
|
11
11
|
const where = (0, combi_1.seq)("WHERE", (0, combi_1.alt)(expressions_1.ComponentCond, expressions_1.Dynamic));
|
|
12
12
|
const group = (0, combi_1.ver)(version_1.Version.v740sp08, (0, combi_1.seq)("GROUP BY", loop_group_by_1.LoopGroupBy));
|
|
13
|
+
const step = (0, combi_1.ver)(version_1.Version.v757, (0, combi_1.seq)("STEP", expressions_1.Source));
|
|
13
14
|
const from = (0, combi_1.seq)("FROM", expressions_1.Source);
|
|
14
15
|
const to = (0, combi_1.seq)("TO", expressions_1.Source);
|
|
15
16
|
const usingKey = (0, combi_1.seq)("USING KEY", (0, combi_1.altPrio)(expressions_1.SimpleName, expressions_1.Dynamic));
|
|
16
|
-
const options = (0, combi_1.per)(expressions_1.LoopTarget, from, to, where, usingKey, group);
|
|
17
|
+
const options = (0, combi_1.per)(expressions_1.LoopTarget, from, to, where, usingKey, group, step);
|
|
17
18
|
const at = (0, combi_1.seq)("AT", (0, combi_1.opt)((0, combi_1.seq)("SCREEN", (0, combi_1.failCombinator)())), (0, combi_1.opt)((0, combi_1.ver)(version_1.Version.v740sp08, "GROUP")), (0, combi_1.alt)(simple_source2_1.SimpleSource2, (0, combi_1.ver)(version_1.Version.v740sp02, expressions_1.Source)), (0, combi_1.opt)(options));
|
|
18
19
|
return (0, combi_1.seq)("LOOP", (0, combi_1.opt)(at));
|
|
19
20
|
}
|
|
@@ -7,7 +7,7 @@ const version_1 = require("../../../version");
|
|
|
7
7
|
class ReadTextpool {
|
|
8
8
|
getMatcher() {
|
|
9
9
|
const language = (0, combi_1.seq)("LANGUAGE", expressions_1.Source);
|
|
10
|
-
const into = (0, combi_1.seq)("INTO", expressions_1.
|
|
10
|
+
const into = (0, combi_1.seq)("INTO", expressions_1.SimpleTarget);
|
|
11
11
|
const state = (0, combi_1.seq)("STATE", expressions_1.Source);
|
|
12
12
|
const ret = (0, combi_1.seq)("READ TEXTPOOL", expressions_1.Source, (0, combi_1.per)(into, language, state));
|
|
13
13
|
return (0, combi_1.verNot)(version_1.Version.Cloud, ret);
|
|
@@ -420,6 +420,9 @@ class TypeUtils {
|
|
|
420
420
|
else if (target.containsVoid() === true) {
|
|
421
421
|
return true;
|
|
422
422
|
}
|
|
423
|
+
else if (source instanceof basic_1.StringType && this.structureContainsString(target)) {
|
|
424
|
+
return false;
|
|
425
|
+
}
|
|
423
426
|
else if (source instanceof basic_1.IntegerType) {
|
|
424
427
|
return false;
|
|
425
428
|
}
|
|
@@ -9,7 +9,7 @@ class ReadTextpool {
|
|
|
9
9
|
for (const s of node.findDirectExpressions(Expressions.Source)) {
|
|
10
10
|
new source_1.Source().runSyntax(s, scope, filename);
|
|
11
11
|
}
|
|
12
|
-
for (const t of node.findDirectExpressions(Expressions.
|
|
12
|
+
for (const t of node.findDirectExpressions(Expressions.SimpleTarget)) {
|
|
13
13
|
new target_1.Target().runSyntax(t, scope, filename);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
@@ -124,9 +124,10 @@ class RenamerHelper {
|
|
|
124
124
|
renameFiles(obj, oldName, name) {
|
|
125
125
|
const list = [];
|
|
126
126
|
const newName = name.toLowerCase().replace(/\//g, "#");
|
|
127
|
+
oldName = oldName.toLowerCase().replace(/\//g, "#");
|
|
127
128
|
for (const f of obj.getFiles()) {
|
|
128
129
|
// todo, this is not completely correct, ie. if the URI contains the same directory name as the object name
|
|
129
|
-
const newFilename = f.getFilename().replace(oldName
|
|
130
|
+
const newFilename = f.getFilename().replace(oldName, newName);
|
|
130
131
|
list.push(vscode_languageserver_types_1.RenameFile.create(f.getFilename(), newFilename));
|
|
131
132
|
}
|
|
132
133
|
return list;
|
package/build/src/registry.js
CHANGED
|
@@ -98,7 +98,7 @@ class MessageExistsRule {
|
|
|
98
98
|
const msag = this.reg.getObject("MSAG", ref.messageClass);
|
|
99
99
|
if (msag === undefined) {
|
|
100
100
|
if (new ddic_1.DDIC(this.reg).inErrorNamespace(ref.messageClass) === true) {
|
|
101
|
-
const message = "Message class \"" + ref.
|
|
101
|
+
const message = "Message class \"" + ref.messageClass + "\" not found";
|
|
102
102
|
issues.push(issue_1.Issue.atToken(file, ref.token, message, this.getMetadata().key, this.conf.severity));
|
|
103
103
|
}
|
|
104
104
|
continue;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/core",
|
|
3
|
-
"version": "2.102.
|
|
3
|
+
"version": "2.102.36",
|
|
4
4
|
"description": "abaplint - Core API",
|
|
5
5
|
"main": "build/src/index.js",
|
|
6
6
|
"typings": "build/abaplint.d.ts",
|
|
@@ -51,11 +51,11 @@
|
|
|
51
51
|
"homepage": "https://abaplint.org",
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@microsoft/api-extractor": "^7.36.4",
|
|
54
|
-
"@types/chai": "^4.3.
|
|
54
|
+
"@types/chai": "^4.3.6",
|
|
55
55
|
"@types/mocha": "^10.0.1",
|
|
56
|
-
"@types/node": "^20.
|
|
56
|
+
"@types/node": "^20.6.0",
|
|
57
57
|
"chai": "^4.3.8",
|
|
58
|
-
"eslint": "^8.
|
|
58
|
+
"eslint": "^8.49.0",
|
|
59
59
|
"mocha": "^10.2.0",
|
|
60
60
|
"c8": "^8.0.1",
|
|
61
61
|
"source-map-support": "^0.5.21",
|