@abaplint/cli 2.120.34 → 2.120.35
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 +36 -1
- package/package.json +2 -2
package/build/cli.js
CHANGED
|
@@ -51699,6 +51699,7 @@ const constants_1 = __webpack_require__(/*! ../5_syntax/structures/constants */
|
|
|
51699
51699
|
const type_definitions_1 = __webpack_require__(/*! ./type_definitions */ "../core/build/src/abap/types/type_definitions.js");
|
|
51700
51700
|
const types_1 = __webpack_require__(/*! ../5_syntax/structures/types */ "../core/build/src/abap/5_syntax/structures/types.js");
|
|
51701
51701
|
const type_1 = __webpack_require__(/*! ../5_syntax/statements/type */ "../core/build/src/abap/5_syntax/statements/type.js");
|
|
51702
|
+
const _syntax_input_1 = __webpack_require__(/*! ../5_syntax/_syntax_input */ "../core/build/src/abap/5_syntax/_syntax_input.js");
|
|
51702
51703
|
const _reference_1 = __webpack_require__(/*! ../5_syntax/_reference */ "../core/build/src/abap/5_syntax/_reference.js");
|
|
51703
51704
|
const alias_1 = __webpack_require__(/*! ./alias */ "../core/build/src/abap/types/alias.js");
|
|
51704
51705
|
class Attributes {
|
|
@@ -51920,6 +51921,13 @@ class Attributes {
|
|
|
51920
51921
|
if (foundAttribute) {
|
|
51921
51922
|
input.scope.addNamedIdentifier(aliasName.getStr(), foundAttribute);
|
|
51922
51923
|
}
|
|
51924
|
+
const component = compName.split("~")[1];
|
|
51925
|
+
if (foundType === undefined
|
|
51926
|
+
&& foundAttribute === undefined
|
|
51927
|
+
&& this.existsInInterface(idef, component, input, []) === false) {
|
|
51928
|
+
const message = "Component " + component + " not found in interface " + idef.getName();
|
|
51929
|
+
input.issues.push((0, _syntax_input_1.syntaxIssue)(input, compToken, message));
|
|
51930
|
+
}
|
|
51923
51931
|
}
|
|
51924
51932
|
else if (this.declaredInterfaces.includes(name.toUpperCase()) || input.scope.getDDIC().inErrorNamespace(name) === false) {
|
|
51925
51933
|
input.scope.addReference(compToken, undefined, _reference_1.ReferenceType.ObjectOrientedVoidReference, input.filename);
|
|
@@ -51929,6 +51937,33 @@ class Attributes {
|
|
|
51929
51937
|
}
|
|
51930
51938
|
}
|
|
51931
51939
|
}
|
|
51940
|
+
/** does the component exist in the interface, or in one of its aliases or included interfaces? */
|
|
51941
|
+
existsInInterface(idef, component, input, visited) {
|
|
51942
|
+
const upperName = idef.getName().toUpperCase();
|
|
51943
|
+
if (visited.includes(upperName)) {
|
|
51944
|
+
return false;
|
|
51945
|
+
}
|
|
51946
|
+
visited.push(upperName);
|
|
51947
|
+
const upper = component.toUpperCase();
|
|
51948
|
+
if (idef.getTypeDefinitions().getByName(component) !== undefined
|
|
51949
|
+
|| idef.getAttributes().findByName(component) !== undefined
|
|
51950
|
+
|| idef.getMethodDefinitions().getByName(component) !== undefined
|
|
51951
|
+
|| idef.getEvents().some(e => e.getName().toUpperCase() === upper)
|
|
51952
|
+
|| idef.getAliases().some(a => a.getName().toUpperCase() === upper)) {
|
|
51953
|
+
return true;
|
|
51954
|
+
}
|
|
51955
|
+
for (const i of idef.getImplementing()) {
|
|
51956
|
+
const sub = input.scope.findInterfaceDefinition(i.name);
|
|
51957
|
+
if (sub === undefined) {
|
|
51958
|
+
// voided or not found, assume the component exists
|
|
51959
|
+
return true;
|
|
51960
|
+
}
|
|
51961
|
+
else if (this.existsInInterface(sub, component, input, visited)) {
|
|
51962
|
+
return true;
|
|
51963
|
+
}
|
|
51964
|
+
}
|
|
51965
|
+
return false;
|
|
51966
|
+
}
|
|
51932
51967
|
parseAttribute(node, visibility, input) {
|
|
51933
51968
|
let found = undefined;
|
|
51934
51969
|
const s = node.get();
|
|
@@ -70071,7 +70106,7 @@ class Registry {
|
|
|
70071
70106
|
}
|
|
70072
70107
|
static abaplintVersion() {
|
|
70073
70108
|
// magic, see build script "version.js"
|
|
70074
|
-
return "2.120.
|
|
70109
|
+
return "2.120.35";
|
|
70075
70110
|
}
|
|
70076
70111
|
getDDICReferences() {
|
|
70077
70112
|
return this.ddicReferences;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/cli",
|
|
3
|
-
"version": "2.120.
|
|
3
|
+
"version": "2.120.35",
|
|
4
4
|
"description": "abaplint - Command Line Interface",
|
|
5
5
|
"funding": "https://github.com/sponsors/larshp",
|
|
6
6
|
"bin": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
"homepage": "https://abaplint.org",
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@abaplint/core": "^2.120.
|
|
42
|
+
"@abaplint/core": "^2.120.35",
|
|
43
43
|
"@types/chai": "^4.3.20",
|
|
44
44
|
"@types/minimist": "^1.2.5",
|
|
45
45
|
"@types/mocha": "^10.0.10",
|