@abaplint/core 2.85.4 → 2.85.8

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.
@@ -8,9 +8,10 @@ class MethodSource extends combi_1.Expression {
8
8
  getRunnable() {
9
9
  const mname = (0, combi_1.alt)(_1.MethodName, _1.Dynamic);
10
10
  const cname = (0, combi_1.alt)(_1.FieldChain, _1.MethodCallChain, _1.Dynamic);
11
- const stati = (0, combi_1.seq)(_1.ClassName, (0, combi_1.tok)(tokens_1.StaticArrow));
11
+ // this is a bit tricky, this part is required as FieldChain takes a AttributeName
12
+ const stati = (0, combi_1.seq)(_1.ClassName, (0, combi_1.tok)(tokens_1.StaticArrow), mname);
12
13
  const part1 = (0, combi_1.seq)(cname, (0, combi_1.alt)((0, combi_1.tok)(tokens_1.InstanceArrow), (0, combi_1.tok)(tokens_1.StaticArrow)));
13
- return (0, combi_1.seq)((0, combi_1.optPrio)(stati), (0, combi_1.starPrio)(part1), mname);
14
+ return (0, combi_1.alt)(stati, (0, combi_1.seq)((0, combi_1.starPrio)(part1), mname));
14
15
  }
15
16
  }
16
17
  exports.MethodSource = MethodSource;
@@ -10,13 +10,14 @@ class Assign {
10
10
  const tableField = (0, combi_1.seq)("TABLE FIELD", (0, combi_1.alt)(expressions_1.Source, expressions_1.Dynamic));
11
11
  const arrow = (0, combi_1.alt)((0, combi_1.tok)(tokens_1.InstanceArrow), (0, combi_1.tok)(tokens_1.StaticArrow));
12
12
  const source = (0, combi_1.alt)((0, combi_1.seq)(expressions_1.Source, (0, combi_1.opt)((0, combi_1.seq)(arrow, expressions_1.Dynamic))), component, tableField, (0, combi_1.seq)(expressions_1.Dynamic, (0, combi_1.opt)((0, combi_1.seq)(arrow, (0, combi_1.alt)(expressions_1.Field, expressions_1.Dynamic)))));
13
- const type = (0, combi_1.seq)("TYPE", (0, combi_1.alt)(expressions_1.Dynamic, expressions_1.Source));
13
+ const type = (0, combi_1.seq)("TYPE", (0, combi_1.alt)(expressions_1.Dynamic, expressions_1.TypeName));
14
14
  const like = (0, combi_1.seq)("LIKE", (0, combi_1.alt)(expressions_1.Dynamic, expressions_1.Source));
15
15
  const handle = (0, combi_1.seq)("TYPE HANDLE", expressions_1.Source);
16
16
  const range = (0, combi_1.seq)("RANGE", expressions_1.Source);
17
17
  const decimals = (0, combi_1.seq)("DECIMALS", expressions_1.Source);
18
- const casting = (0, combi_1.seq)((0, combi_1.opt)("CASTING"), (0, combi_1.opt)((0, combi_1.alt)(like, handle, (0, combi_1.per)(type, decimals))));
19
- const ret = (0, combi_1.seq)("ASSIGN", (0, combi_1.opt)((0, combi_1.seq)(expressions_1.Target, "INCREMENT")), source, "TO", expressions_1.FSTarget, casting, (0, combi_1.opt)(range));
18
+ const casting = (0, combi_1.seq)("CASTING", (0, combi_1.opt)((0, combi_1.alt)(like, handle, (0, combi_1.per)(type, decimals))));
19
+ const obsoleteType = (0, combi_1.seq)("TYPE", expressions_1.Source, (0, combi_1.optPrio)(decimals));
20
+ const ret = (0, combi_1.seq)("ASSIGN", (0, combi_1.opt)((0, combi_1.seq)(expressions_1.Target, "INCREMENT")), source, "TO", expressions_1.FSTarget, (0, combi_1.opt)((0, combi_1.altPrio)(casting, obsoleteType)), (0, combi_1.opt)(range));
20
21
  return ret;
21
22
  }
