@abaplint/cli 2.105.23 → 2.105.24
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 +27 -8
- package/package.json +3 -3
package/build/cli.js
CHANGED
|
@@ -22577,7 +22577,8 @@ class TypeUtils {
|
|
|
22577
22577
|
}
|
|
22578
22578
|
return false;
|
|
22579
22579
|
}
|
|
22580
|
-
else if (target instanceof cgeneric_type_1.CGenericType
|
|
22580
|
+
else if (target instanceof cgeneric_type_1.CGenericType
|
|
22581
|
+
|| target instanceof basic_1.GenericObjectReferenceType) {
|
|
22581
22582
|
return false;
|
|
22582
22583
|
}
|
|
22583
22584
|
else if (target instanceof basic_1.XSequenceType || target instanceof basic_1.XStringType) {
|
|
@@ -24347,19 +24348,22 @@ const let_1 = __webpack_require__(/*! ./let */ "./node_modules/@abaplint/core/bu
|
|
|
24347
24348
|
class ConvBody {
|
|
24348
24349
|
runSyntax(node, scope, filename) {
|
|
24349
24350
|
if (node === undefined) {
|
|
24350
|
-
|
|
24351
|
+
throw new Error("ConvBody, node undefined");
|
|
24351
24352
|
}
|
|
24352
24353
|
let scoped = false;
|
|
24353
24354
|
const l = node.findDirectExpression(Expressions.Let);
|
|
24354
24355
|
if (l) {
|
|
24355
24356
|
scoped = new let_1.Let().runSyntax(l, scope, filename);
|
|
24356
24357
|
}
|
|
24357
|
-
|
|
24358
|
-
|
|
24358
|
+
const s = node.findDirectExpression(Expressions.Source);
|
|
24359
|
+
if (s === undefined) {
|
|
24360
|
+
throw new Error("ConvBody, no source found");
|
|
24359
24361
|
}
|
|
24362
|
+
const sourceType = new source_1.Source().runSyntax(s, scope, filename);
|
|
24360
24363
|
if (scoped === true) {
|
|
24361
24364
|
scope.pop(node.getLastToken().getEnd());
|
|
24362
24365
|
}
|
|
24366
|
+
return sourceType;
|
|
24363
24367
|
}
|
|
24364
24368
|
}
|
|
24365
24369
|
exports.ConvBody = ConvBody;
|
|
@@ -26705,6 +26709,7 @@ const _builtin_1 = __webpack_require__(/*! ../_builtin */ "./node_modules/@abapl
|
|
|
26705
26709
|
const attribute_chain_1 = __webpack_require__(/*! ./attribute_chain */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/attribute_chain.js");
|
|
26706
26710
|
const dereference_1 = __webpack_require__(/*! ./dereference */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/dereference.js");
|
|
26707
26711
|
const _typed_identifier_1 = __webpack_require__(/*! ../../types/_typed_identifier */ "./node_modules/@abaplint/core/build/src/abap/types/_typed_identifier.js");
|
|
26712
|
+
const _type_utils_1 = __webpack_require__(/*! ../_type_utils */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_type_utils.js");
|
|
26708
26713
|
/*
|
|
26709
26714
|
* Type interference, valid scenarios:
|
|
26710
26715
|
* typed = VALUE #( ... ). right hand side must follow left hand type
|
|
@@ -26788,7 +26793,10 @@ class Source {
|
|
|
26788
26793
|
case "CONV":
|
|
26789
26794
|
{
|
|
26790
26795
|
const foundType = this.determineType(node, scope, filename, targetType);
|
|
26791
|
-
new conv_body_1.ConvBody().runSyntax(node.findDirectExpression(Expressions.ConvBody), scope, filename);
|
|
26796
|
+
const bodyType = new conv_body_1.ConvBody().runSyntax(node.findDirectExpression(Expressions.ConvBody), scope, filename);
|
|
26797
|
+
if (new _type_utils_1.TypeUtils(scope).isAssignable(foundType, bodyType) === false) {
|
|
26798
|
+
throw new Error("CONV: Types not compatible");
|
|
26799
|
+
}
|
|
26792
26800
|
this.addIfInferred(node, scope, filename, foundType);
|
|
26793
26801
|
return foundType;
|
|
26794
26802
|
}
|
|
@@ -28234,6 +28242,7 @@ const target_1 = __webpack_require__(/*! ../expressions/target */ "./node_module
|
|
|
28234
28242
|
const basic_1 = __webpack_require__(/*! ../../types/basic */ "./node_modules/@abaplint/core/build/src/abap/types/basic/index.js");
|
|
28235
28243
|
const fstarget_1 = __webpack_require__(/*! ../expressions/fstarget */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/fstarget.js");
|
|
28236
28244
|
const inline_data_1 = __webpack_require__(/*! ../expressions/inline_data */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/expressions/inline_data.js");
|
|
28245
|
+
const _type_utils_1 = __webpack_require__(/*! ../_type_utils */ "./node_modules/@abaplint/core/build/src/abap/5_syntax/_type_utils.js");
|
|
28237
28246
|
// todo: issue error for short APPEND if the source is without header line
|
|
28238
28247
|
class Append {
|
|
28239
28248
|
runSyntax(node, scope, filename) {
|
|
@@ -28276,7 +28285,17 @@ class Append {
|
|
|
28276
28285
|
else if (targetType instanceof basic_1.VoidType) {
|
|
28277
28286
|
rowType = targetType;
|
|
28278
28287
|
}
|
|
28279
|
-
new source_1.Source().runSyntax(source, scope, filename, rowType);
|
|
28288
|
+
const sourceType = new source_1.Source().runSyntax(source, scope, filename, rowType);
|
|
28289
|
+
if (node.findDirectTokenByText("LINES")) {
|
|
28290
|
+
if (new _type_utils_1.TypeUtils(scope).isAssignable(sourceType, targetType) === false) {
|
|
28291
|
+
throw new Error("Incompatible types");
|
|
28292
|
+
}
|
|
28293
|
+
}
|
|
28294
|
+
else {
|
|
28295
|
+
if (new _type_utils_1.TypeUtils(scope).isAssignable(sourceType, rowType) === false) {
|
|
28296
|
+
throw new Error("Incompatible types");
|
|
28297
|
+
}
|
|
28298
|
+
}
|
|
28280
28299
|
}
|
|
28281
28300
|
const from = node.findExpressionAfterToken("FROM");
|
|
28282
28301
|
if (from && from.get() instanceof Expressions.Source) {
|
|
@@ -31674,7 +31693,7 @@ class ReadTable {
|
|
|
31674
31693
|
}
|
|
31675
31694
|
else if (t) {
|
|
31676
31695
|
const targetType = new target_1.Target().runSyntax(t, scope, filename);
|
|
31677
|
-
if (new _type_utils_1.TypeUtils(scope).
|
|
31696
|
+
if (new _type_utils_1.TypeUtils(scope).isAssignableStrict(rowType, targetType) === false) {
|
|
31678
31697
|
throw new Error("Incompatible types");
|
|
31679
31698
|
}
|
|
31680
31699
|
}
|
|
@@ -51311,7 +51330,7 @@ class Registry {
|
|
|
51311
51330
|
}
|
|
51312
51331
|
static abaplintVersion() {
|
|
51313
51332
|
// magic, see build script "version.sh"
|
|
51314
|
-
return "2.105.
|
|
51333
|
+
return "2.105.24";
|
|
51315
51334
|
}
|
|
51316
51335
|
getDDICReferences() {
|
|
51317
51336
|
return this.ddicReferences;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/cli",
|
|
3
|
-
"version": "2.105.
|
|
3
|
+
"version": "2.105.24",
|
|
4
4
|
"description": "abaplint - Command Line Interface",
|
|
5
5
|
"funding": "https://github.com/sponsors/larshp",
|
|
6
6
|
"bin": {
|
|
@@ -38,12 +38,12 @@
|
|
|
38
38
|
},
|
|
39
39
|
"homepage": "https://abaplint.org",
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@abaplint/core": "^2.105.
|
|
41
|
+
"@abaplint/core": "^2.105.24",
|
|
42
42
|
"@types/chai": "^4.3.12",
|
|
43
43
|
"@types/glob": "^8.1.0",
|
|
44
44
|
"@types/minimist": "^1.2.5",
|
|
45
45
|
"@types/mocha": "^10.0.6",
|
|
46
|
-
"@types/node": "^20.11.
|
|
46
|
+
"@types/node": "^20.11.22",
|
|
47
47
|
"@types/progress": "^2.0.7",
|
|
48
48
|
"chai": "^4.4.1",
|
|
49
49
|
"chalk": "^5.3.0",
|