@abaplint/core 2.114.3 → 2.114.4

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.
@@ -4305,10 +4305,7 @@ declare class Local implements IStatement {
4305
4305
  declare class LockObject extends AbstractObject {
4306
4306
  private parsedXML;
4307
4307
  getType(): string;
4308
- getAllowedNaming(): {
4309
- maxLength: number;
4310
- allowNamespace: boolean;
4311
- };
4308
+ getAllowedNaming(): IAllowedNaming;
4312
4309
  setDirty(): void;
4313
4310
  getPrimaryTable(): string | undefined;
4314
4311
  parseType(reg: IRegistry): AbstractType;
@@ -18,7 +18,9 @@ class StringTemplate {
18
18
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
19
19
  return basic_1.VoidType.get(_syntax_input_1.CheckSyntaxKey);
20
20
  }
21
- else if ((typeUtils.isCharLike(type) === false && typeUtils.isHexLike(type) === false)
21
+ else if ((typeUtils.isCharLike(type) === false
22
+ && typeUtils.isHexLike(type) === false
23
+ && !(type instanceof basic_1.UTCLongType))
22
24
  || type instanceof basic_1.StructureType) {
23
25
  const message = "String template, not character like, " + type.constructor.name;
24
26
  input.issues.push((0, _syntax_input_1.syntaxIssue)(input, node.getFirstToken(), message));
@@ -44,6 +44,7 @@ class Append {
44
44
  if (source) {
45
45
  if (targetType !== undefined
46
46
  && !(targetType instanceof basic_1.TableType)
47
+ && !(targetType instanceof basic_1.UnknownType)
47
48
  && dataTarget !== target
48
49
  && !(targetType instanceof basic_1.VoidType)) {
49
50
  const message = `Append, target not a table type (${targetType.constructor.name})`;
@@ -11,6 +11,7 @@ class LockObject extends _abstract_object_1.AbstractObject {
11
11
  getAllowedNaming() {
12
12
  return {
13
13
  maxLength: 16,
14
+ customRegex: /^(\/[A-Z_\d]{3,8}\/)?E[A-Z0-9_]+$/i,
14
15
  allowNamespace: true,
15
16
  };
16
17
  }
@@ -74,7 +74,7 @@ class Registry {
74
74
  }
75
75
  static abaplintVersion() {
76
76
  // magic, see build script "version.sh"
77
- return "2.114.3";
77
+ return "2.114.4";
78
78
  }
79
79
  getDDICReferences() {
80
80
  return this.ddicReferences;
@@ -34,14 +34,14 @@ class AllowedObjectNaming {
34
34
  const name = obj.getName();
35
35
  let message = "";
36
36
  if (name.length > allowed.maxLength) {
37
- message = "Name exceeds max length";
37
+ message = "Name exceeds max length, allowed is " + allowed.maxLength;
38
38
  }
39
39
  else if (allowed.allowNamespace === false && name.indexOf("/") >= 0) {
40
40
  message = "Namespace not allowed for object type";
41
41
  }
42
42
  else if (allowed.customRegex !== undefined) {
43
43
  if (name.match(allowed.customRegex) === null) {
44
- message = "Name not allowed";
44
+ message = "Name not allowed, expected to match " + allowed.customRegex.toString();
45
45
  }
46
46
  }
47
47
  else if (name.match(NAME_REGEX) === null) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abaplint/core",
3
- "version": "2.114.3",
3
+ "version": "2.114.4",
4
4
  "description": "abaplint - Core API",
5
5
  "main": "build/src/index.js",
6
6
  "typings": "build/abaplint.d.ts",