@abaplint/cli 2.113.111 → 2.113.112
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 +55 -39
- package/package.json +2 -2
package/build/cli.js
CHANGED
|
@@ -53,7 +53,7 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
53
53
|
exports.CompressedFile = void 0;
|
|
54
54
|
const core_1 = __webpack_require__(/*! @abaplint/core */ "./node_modules/@abaplint/core/build/src/index.js");
|
|
55
55
|
const zlib = __webpack_require__(/*! zlib */ "zlib");
|
|
56
|
-
class CompressedFile extends core_1.AbstractFile {
|
|
56
|
+
class CompressedFile extends core_1.Files.AbstractFile {
|
|
57
57
|
constructor(filename, compressed) {
|
|
58
58
|
super(filename);
|
|
59
59
|
this.compressed = compressed;
|
|
@@ -120,7 +120,7 @@ class FileOperations {
|
|
|
120
120
|
files.push(new compressed_file_1.CompressedFile(filename, zlib.deflateSync(raw).toString("base64")));
|
|
121
121
|
}
|
|
122
122
|
else {
|
|
123
|
-
files.push(new core_1.MemoryFile(filename, raw));
|
|
123
|
+
files.push(new core_1.Files.MemoryFile(filename, raw));
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
126
|
return files;
|
|
@@ -269,7 +269,7 @@ class ApplyFixes {
|
|
|
269
269
|
}
|
|
270
270
|
}
|
|
271
271
|
*/
|
|
272
|
-
const changed =
|
|
272
|
+
const changed = core_1.Edits.applyEditList(reg, edits);
|
|
273
273
|
for (const filename of changed) {
|
|
274
274
|
this.changedFiles.add(filename);
|
|
275
275
|
}
|
|
@@ -1038,7 +1038,7 @@ async function run(arg) {
|
|
|
1038
1038
|
}
|
|
1039
1039
|
}
|
|
1040
1040
|
catch (error) {
|
|
1041
|
-
const file = new core_1.MemoryFile("generic", "dummy");
|
|
1041
|
+
const file = new core_1.Files.MemoryFile("generic", "dummy");
|
|
1042
1042
|
const message = error.toString() + " " + ((_b = (_a = error.stack) === null || _a === void 0 ? void 0 : _a.split("\n")[1]) === null || _b === void 0 ? void 0 : _b.trim());
|
|
1043
1043
|
const issue = core_1.Issue.atPosition(file, new core_1.Position(1, 1), message, exports.GENERIC_ERROR);
|
|
1044
1044
|
issues = [issue];
|
|
@@ -43065,8 +43065,8 @@ exports.MemoryFile = MemoryFile;
|
|
|
43065
43065
|
"use strict";
|
|
43066
43066
|
|
|
43067
43067
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
43068
|
-
exports.
|
|
43069
|
-
exports.LSPEdit = exports.RuleTag = exports.Severity = exports.Visibility =
|
|
43068
|
+
exports.Info = exports.Diagnostics = exports.Rename = exports.PrettyPrinter = exports.Position = exports.CurrentScope = exports.RulesRunner = exports.SpaghettiScope = exports.SyntaxLogic = exports.ABAPObject = exports.Tokens = exports.ExpressionsCDS = exports.CDSParser = exports.LanguageServerTypes = exports.DDLParser = exports.Files = exports.Edits = exports.ReferenceType = exports.NativeSQL = exports.MacroContent = exports.MacroCall = exports.SpaghettiScopeNode = exports.Token = exports.ScopeType = exports.BasicTypes = exports.TypedIdentifier = exports.AbstractType = exports.VirtualPosition = exports.Comment = exports.Unknown = exports.Empty = exports.Identifier = exports.Nodes = exports.Types = exports.Expressions = exports.Statements = exports.Structures = exports.SkipLogic = exports.Objects = exports.ArtifactsRules = exports.ArtifactsObjects = exports.ArtifactsABAP = exports.BuiltIn = exports.MethodLengthStats = exports.LanguageServer = exports.Registry = exports.CyclomaticComplexityStats = exports.Version = exports.Config = exports.Issue = void 0;
|
|
43069
|
+
exports.LSPEdit = exports.RuleTag = exports.Severity = exports.Visibility = void 0;
|
|
43070
43070
|
const issue_1 = __webpack_require__(/*! ./issue */ "./node_modules/@abaplint/core/build/src/issue.js");
|
|
43071
43071
|
Object.defineProperty(exports, "Issue", ({ enumerable: true, get: function () { return issue_1.Issue; } }));
|
|
43072
43072
|
const config_1 = __webpack_require__(/*! ./config */ "./node_modules/@abaplint/core/build/src/config.js");
|
|
@@ -43127,7 +43127,6 @@ Object.defineProperty(exports, "Position", ({ enumerable: true, get: function ()
|
|
|
43127
43127
|
const virtual_position_1 = __webpack_require__(/*! ./virtual_position */ "./node_modules/@abaplint/core/build/src/virtual_position.js");
|
|
43128
43128
|
Object.defineProperty(exports, "VirtualPosition", ({ enumerable: true, get: function () { return virtual_position_1.VirtualPosition; } }));
|
|
43129
43129
|
const _abstract_file_1 = __webpack_require__(/*! ./files/_abstract_file */ "./node_modules/@abaplint/core/build/src/files/_abstract_file.js");
|
|
43130
|
-
Object.defineProperty(exports, "AbstractFile", ({ enumerable: true, get: function () { return _abstract_file_1.AbstractFile; } }));
|
|
43131
43130
|
const pretty_printer_1 = __webpack_require__(/*! ./pretty_printer/pretty_printer */ "./node_modules/@abaplint/core/build/src/pretty_printer/pretty_printer.js");
|
|
43132
43131
|
Object.defineProperty(exports, "PrettyPrinter", ({ enumerable: true, get: function () { return pretty_printer_1.PrettyPrinter; } }));
|
|
43133
43132
|
const _statement_1 = __webpack_require__(/*! ./abap/2_statements/statements/_statement */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/_statement.js");
|
|
@@ -43138,14 +43137,10 @@ Object.defineProperty(exports, "MacroCall", ({ enumerable: true, get: function (
|
|
|
43138
43137
|
Object.defineProperty(exports, "MacroContent", ({ enumerable: true, get: function () { return _statement_1.MacroContent; } }));
|
|
43139
43138
|
Object.defineProperty(exports, "NativeSQL", ({ enumerable: true, get: function () { return _statement_1.NativeSQL; } }));
|
|
43140
43139
|
const edit_helper_1 = __webpack_require__(/*! ./edit_helper */ "./node_modules/@abaplint/core/build/src/edit_helper.js");
|
|
43141
|
-
Object.defineProperty(exports, "applyEditSingle", ({ enumerable: true, get: function () { return edit_helper_1.applyEditSingle; } }));
|
|
43142
|
-
Object.defineProperty(exports, "applyEditList", ({ enumerable: true, get: function () { return edit_helper_1.applyEditList; } }));
|
|
43143
43140
|
const _builtin_1 = __webpack_require__(/*! ./abap/5_syntax/_builtin */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_builtin.js");
|
|
43144
43141
|
Object.defineProperty(exports, "BuiltIn", ({ enumerable: true, get: function () { return _builtin_1.BuiltIn; } }));
|
|
43145
43142
|
const abap_file_1 = __webpack_require__(/*! ./abap/abap_file */ "./node_modules/@abaplint/core/build/src/abap/abap_file.js");
|
|
43146
|
-
Object.defineProperty(exports, "ABAPFile", ({ enumerable: true, get: function () { return abap_file_1.ABAPFile; } }));
|
|
43147
43143
|
const memory_file_1 = __webpack_require__(/*! ./files/memory_file */ "./node_modules/@abaplint/core/build/src/files/memory_file.js");
|
|
43148
|
-
Object.defineProperty(exports, "MemoryFile", ({ enumerable: true, get: function () { return memory_file_1.MemoryFile; } }));
|
|
43149
43144
|
const renamer_1 = __webpack_require__(/*! ./objects/rename/renamer */ "./node_modules/@abaplint/core/build/src/objects/rename/renamer.js");
|
|
43150
43145
|
Object.defineProperty(exports, "Rename", ({ enumerable: true, get: function () { return renamer_1.Renamer; } }));
|
|
43151
43146
|
const Info = __webpack_require__(/*! ./abap/4_file_information/_abap_file_information */ "./node_modules/@abaplint/core/build/src/abap/4_file_information/_abap_file_information.js");
|
|
@@ -43172,6 +43167,21 @@ const diagnostics_1 = __webpack_require__(/*! ./lsp/diagnostics */ "./node_modul
|
|
|
43172
43167
|
Object.defineProperty(exports, "Diagnostics", ({ enumerable: true, get: function () { return diagnostics_1.Diagnostics; } }));
|
|
43173
43168
|
const _edit_1 = __webpack_require__(/*! ./lsp/_edit */ "./node_modules/@abaplint/core/build/src/lsp/_edit.js");
|
|
43174
43169
|
Object.defineProperty(exports, "LSPEdit", ({ enumerable: true, get: function () { return _edit_1.LSPEdit; } }));
|
|
43170
|
+
const _reference_1 = __webpack_require__(/*! ./abap/5_syntax/_reference */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_reference.js");
|
|
43171
|
+
Object.defineProperty(exports, "ReferenceType", ({ enumerable: true, get: function () { return _reference_1.ReferenceType; } }));
|
|
43172
|
+
// do not include this file from anywhere within abaplint
|
|
43173
|
+
// https://github.com/abaplint/abaplint/issues/873
|
|
43174
|
+
const Edits = {
|
|
43175
|
+
applyEditSingle: edit_helper_1.applyEditSingle,
|
|
43176
|
+
applyEditList: edit_helper_1.applyEditList,
|
|
43177
|
+
};
|
|
43178
|
+
exports.Edits = Edits;
|
|
43179
|
+
const Files = {
|
|
43180
|
+
MemoryFile: memory_file_1.MemoryFile,
|
|
43181
|
+
ABAPFile: abap_file_1.ABAPFile,
|
|
43182
|
+
AbstractFile: _abstract_file_1.AbstractFile,
|
|
43183
|
+
};
|
|
43184
|
+
exports.Files = Files;
|
|
43175
43185
|
//# sourceMappingURL=index.js.map
|
|
43176
43186
|
|
|
43177
43187
|
/***/ }),
|
|
@@ -53918,7 +53928,7 @@ class Registry {
|
|
|
53918
53928
|
}
|
|
53919
53929
|
static abaplintVersion() {
|
|
53920
53930
|
// magic, see build script "version.sh"
|
|
53921
|
-
return "2.113.
|
|
53931
|
+
return "2.113.112";
|
|
53922
53932
|
}
|
|
53923
53933
|
getDDICReferences() {
|
|
53924
53934
|
return this.ddicReferences;
|
|
@@ -54677,7 +54687,7 @@ const _abap_rule_1 = __webpack_require__(/*! ./_abap_rule */ "./node_modules/@ab
|
|
|
54677
54687
|
const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js");
|
|
54678
54688
|
const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
|
|
54679
54689
|
const position_1 = __webpack_require__(/*! ../position */ "./node_modules/@abaplint/core/build/src/position.js");
|
|
54680
|
-
const
|
|
54690
|
+
const Statements = __webpack_require__(/*! ../abap/2_statements/statements */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/index.js");
|
|
54681
54691
|
const edit_helper_1 = __webpack_require__(/*! ../edit_helper */ "./node_modules/@abaplint/core/build/src/edit_helper.js");
|
|
54682
54692
|
class AlignParametersConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
54683
54693
|
}
|
|
@@ -54885,9 +54895,9 @@ DATA(sdf) = VALUE type(
|
|
|
54885
54895
|
}
|
|
54886
54896
|
raiseAndCreateCandidates(stru) {
|
|
54887
54897
|
const candidates = [];
|
|
54888
|
-
const statements = stru.findAllStatements(
|
|
54889
|
-
statements.push(...stru.findAllStatements(
|
|
54890
|
-
statements.push(...stru.findAllStatements(
|
|
54898
|
+
const statements = stru.findAllStatements(Statements.Raise);
|
|
54899
|
+
statements.push(...stru.findAllStatements(Statements.CreateObject));
|
|
54900
|
+
statements.push(...stru.findAllStatements(Statements.RaiseEvent));
|
|
54891
54901
|
for (const raise of statements) {
|
|
54892
54902
|
const parameters = [];
|
|
54893
54903
|
const param = raise.findDirectExpression(Expressions.ParameterListS);
|
|
@@ -57825,7 +57835,8 @@ exports.ConstantClasses = exports.ConstantClassesConf = void 0;
|
|
|
57825
57835
|
const issue_1 = __webpack_require__(/*! ../issue */ "./node_modules/@abaplint/core/build/src/issue.js");
|
|
57826
57836
|
const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js");
|
|
57827
57837
|
const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
|
|
57828
|
-
const
|
|
57838
|
+
const Objects = __webpack_require__(/*! ../objects */ "./node_modules/@abaplint/core/build/src/objects/index.js");
|
|
57839
|
+
const visibility_1 = __webpack_require__(/*! ../abap/4_file_information/visibility */ "./node_modules/@abaplint/core/build/src/abap/4_file_information/visibility.js");
|
|
57829
57840
|
/** Checks that constants classes are in sync with domain fixed values */
|
|
57830
57841
|
class ConstantClassesConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
57831
57842
|
constructor() {
|
|
@@ -57861,7 +57872,7 @@ class ConstantClasses {
|
|
|
57861
57872
|
run(obj) {
|
|
57862
57873
|
if (this.conf
|
|
57863
57874
|
&& this.conf.mapping
|
|
57864
|
-
&& obj instanceof
|
|
57875
|
+
&& obj instanceof Objects.Domain) {
|
|
57865
57876
|
const configEntry = this.conf.mapping.find(x => x.domain.toUpperCase() === obj.getName().toUpperCase());
|
|
57866
57877
|
if (!configEntry) {
|
|
57867
57878
|
return [];
|
|
@@ -57905,7 +57916,7 @@ class ConstantClasses {
|
|
|
57905
57916
|
issues.push(this.issueAtConstant(constant, `Use exact type ${configEntry.domain} instead of ${constant.typeName}`));
|
|
57906
57917
|
// quickfix will change the type
|
|
57907
57918
|
}
|
|
57908
|
-
if (constant.visibility !==
|
|
57919
|
+
if (constant.visibility !== visibility_1.Visibility.Public) {
|
|
57909
57920
|
issues.push(this.issueAtConstant(constant, `Constant ${constant.name} should be public`));
|
|
57910
57921
|
// quickfix will move constant
|
|
57911
57922
|
}
|
|
@@ -63441,8 +63452,8 @@ exports.FullyTypeITabs = FullyTypeITabs;
|
|
|
63441
63452
|
|
|
63442
63453
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
63443
63454
|
exports.FunctionModuleRecommendations = exports.FunctionModuleRecommendationsConf = void 0;
|
|
63444
|
-
const __1 = __webpack_require__(/*! .. */ "./node_modules/@abaplint/core/build/src/index.js");
|
|
63445
63455
|
const expressions_1 = __webpack_require__(/*! ../abap/2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
|
|
63456
|
+
const issue_1 = __webpack_require__(/*! ../issue */ "./node_modules/@abaplint/core/build/src/issue.js");
|
|
63446
63457
|
const _abap_rule_1 = __webpack_require__(/*! ./_abap_rule */ "./node_modules/@abaplint/core/build/src/rules/_abap_rule.js");
|
|
63447
63458
|
const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js");
|
|
63448
63459
|
const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
|
|
@@ -63525,7 +63536,7 @@ class FunctionModuleRecommendations extends _abap_rule_1.ABAPRule {
|
|
|
63525
63536
|
funcName = funcName.slice(1, funcName.length - 1);
|
|
63526
63537
|
const index = this.conf.recommendations.findIndex(i => i.name.toUpperCase() === funcName && (i.from === undefined || configVersion >= i.from));
|
|
63527
63538
|
if (index >= 0) {
|
|
63528
|
-
issues.push(
|
|
63539
|
+
issues.push(issue_1.Issue.atToken(file, token, this.getMessage(index), this.getMetadata().key, this.conf.severity));
|
|
63529
63540
|
}
|
|
63530
63541
|
}
|
|
63531
63542
|
return issues;
|
|
@@ -67480,8 +67491,8 @@ exports.MethodLength = MethodLength;
|
|
|
67480
67491
|
|
|
67481
67492
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
67482
67493
|
exports.MethodOverwritesBuiltIn = exports.MethodOverwritesBuiltInConf = void 0;
|
|
67483
|
-
const __1 = __webpack_require__(/*! .. */ "./node_modules/@abaplint/core/build/src/index.js");
|
|
67484
67494
|
const _builtin_1 = __webpack_require__(/*! ../abap/5_syntax/_builtin */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_builtin.js");
|
|
67495
|
+
const issue_1 = __webpack_require__(/*! ../issue */ "./node_modules/@abaplint/core/build/src/issue.js");
|
|
67485
67496
|
const _abap_rule_1 = __webpack_require__(/*! ./_abap_rule */ "./node_modules/@abaplint/core/build/src/rules/_abap_rule.js");
|
|
67486
67497
|
const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js");
|
|
67487
67498
|
const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
|
|
@@ -67531,7 +67542,7 @@ ENDCLASS.`,
|
|
|
67531
67542
|
for (const method of methods) {
|
|
67532
67543
|
if (builtIn.searchBuiltin(method.name.toUpperCase())) {
|
|
67533
67544
|
const message = `Method name "${method.name}" overwrites built-in SAP function name`;
|
|
67534
|
-
issues.push(
|
|
67545
|
+
issues.push(issue_1.Issue.atIdentifier(method.identifier, message, this.getMetadata().key));
|
|
67535
67546
|
}
|
|
67536
67547
|
}
|
|
67537
67548
|
return issues;
|
|
@@ -70926,7 +70937,8 @@ const _abap_rule_1 = __webpack_require__(/*! ./_abap_rule */ "./node_modules/@ab
|
|
|
70926
70937
|
const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js");
|
|
70927
70938
|
const edit_helper_1 = __webpack_require__(/*! ../edit_helper */ "./node_modules/@abaplint/core/build/src/edit_helper.js");
|
|
70928
70939
|
const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
|
|
70929
|
-
const
|
|
70940
|
+
const version_1 = __webpack_require__(/*! ../version */ "./node_modules/@abaplint/core/build/src/version.js");
|
|
70941
|
+
const Statements = __webpack_require__(/*! ../abap/2_statements/statements */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/index.js");
|
|
70930
70942
|
class PreferRaiseExceptionNewConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
70931
70943
|
}
|
|
70932
70944
|
exports.PreferRaiseExceptionNewConf = PreferRaiseExceptionNewConf;
|
|
@@ -70958,12 +70970,12 @@ From 752 and up`,
|
|
|
70958
70970
|
this.conf = conf;
|
|
70959
70971
|
}
|
|
70960
70972
|
runParsed(file) {
|
|
70961
|
-
if (this.reg.getConfig().getVersion() <
|
|
70973
|
+
if (this.reg.getConfig().getVersion() < version_1.Version.v752) {
|
|
70962
70974
|
return [];
|
|
70963
70975
|
}
|
|
70964
70976
|
const issues = [];
|
|
70965
70977
|
for (const statement of file.getStatements()) {
|
|
70966
|
-
if (statement.get() instanceof
|
|
70978
|
+
if (statement.get() instanceof Statements.Raise) {
|
|
70967
70979
|
const concat = statement.concatTokens().toUpperCase();
|
|
70968
70980
|
if (concat.includes(" MESSAGE")) {
|
|
70969
70981
|
continue;
|
|
@@ -72142,11 +72154,15 @@ exports.SelectPerformance = SelectPerformance;
|
|
|
72142
72154
|
|
|
72143
72155
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
72144
72156
|
exports.SelectSingleFullKey = exports.SelectSingleFullKeyConf = void 0;
|
|
72145
|
-
const
|
|
72157
|
+
const _abap_object_1 = __webpack_require__(/*! ../objects/_abap_object */ "./node_modules/@abaplint/core/build/src/objects/_abap_object.js");
|
|
72146
72158
|
const _basic_rule_config_1 = __webpack_require__(/*! ./_basic_rule_config */ "./node_modules/@abaplint/core/build/src/rules/_basic_rule_config.js");
|
|
72147
|
-
const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
|
|
72148
|
-
const __1 = __webpack_require__(/*! .. */ "./node_modules/@abaplint/core/build/src/index.js");
|
|
72149
72159
|
const edit_helper_1 = __webpack_require__(/*! ../edit_helper */ "./node_modules/@abaplint/core/build/src/edit_helper.js");
|
|
72160
|
+
const _irule_1 = __webpack_require__(/*! ./_irule */ "./node_modules/@abaplint/core/build/src/rules/_irule.js");
|
|
72161
|
+
const issue_1 = __webpack_require__(/*! ../issue */ "./node_modules/@abaplint/core/build/src/issue.js");
|
|
72162
|
+
const syntax_1 = __webpack_require__(/*! ../abap/5_syntax/syntax */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/syntax.js");
|
|
72163
|
+
const Expressions = __webpack_require__(/*! ../abap/2_statements/expressions */ "./node_modules/@abaplint/core/build/src/abap/2_statements/expressions/index.js");
|
|
72164
|
+
const Statements = __webpack_require__(/*! ../abap/2_statements/statements */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/index.js");
|
|
72165
|
+
const _statement_1 = __webpack_require__(/*! ../abap/2_statements/statements/_statement */ "./node_modules/@abaplint/core/build/src/abap/2_statements/statements/_statement.js");
|
|
72150
72166
|
class SelectSingleFullKeyConf extends _basic_rule_config_1.BasicRuleConfig {
|
|
72151
72167
|
constructor() {
|
|
72152
72168
|
super(...arguments);
|
|
@@ -72196,10 +72212,10 @@ If the statement contains a JOIN it is not checked`,
|
|
|
72196
72212
|
}
|
|
72197
72213
|
run(obj) {
|
|
72198
72214
|
var _a, _b;
|
|
72199
|
-
if (!(obj instanceof
|
|
72215
|
+
if (!(obj instanceof _abap_object_1.ABAPObject)) {
|
|
72200
72216
|
return [];
|
|
72201
72217
|
}
|
|
72202
|
-
const syntax = new
|
|
72218
|
+
const syntax = new syntax_1.SyntaxLogic(this.reg, obj).run();
|
|
72203
72219
|
if (syntax.issues.length > 0) {
|
|
72204
72220
|
return [];
|
|
72205
72221
|
}
|
|
@@ -72209,21 +72225,21 @@ If the statement contains a JOIN it is not checked`,
|
|
|
72209
72225
|
const statements = file.getStatements();
|
|
72210
72226
|
for (let i = 0; i < statements.length; i++) {
|
|
72211
72227
|
const s = statements[i];
|
|
72212
|
-
if (!(s.get() instanceof
|
|
72228
|
+
if (!(s.get() instanceof Statements.Select)) {
|
|
72213
72229
|
continue;
|
|
72214
72230
|
}
|
|
72215
|
-
else if (s.findFirstExpression(
|
|
72231
|
+
else if (s.findFirstExpression(Expressions.SQLJoin)) {
|
|
72216
72232
|
continue;
|
|
72217
72233
|
}
|
|
72218
72234
|
else if (s.findTokenSequencePosition("SELECT", "SINGLE") === undefined) {
|
|
72219
72235
|
continue;
|
|
72220
72236
|
}
|
|
72221
|
-
const databaseTable = s.findFirstExpression(
|
|
72237
|
+
const databaseTable = s.findFirstExpression(Expressions.DatabaseTable);
|
|
72222
72238
|
if (databaseTable === undefined) {
|
|
72223
72239
|
continue;
|
|
72224
72240
|
}
|
|
72225
72241
|
const next = statements[i + 1];
|
|
72226
|
-
if ((next === null || next === void 0 ? void 0 : next.get()) instanceof
|
|
72242
|
+
if ((next === null || next === void 0 ? void 0 : next.get()) instanceof _statement_1.Comment
|
|
72227
72243
|
&& next.concatTokens().includes(this.getMetadata().pseudoComment + "")) {
|
|
72228
72244
|
if (this.getConfig().allowPseudo !== true) {
|
|
72229
72245
|
issues.push(issue_1.Issue.atStatement(file, s, "Pseudo comment not allowed", this.getMetadata().key, this.getConfig().severity));
|
|
@@ -72236,7 +72252,7 @@ If the statement contains a JOIN it is not checked`,
|
|
|
72236
72252
|
continue;
|
|
72237
72253
|
}
|
|
72238
72254
|
const keys = table.listKeys(this.reg);
|
|
72239
|
-
const cond = s.findFirstExpression(
|
|
72255
|
+
const cond = s.findFirstExpression(Expressions.SQLCond);
|
|
72240
72256
|
const set = new Set();
|
|
72241
72257
|
for (const key of keys) {
|
|
72242
72258
|
if (key === "MANDT") {
|
|
@@ -72245,10 +72261,10 @@ If the statement contains a JOIN it is not checked`,
|
|
|
72245
72261
|
}
|
|
72246
72262
|
set.add(key);
|
|
72247
72263
|
}
|
|
72248
|
-
for (const compare of (cond === null || cond === void 0 ? void 0 : cond.findAllExpressionsRecursive(
|
|
72264
|
+
for (const compare of (cond === null || cond === void 0 ? void 0 : cond.findAllExpressionsRecursive(Expressions.SQLCompare)) || []) {
|
|
72249
72265
|
if (compare.getChildren().length === 3) {
|
|
72250
|
-
const fname = (_a = compare.findDirectExpression(
|
|
72251
|
-
const operator = (_b = compare.findDirectExpression(
|
|
72266
|
+
const fname = (_a = compare.findDirectExpression(Expressions.SQLFieldName)) === null || _a === void 0 ? void 0 : _a.concatTokens().toUpperCase();
|
|
72267
|
+
const operator = (_b = compare.findDirectExpression(Expressions.SQLCompareOperator)) === null || _b === void 0 ? void 0 : _b.concatTokens().toUpperCase();
|
|
72252
72268
|
if (fname && (operator === "=" || operator === "EQ")) {
|
|
72253
72269
|
set.delete(fname);
|
|
72254
72270
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/cli",
|
|
3
|
-
"version": "2.113.
|
|
3
|
+
"version": "2.113.112",
|
|
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.112",
|
|
42
42
|
"@types/chai": "^4.3.20",
|
|
43
43
|
"@types/glob": "^8.1.0",
|
|
44
44
|
"@types/minimist": "^1.2.5",
|