22
23
  }
@@ -7,7 +7,7 @@ class ModifyInternal {
7
7
  getMatcher() {
8
8
  const index = (0, combi_1.seq)("INDEX", expressions_1.Source);
9
9
  const from = (0, combi_1.seq)("FROM", expressions_1.Source);
10
- const transporting = (0, combi_1.seq)("TRANSPORTING", (0, combi_1.plus)((0, combi_1.alt)(expressions_1.FieldSub, expressions_1.Dynamic)));
10
+ const transporting = (0, combi_1.seq)("TRANSPORTING", (0, combi_1.plus)((0, combi_1.alt)(expressions_1.ComponentChainSimple, expressions_1.Dynamic)));
11
11
  const where = (0, combi_1.seq)("WHERE", expressions_1.ComponentCond);
12
12
  const assigning = (0, combi_1.seq)("ASSIGNING", expressions_1.FSTarget);
13
13
  const using = (0, combi_1.seq)("USING KEY", expressions_1.SimpleName);
@@ -43,6 +43,13 @@ class ObjectOriented {
43
43
  }
44
44
  }
45
45
  }
46
+ const superName = classDefinition.getSuperClass();
47
+ if (superName !== undefined) {
48
+ const def = this.scope.findClassDefinition(superName);
49
+ if (def) {
50
+ this.addAliasedAttributes(def);
51
+ }
52
+ }
46
53
  }
47
54
  addAliasedTypes(aliases) {
48
55
  for (const alias of aliases.getAll()) {
@@ -53,8 +53,8 @@ class TypeUtils {
53
53
  }
54
54
  static isAssignable(source, target) {
55
55
  /*
56
- console.dir(source);
57
- console.dir(target);
56
+ console.dir(source);
57
+ console.dir(target);
58
58
  */
59
59
  if (target instanceof basic_1.TableType) {
60
60
  if (target.isWithHeader()) {
@@ -103,7 +103,8 @@ class TypeUtils {
103
103
  }
104
104
  return false;
105
105
  }
106
- else if (target instanceof basic_1.IntegerType) {
106
+ else if (target instanceof basic_1.IntegerType
107
+ || target instanceof basic_1.StringType) {
107
108
  if (source instanceof basic_1.DataReference
108
109
  || source instanceof basic_1.ObjectReferenceType
109
110
  || source instanceof basic_1.GenericObjectReferenceType
@@ -70,6 +70,9 @@ class FieldChain {
70
70
  context = new dereference_1.Dereference().runSyntax(context);
71
71
  }
72
72
  else if (current.get() instanceof Expressions.ComponentName) {
73
+ if (context instanceof basic_1.TableType && context.isWithHeader()) {
74
+ context = context.getRowType();
75
+ }
73
76
  context = new component_name_1.ComponentName().runSyntax(context, current);
74
77
  }
75
78
  else if (current instanceof nodes_1.ExpressionNode
@@ -68,7 +68,7 @@ class Registry {
68
68
  }
69
69
  static abaplintVersion() {
70
70
  // magic, see build script "version.sh"
71
- return "2.85.4";
71
+ return "2.85.8";
72
72
  }
73
73
  getDDICReferences() {
74
74
  return this.references;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/core",
3
- "version": "2.85.4",
3
+ "version": "2.85.8",
4
4
  "description": "abaplint - Core API",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/abaplint.d.ts",
@@ -48,7 +48,7 @@
48
48
  "@microsoft/api-extractor": "^7.19.4",
49
49
  "@types/chai": "^4.3.0",
50
50
  "@types/mocha": "^9.1.0",
51
- "@types/node": "^17.0.13",
51
+ "@types/node": "^17.0.14",
52
52
  "chai": "^4.3.6",
53
53
  "eslint": "^8.8.0",
54
54
  "mocha": "^9.2.0",