@abaplint/core 2.89.9 → 2.89.10

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.
@@ -4,11 +4,15 @@ exports.Compare = void 0;
4
4
  const Expressions = require("../../2_statements/expressions");
5
5
  const source_1 = require("./source");
6
6
  const method_call_chain_1 = require("./method_call_chain");
7
+ const source_field_symbol_1 = require("./source_field_symbol");
7
8
  class Compare {
8
9
  runSyntax(node, scope, filename) {
9
10
  for (const t of node.findDirectExpressions(Expressions.Source)) {
10
11
  new source_1.Source().runSyntax(t, scope, filename);
11
12
  }
13
+ for (const t of node.findDirectExpressions(Expressions.SourceFieldSymbol)) {
14
+ new source_field_symbol_1.SourceFieldSymbol().runSyntax(t, scope, filename);
15
+ }
12
16
  for (const t of node.findDirectExpressions(Expressions.MethodCallChain)) {
13
17
  new method_call_chain_1.MethodCallChain().runSyntax(t, scope, filename);
14
18
  }
@@ -13,6 +13,7 @@ const field_length_1 = require("./field_length");
13
13
  const table_expression_1 = require("./table_expression");
14
14
  const expressions_1 = require("../../2_statements/expressions");
15
15
  const dereference_1 = require("./dereference");
16
+ const source_field_symbol_1 = require("./source_field_symbol");
16
17
  class FieldChain {
17
18
  runSyntax(node, scope, filename, refType) {
18
19
  const concat = node.concatTokens();
@@ -102,8 +103,11 @@ class FieldChain {
102
103
  if (node === undefined) {
103
104
  return undefined;
104
105
  }
105
- if (node.get() instanceof Expressions.SourceField
106
- || node.get() instanceof Expressions.SourceFieldSymbol) {
106
+ if (node instanceof nodes_1.ExpressionNode
107
+ && node.get() instanceof Expressions.SourceFieldSymbol) {
108
+ return new source_field_symbol_1.SourceFieldSymbol().runSyntax(node, scope, filename);
109
+ }
110
+ else if (node.get() instanceof Expressions.SourceField) {
107
111
  const token = node.getFirstToken();
108
112
  const name = token.getStr();
109
113
  const found = scope.findVariable(name);
@@ -121,7 +125,7 @@ class FieldChain {
121
125
  }
122
126
  return found.getType();
123
127
  }
124
- if (node.get() instanceof Expressions.ClassName) {
128
+ else if (node.get() instanceof Expressions.ClassName) {
125
129
  const classTok = node.getFirstToken();
126
130
  const classNam = classTok.getStr();
127
131
  if (classNam.toUpperCase() === "OBJECT") {
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FieldLength = void 0;
4
4
  const Expressions = require("../../2_statements/expressions");
5
5
  const _reference_1 = require("../_reference");
6
+ const source_field_symbol_1 = require("./source_field_symbol");
6
7
  class FieldLength {
7
8
  runSyntax(node, scope, filename) {
8
9
  const field = node.findDirectExpression(Expressions.SourceField);
@@ -16,12 +17,7 @@ class FieldLength {
16
17
  }
17
18
  const symbol = node.findDirectExpression(Expressions.SourceFieldSymbol);
18
19
  if (symbol) {
19
- const token = symbol.getFirstToken();
20
- const found = scope.findVariable(token.getStr());
21
- if (found === undefined) {
22
- throw new Error("\"" + symbol.getFirstToken().getStr() + "\" not found, FieldLength");
23
- }
24
- scope.addReference(token, found, _reference_1.ReferenceType.DataReadReference, filename);
20
+ new source_field_symbol_1.SourceFieldSymbol().runSyntax(symbol, scope, filename);
25
21
  }
26
22
  }
27
23
  }
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FieldOffset = void 0;
4
4
  const Expressions = require("../../2_statements/expressions");
5
5
  const _reference_1 = require("../_reference");
6
+ const source_field_symbol_1 = require("./source_field_symbol");
6
7
  class FieldOffset {
7
8
  runSyntax(node, scope, filename) {
8
9
  const field = node.findDirectExpression(Expressions.SourceField);
@@ -16,12 +17,7 @@ class FieldOffset {
16
17
  }
17
18
  const symbol = node.findDirectExpression(Expressions.SourceFieldSymbol);
18
19
  if (symbol) {
19
- const token = symbol.getFirstToken();
20
- const found = scope.findVariable(token.getStr());
21
- if (found === undefined) {
22
- throw new Error("\"" + symbol.getFirstToken().getStr() + "\" not found, FieldOffset");
23
- }
24
- scope.addReference(token, found, _reference_1.ReferenceType.DataReadReference, filename);
20
+ new source_field_symbol_1.SourceFieldSymbol().runSyntax(symbol, scope, filename);
25
21
  }
26
22
  }
27
23
  }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SourceFieldSymbol = void 0;
4
+ const _reference_1 = require("../_reference");
5
+ class SourceFieldSymbol {
6
+ runSyntax(node, scope, filename) {
7
+ const token = node.getFirstToken();
8
+ const found = scope.findVariable(token.getStr());
9
+ if (found === undefined) {
10
+ throw new Error("\"" + node.getFirstToken().getStr() + "\" not found, SourceFieldSymbol");
11
+ }
12
+ scope.addReference(token, found, _reference_1.ReferenceType.DataReadReference, filename);
13
+ return found.getType();
14
+ }
15
+ }
16
+ exports.SourceFieldSymbol = SourceFieldSymbol;
17
+ //# sourceMappingURL=source_field_symbol.js.map
@@ -68,7 +68,7 @@ class Registry {
68
68
  }
69
69
  static abaplintVersion() {
70
70
  // magic, see build script "version.sh"
71
- return "2.89.9";
71
+ return "2.89.10";
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.89.9",
3
+ "version": "2.89.10",
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.23.0",
49
49
  "@types/chai": "^4.3.1",
50
50
  "@types/mocha": "^9.1.1",
51
- "@types/node": "^17.0.26",
51
+ "@types/node": "^17.0.27",
52
52
  "chai": "^4.3.6",
53
53
  "eslint": "^8.14.0",
54
54
  "mocha": "^9.2.2",