@abaplint/core 2.93.50 → 2.93.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.
@@ -1835,6 +1835,7 @@ declare namespace Expressions {
1835
1835
  Cast,
1836
1836
  ClassFinal,
1837
1837
  ClassFriends,
1838
+ SimpleTarget,
1838
1839
  ClassGlobal_2 as ClassGlobal,
1839
1840
  ClassName,
1840
1841
  Color,
@@ -4886,6 +4887,10 @@ declare class SimpleSource4 extends Expression {
4886
4887
  getRunnable(): IStatementRunnable;
4887
4888
  }
4888
4889
 
4890
+ declare class SimpleTarget extends Expression {
4891
+ getRunnable(): IStatementRunnable;
4892
+ }
4893
+
4889
4894
  declare class SimpleType extends AbstractType {
4890
4895
  toText(): string;
4891
4896
  toABAP(): string;
@@ -30,6 +30,7 @@ __exportStar(require("./call_transformation_parameters"), exports);
30
30
  __exportStar(require("./cast"), exports);
31
31
  __exportStar(require("./class_final"), exports);
32
32
  __exportStar(require("./class_friends"), exports);
33
+ __exportStar(require("./simple_target"), exports);
33
34
  __exportStar(require("./class_global"), exports);
34
35
  __exportStar(require("./class_name"), exports);
35
36
  __exportStar(require("./color"), exports);
@@ -8,7 +8,7 @@ const version_1 = require("../../../version");
8
8
  class ReduceNext extends combi_1.Expression {
9
9
  getRunnable() {
10
10
  const calcAssign = (0, combi_1.ver)(version_1.Version.v754, (0, combi_1.alt)((0, combi_1.seq)((0, combi_1.tok)(tokens_1.WPlus), "="), (0, combi_1.seq)((0, combi_1.tok)(tokens_1.WDash), "="), "/=", "*=", "&&="));
11
- const fields = (0, combi_1.seq)(_1.SimpleFieldChain, (0, combi_1.altPrio)("=", calcAssign), _1.Source);
11
+ const fields = (0, combi_1.seq)(_1.SimpleTarget, (0, combi_1.altPrio)("=", calcAssign), _1.Source);
12
12
  return (0, combi_1.seq)("NEXT", (0, combi_1.plus)(fields));
13
13
  }
14
14
  }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SimpleTarget = void 0;
4
+ const combi_1 = require("../combi");
5
+ const _1 = require(".");
6
+ const tokens_1 = require("../../1_lexer/tokens");
7
+ const attribute_name_1 = require("./attribute_name");
8
+ const dereference_1 = require("./dereference");
9
+ class SimpleTarget extends combi_1.Expression {
10
+ getRunnable() {
11
+ const attr = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.InstanceArrow), attribute_name_1.AttributeName);
12
+ const comp = (0, combi_1.seq)((0, combi_1.tok)(tokens_1.Dash), _1.ComponentName);
13
+ const something = (0, combi_1.starPrio)((0, combi_1.altPrio)(dereference_1.Dereference, attr, comp, _1.TableExpression));
14
+ const cast = (0, combi_1.seq)((0, combi_1.altPrio)(_1.Cast, _1.NewObject), _1.Arrow, _1.FieldAll);
15
+ const clas = (0, combi_1.seq)(_1.ClassName, (0, combi_1.tok)(tokens_1.StaticArrow), attribute_name_1.AttributeName);
16
+ const start = (0, combi_1.altPrio)(cast, clas, _1.TargetField, _1.TargetFieldSymbol);
17
+ const fields = (0, combi_1.seq)((0, combi_1.optPrio)(_1.FieldOffset), (0, combi_1.optPrio)(_1.FieldLength));
18
+ return (0, combi_1.seq)(start, something, fields);
19
+ }
20
+ }
21
+ exports.SimpleTarget = SimpleTarget;
22
+ //# sourceMappingURL=simple_target.js.map
@@ -11,7 +11,7 @@ class ClassDefinition {
11
11
  const risk = (0, combi_1.seq)("RISK LEVEL", level);
12
12
  const time = (0, combi_1.alt)("LONG", "MEDIUM", "SHORT");
13
13
  const duration = (0, combi_1.seq)("DURATION", time);
14
- const blah = (0, combi_1.per)(expressions_1.ClassGlobal, expressions_1.ClassFinal, "ABSTRACT", (0, combi_1.seq)("INHERITING FROM", expressions_1.SuperClassName), create, "FOR TESTING", risk, "SHARED MEMORY ENABLED", duration, (0, combi_1.ver)(version_1.Version.v754, (0, combi_1.seq)("FOR BEHAVIOR OF", expressions_1.SimpleName)), expressions_1.ClassFriends);
14
+ const blah = (0, combi_1.per)(expressions_1.ClassGlobal, expressions_1.ClassFinal, "ABSTRACT", (0, combi_1.seq)("INHERITING FROM", expressions_1.SuperClassName), create, "FOR TESTING", risk, "SHARED MEMORY ENABLED", duration, (0, combi_1.ver)(version_1.Version.v754, (0, combi_1.seq)("FOR BEHAVIOR OF", expressions_1.NamespaceSimpleName)), expressions_1.ClassFriends);
15
15
  const def = (0, combi_1.seq)("DEFINITION", (0, combi_1.opt)(blah));
16
16
  return (0, combi_1.seq)("CLASS", expressions_1.ClassName, def);
17
17
  }
@@ -6,7 +6,7 @@ const expressions_1 = require("../expressions");
6
6
  const version_1 = require("../../../version");
7
7
  class CommitEntities {
8
8
  getMatcher() {
9
- const s = (0, combi_1.seq)("COMMIT ENTITIES", (0, combi_1.optPrio)("IN SIMULATION MODE"), (0, combi_1.star)((0, combi_1.seq)("RESPONSE OF", expressions_1.SimpleName, "FAILED", expressions_1.Target, "REPORTED", expressions_1.Target)));
9
+ const s = (0, combi_1.seq)("COMMIT ENTITIES", (0, combi_1.optPrio)("IN SIMULATION MODE"), (0, combi_1.star)((0, combi_1.seq)("RESPONSE OF", expressions_1.NamespaceSimpleName, "FAILED", expressions_1.Target, "REPORTED", expressions_1.Target)));
10
10
  return (0, combi_1.ver)(version_1.Version.v754, s);
11
11
  }
12
12
  }
@@ -13,7 +13,7 @@ class MethodDef {
13
13
  const tableFunction = (0, combi_1.seq)("TABLE FUNCTION", (0, combi_1.regex)(/^\w+?$/));
14
14
  // todo, this is only from version something
15
15
  const ddl = "DDL OBJECT OPTIONS CDS SESSION CLIENT REQUIRED";
16
- const behavior = (0, combi_1.altPrio)((0, combi_1.seq)("VALIDATE ON SAVE IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("MODIFY IMPORTING", expressions_1.MethodParamName, "FOR ACTION", expressions_1.TypeName, "RESULT", expressions_1.MethodParamName), (0, combi_1.seq)("FEATURES IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.NamespaceSimpleName, "FOR", expressions_1.NamespaceSimpleName, "RESULT", expressions_1.MethodParamName), (0, combi_1.seq)("DETERMINE ON MODIFY IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName));
16
+ const behavior = (0, combi_1.altPrio)((0, combi_1.seq)("VALIDATE ON SAVE IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("MODIFY IMPORTING", expressions_1.MethodParamName, "FOR ACTION", expressions_1.TypeName, "RESULT", expressions_1.MethodParamName), (0, combi_1.seq)("READ IMPORTING", expressions_1.MethodParamName, "FOR READ", expressions_1.TypeName, "RESULT", expressions_1.MethodParamName), (0, combi_1.seq)("FEATURES IMPORTING", expressions_1.MethodParamName, "REQUEST", expressions_1.NamespaceSimpleName, "FOR", expressions_1.NamespaceSimpleName, "RESULT", expressions_1.MethodParamName), (0, combi_1.seq)("DETERMINE ON MODIFY IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName), (0, combi_1.seq)("DETERMINE ON SAVE IMPORTING", expressions_1.MethodParamName, "FOR", expressions_1.TypeName));
17
17
  // todo, this is only from version something
18
18
  const amdp = (0, combi_1.seq)("AMDP OPTIONS CDS SESSION CLIENT CURRENT", (0, combi_1.optPrio)(expressions_1.MethodDefImporting), (0, combi_1.optPrio)(expressions_1.MethodDefExporting), (0, combi_1.optPrio)(expressions_1.MethodDefRaising));
19
19
  const ret = (0, combi_1.seq)((0, combi_1.altPrio)("CLASS-METHODS", "METHODS"), expressions_1.MethodName, (0, combi_1.alt)((0, combi_1.seq)((0, combi_1.optPrio)(expressions_1.Abstract), expressions_1.EventHandler), parameters, testing, (0, combi_1.seq)("FOR", (0, combi_1.alt)(tableFunction, ddl, behavior)), amdp, "NOT AT END OF MODE", (0, combi_1.optPrio)(expressions_1.Redefinition)));
@@ -8,7 +8,7 @@ class ModifyEntities {
8
8
  getMatcher() {
9
9
  const fieldsWith = (0, combi_1.seq)("FIELDS (", (0, combi_1.plus)(expressions_1.SimpleName), ") WITH", expressions_1.Source);
10
10
  const operation = (0, combi_1.alt)((0, combi_1.seq)("UPDATE SET FIELDS WITH", expressions_1.Source), (0, combi_1.seq)("UPDATE", fieldsWith), (0, combi_1.seq)("DELETE FROM", expressions_1.Source), (0, combi_1.seq)("EXECUTE", expressions_1.SimpleName, "FROM", expressions_1.Source), (0, combi_1.seq)("CREATE", (0, combi_1.optPrio)("AUTO FILL CID"), fieldsWith));
11
- const s = (0, combi_1.seq)("MODIFY ENTITIES OF", expressions_1.SimpleName, (0, combi_1.opt)("IN LOCAL MODE"), "ENTITY", expressions_1.SimpleName, operation, (0, combi_1.optPrio)((0, combi_1.seq)("MAPPED", expressions_1.Target)), (0, combi_1.per)((0, combi_1.seq)("FAILED", expressions_1.Target), (0, combi_1.seq)("RESULT", expressions_1.Target), (0, combi_1.seq)("REPORTED", expressions_1.Target)));
11
+ const s = (0, combi_1.seq)("MODIFY ENTITIES OF", expressions_1.NamespaceSimpleName, (0, combi_1.opt)("IN LOCAL MODE"), "ENTITY", expressions_1.SimpleName, operation, (0, combi_1.optPrio)((0, combi_1.seq)("MAPPED", expressions_1.Target)), (0, combi_1.per)((0, combi_1.seq)("FAILED", expressions_1.Target), (0, combi_1.seq)("RESULT", expressions_1.Target), (0, combi_1.seq)("REPORTED", expressions_1.Target)));
12
12
  return (0, combi_1.ver)(version_1.Version.v754, s);
13
13
  }
14
14
  }
@@ -10,7 +10,8 @@ class Raise {
10
10
  const messid = (0, combi_1.seq)("MESSAGE ID", expressions_1.Source, "NUMBER", (0, combi_1.altPrio)(expressions_1.MessageNumber, expressions_1.Source), (0, combi_1.optPrio)(expressions_1.RaiseWith));
11
11
  const exporting = (0, combi_1.seq)("EXPORTING", expressions_1.ParameterListS);
12
12
  const from = (0, combi_1.seq)("TYPE", expressions_1.ClassName, (0, combi_1.opt)((0, combi_1.alt)((0, combi_1.ver)(version_1.Version.v750, (0, combi_1.alt)(mess, messid)), (0, combi_1.ver)(version_1.Version.v752, "USING MESSAGE"))), (0, combi_1.optPrio)(exporting));
13
- const clas = (0, combi_1.seq)((0, combi_1.optPrio)("RESUMABLE"), "EXCEPTION", (0, combi_1.altPrio)(from, (0, combi_1.ver)(version_1.Version.v752, expressions_1.Source), expressions_1.SimpleSource2));
13
+ const pre = (0, combi_1.alt)((0, combi_1.seq)((0, combi_1.optPrio)("RESUMABLE"), "EXCEPTION"), "SHORTDUMP");
14
+ const clas = (0, combi_1.seq)(pre, (0, combi_1.altPrio)(from, (0, combi_1.ver)(version_1.Version.v752, expressions_1.Source), expressions_1.SimpleSource2));
14
15
  const ret = (0, combi_1.seq)("RAISE", (0, combi_1.altPrio)(clas, expressions_1.ExceptionName));
15
16
  return ret;
16
17
  }
@@ -7,7 +7,7 @@ const version_1 = require("../../../version");
7
7
  const tokens_1 = require("../../1_lexer/tokens");
8
8
  class ReadEntities {
9
9
  getMatcher() {
10
- const s = (0, combi_1.seq)("READ ENTITIES OF", expressions_1.SimpleName, "IN LOCAL MODE", "ENTITY", expressions_1.SimpleName, (0, combi_1.opt)((0, combi_1.seq)("BY", expressions_1.AssociationName)), "FIELDS", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.plus)(expressions_1.SimpleName), (0, combi_1.tok)(tokens_1.WParenRightW), "WITH", expressions_1.Source, "RESULT", expressions_1.Target, (0, combi_1.optPrio)((0, combi_1.seq)("LINK", expressions_1.Target)), (0, combi_1.optPrio)((0, combi_1.seq)("FAILED", expressions_1.Target)), (0, combi_1.optPrio)((0, combi_1.seq)("REPORTED", expressions_1.Target)));
10
+ const s = (0, combi_1.seq)("READ ENTITIES OF", expressions_1.NamespaceSimpleName, "IN LOCAL MODE", "ENTITY", expressions_1.SimpleName, (0, combi_1.opt)((0, combi_1.seq)("BY", expressions_1.AssociationName)), "FIELDS", (0, combi_1.tok)(tokens_1.WParenLeftW), (0, combi_1.plus)(expressions_1.SimpleName), (0, combi_1.tok)(tokens_1.WParenRightW), "WITH", expressions_1.Source, "RESULT", expressions_1.Target, (0, combi_1.optPrio)((0, combi_1.seq)("LINK", expressions_1.Target)), (0, combi_1.optPrio)((0, combi_1.seq)("FAILED", expressions_1.Target)), (0, combi_1.optPrio)((0, combi_1.seq)("REPORTED", expressions_1.Target)));
11
11
  return (0, combi_1.ver)(version_1.Version.v754, s);
12
12
  }
13
13
  }
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ReduceNext = void 0;
4
4
  const Expressions = require("../../2_statements/expressions");
5
5
  const source_1 = require("./source");
6
+ const target_1 = require("./target");
6
7
  class ReduceNext {
7
8
  runSyntax(node, scope, filename) {
8
9
  if (node === undefined) {
@@ -11,6 +12,9 @@ class ReduceNext {
11
12
  for (const s of node.findDirectExpressions(Expressions.Source)) {
12
13
  new source_1.Source().runSyntax(s, scope, filename);
13
14
  }
15
+ for (const s of node.findDirectExpressions(Expressions.SimpleTarget)) {
16
+ new target_1.Target().runSyntax(s, scope, filename);
17
+ }
14
18
  }
15
19
  }
16
20
  exports.ReduceNext = ReduceNext;
@@ -63,7 +63,7 @@ class Registry {
63
63
  }
64
64
  static abaplintVersion() {
65
65
  // magic, see build script "version.sh"
66
- return "2.93.50";
66
+ return "2.93.52";
67
67
  }
68
68
  getDDICReferences() {
69
69
  return this.references;
@@ -1713,7 +1713,7 @@ ${indentation} output = ${topTarget}.`;
1713
1713
  if (concat.toUpperCase() === "NEXT") {
1714
1714
  continue;
1715
1715
  }
1716
- else if (n.get() instanceof Expressions.SimpleFieldChain) {
1716
+ else if (n.get() instanceof Expressions.SimpleTarget) {
1717
1717
  body += indentation + " " + concat + " ";
1718
1718
  }
1719
1719
  else if (n.get() instanceof Expressions.Source) {
@@ -50,6 +50,9 @@ class SlowParameterPassing {
50
50
  const writes = this.listWritePositions(m, id);
51
51
  if (writes.length === 0) {
52
52
  const message = "Parameter " + id.getName() + " passed by VALUE but not changed";
53
+ if (this.reg.isFileDependency(id.getFilename()) === true) {
54
+ continue;
55
+ }
53
56
  issues.push(issue_1.Issue.atIdentifier(id, message, this.getMetadata().key, this.getConfig().severity));
54
57
  }
55
58
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/core",
3
- "version": "2.93.50",
3
+ "version": "2.93.52",
4
4
  "description": "abaplint - Core API",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/abaplint.d.ts",
@@ -49,9 +49,9 @@
49
49
  "@microsoft/api-extractor": "^7.33.4",
50
50
  "@types/chai": "^4.3.3",
51
51
  "@types/mocha": "^10.0.0",
52
- "@types/node": "^18.11.3",
52
+ "@types/node": "^18.11.5",
53
53
  "chai": "^4.3.6",
54
- "eslint": "^8.25.0",
54
+ "eslint": "^8.26.0",
55
55
  "mocha": "^10.1.0",
56
56
  "c8": "^7.12.0",
57
57
  "source-map-support": "^0.5.21",