arkanalyzer 1.0.70 → 1.0.71

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.
@@ -1,7 +1,8 @@
1
1
  import { FullPosition } from '../base/Position';
2
2
  export declare enum ArkMetadataKind {
3
3
  LEADING_COMMENTS = 0,
4
- TRAILING_COMMENTS = 1
4
+ TRAILING_COMMENTS = 1,
5
+ ENUM_INIT_TYPE_USER = 2
5
6
  }
6
7
  export interface ArkMetadataType {
7
8
  }
@@ -29,4 +30,9 @@ export declare class CommentsMetadata implements ArkMetadataType {
29
30
  constructor(comments: CommentItem[]);
30
31
  getComments(): CommentItem[];
31
32
  }
33
+ export declare class EnumInitTypeUserMetadata implements ArkMetadataType {
34
+ private originTypeUser;
35
+ constructor(originTypeUser: boolean);
36
+ isUserDefined(): boolean;
37
+ }
32
38
  //# sourceMappingURL=ArkMetadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArkMetadata.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkMetadata.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,oBAAY,eAAe;IACvB,gBAAgB,IAAA;IAChB,iBAAiB,IAAA;CACpB;AAED,MAAM,WAAW,eAAe;CAAG;AAEnC;;;;;;;;;GASG;AACH,qBAAa,WAAW;IACpB,SAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IAEpD,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS;IAI/D,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;CAM1E;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,YAAY,CAAC;CAC1B,CAAC;AAEF,qBAAa,gBAAiB,YAAW,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAqB;gBAEzB,QAAQ,EAAE,WAAW,EAAE;IAI5B,WAAW,IAAI,WAAW,EAAE;CAGtC"}
1
+ {"version":3,"file":"ArkMetadata.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkMetadata.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,oBAAY,eAAe;IACvB,gBAAgB,IAAA;IAChB,iBAAiB,IAAA;IACjB,mBAAmB,IAAA;CACtB;AAED,MAAM,WAAW,eAAe;CAAI;AAEpC;;;;;;;;;GASG;AACH,qBAAa,WAAW;IACpB,SAAS,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;IAEpD,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS;IAI/D,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;CAM1E;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,YAAY,CAAC;CAC1B,CAAC;AAEF,qBAAa,gBAAiB,YAAW,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAqB;gBAEzB,QAAQ,EAAE,WAAW,EAAE;IAI5B,WAAW,IAAI,WAAW,EAAE;CAGtC;AAED,qBAAa,wBAAyB,YAAW,eAAe;IAC5D,OAAO,CAAC,cAAc,CAAU;gBAEpB,cAAc,EAAE,OAAO;IAI5B,aAAa,IAAI,OAAO;CAGlC"}
@@ -14,11 +14,12 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.CommentsMetadata = exports.ArkMetadata = exports.ArkMetadataKind = void 0;
17
+ exports.EnumInitTypeUserMetadata = exports.CommentsMetadata = exports.ArkMetadata = exports.ArkMetadataKind = void 0;
18
18
  var ArkMetadataKind;
19
19
  (function (ArkMetadataKind) {
20
20
  ArkMetadataKind[ArkMetadataKind["LEADING_COMMENTS"] = 0] = "LEADING_COMMENTS";
21
21
  ArkMetadataKind[ArkMetadataKind["TRAILING_COMMENTS"] = 1] = "TRAILING_COMMENTS";
22
+ ArkMetadataKind[ArkMetadataKind["ENUM_INIT_TYPE_USER"] = 2] = "ENUM_INIT_TYPE_USER";
22
23
  })(ArkMetadataKind = exports.ArkMetadataKind || (exports.ArkMetadataKind = {}));
23
24
  /**
24
25
  * ArkMetadata
@@ -53,3 +54,12 @@ class CommentsMetadata {
53
54
  }
54
55
  }
55
56
  exports.CommentsMetadata = CommentsMetadata;
57
+ class EnumInitTypeUserMetadata {
58
+ constructor(originTypeUser) {
59
+ this.originTypeUser = originTypeUser;
60
+ }
61
+ isUserDefined() {
62
+ return this.originTypeUser;
63
+ }
64
+ }
65
+ exports.EnumInitTypeUserMetadata = EnumInitTypeUserMetadata;
@@ -1 +1 @@
1
- {"version":3,"file":"ArkClassBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkClassBuilder.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAmE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AA0BtD,MAAM,MAAM,aAAa,GACnB,EAAE,CAAC,gBAAgB,GACnB,EAAE,CAAC,oBAAoB,GACvB,EAAE,CAAC,eAAe,GAClB,EAAE,CAAC,eAAe,GAClB,EAAE,CAAC,eAAe,GAClB,EAAE,CAAC,iBAAiB,GACpB,EAAE,CAAC,uBAAuB,CAAC;AAUjC,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,CAItH;AAED,wBAAgB,oCAAoC,CAChD,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,QAAQ,EACtB,MAAM,EAAE,EAAE,CAAC,iBAAiB,EAC5B,UAAU,EAAE,EAAE,CAAC,UAAU,GAC1B,IAAI,CAIN;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,GAAG,IAAI,CAOpJ;AAED,wBAAgB,8BAA8B,CAC1C,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,eAAe,CAAC,EAAE,SAAS,GAC5B,IAAI,CASN;AAED,wBAAgB,mCAAmC,CAC/C,OAAO,EAAE,aAAa,EACtB,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,eAAe,CAAC,EAAE,SAAS,GAC5B,IAAI,CAUN;AAmBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,GAAG,IAAI,CA0BvI"}
1
+ {"version":3,"file":"ArkClassBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkClassBuilder.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAmE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AA+BtD,MAAM,MAAM,aAAa,GACnB,EAAE,CAAC,gBAAgB,GACnB,EAAE,CAAC,oBAAoB,GACvB,EAAE,CAAC,eAAe,GAClB,EAAE,CAAC,eAAe,GAClB,EAAE,CAAC,eAAe,GAClB,EAAE,CAAC,iBAAiB,GACpB,EAAE,CAAC,uBAAuB,CAAC;AAUjC,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,GAAG,IAAI,CAItH;AAED,wBAAgB,oCAAoC,CAChD,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,QAAQ,EACtB,MAAM,EAAE,EAAE,CAAC,iBAAiB,EAC5B,UAAU,EAAE,EAAE,CAAC,UAAU,GAC1B,IAAI,CAIN;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,GAAG,IAAI,CAOpJ;AAED,wBAAgB,8BAA8B,CAC1C,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,eAAe,CAAC,EAAE,SAAS,GAC5B,IAAI,CASN;AAED,wBAAgB,mCAAmC,CAC/C,OAAO,EAAE,aAAa,EACtB,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,QAAQ,EACb,UAAU,EAAE,EAAE,CAAC,UAAU,EACzB,eAAe,CAAC,EAAE,SAAS,GAC5B,IAAI,CAUN;AAmBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,GAAG,IAAI,CA0BvI"}
@@ -61,6 +61,10 @@ const Type_1 = require("../../base/Type");
61
61
  const BodyBuilder_1 = require("./BodyBuilder");
62
62
  const Expr_1 = require("../../base/Expr");
63
63
  const ArkBaseModel_1 = require("../ArkBaseModel");
64
+ const Constant_1 = require("../../base/Constant");
65
+ const ValueUtil_1 = require("../../common/ValueUtil");
66
+ const Local_1 = require("../../base/Local");
67
+ const ArkMetadata_1 = require("../ArkMetadata");
64
68
  const logger = logger_1.default.getLogger(logger_1.LOG_MODULE_TYPE.ARKANALYZER, 'ArkClassBuilder');
65
69
  function buildDefaultArkClassFromArkFile(arkFile, defaultClass, astRoot) {
66
70
  defaultClass.setDeclaringArkFile(arkFile);
@@ -317,6 +321,7 @@ function buildArkClassMembers(clsNode, cls, sourceFile) {
317
321
  const staticInitStmts = [];
318
322
  const instanceInitStmts = [];
319
323
  let staticBlockId = 0;
324
+ const enumFieldInfo = { lastFieldName: '', curValue: 0, isCurValueValid: true };
320
325
  clsNode.members.forEach(member => {
321
326
  if (isClassMethod(member)) {
322
327
  // these node types have been handled at the beginning of this function by calling buildMethodsForClass
@@ -341,7 +346,7 @@ function buildArkClassMembers(clsNode, cls, sourceFile) {
341
346
  }
342
347
  if (ohos_typescript_1.default.isEnumMember(member)) {
343
348
  const arkField = (0, ArkFieldBuilder_1.buildProperty2ArkField)(member, sourceFile, cls);
344
- getInitStmts(staticIRTransformer, arkField, member.initializer);
349
+ getInitStmts(staticIRTransformer, arkField, member.initializer, enumFieldInfo);
345
350
  arkField.getInitializer().forEach(stmt => staticInitStmts.push(stmt));
346
351
  }
347
352
  else if (ohos_typescript_1.default.isIndexSignatureDeclaration(member)) {
@@ -466,29 +471,57 @@ function buildStaticBlocksForClass(clsNode, cls, sourceFile) {
466
471
  });
467
472
  return staticBlockMethodSignatures;
468
473
  }
469
- function getInitStmts(transformer, field, initNode) {
474
+ function getInitStmts(transformer, field, initNode, enumFieldInfo) {
475
+ let initValue;
476
+ let initPositions;
477
+ const stmts = [];
470
478
  if (initNode) {
471
- const stmts = [];
472
- let { value: initValue, valueOriginalPositions: initPositions, stmts: initStmts } = transformer.tsNodeToValueAndStmts(initNode);
479
+ let initStmts = [];
480
+ ({ value: initValue, valueOriginalPositions: initPositions, stmts: initStmts } = transformer.tsNodeToValueAndStmts(initNode));
473
481
  initStmts.forEach(stmt => stmts.push(stmt));
474
482
  if (IRUtils_1.IRUtils.moreThanOneAddress(initValue)) {
475
483
  ({ value: initValue, valueOriginalPositions: initPositions, stmts: initStmts } = transformer.generateAssignStmtForValue(initValue, initPositions));
476
484
  initStmts.forEach(stmt => stmts.push(stmt));
477
485
  }
478
- const fieldRef = new Ref_1.ArkInstanceFieldRef(transformer.getThisLocal(), field.getSignature());
479
- const fieldRefPositions = [Position_1.FullPosition.DEFAULT, Position_1.FullPosition.DEFAULT];
480
- const assignStmt = new Stmt_1.ArkAssignStmt(fieldRef, initValue);
481
- assignStmt.setOperandOriginalPositions([...fieldRefPositions, ...initPositions]);
482
- stmts.push(assignStmt);
483
- const fieldSourceCode = field.getCode();
484
- const fieldOriginPosition = field.getOriginPosition();
485
- for (const stmt of stmts) {
486
- stmt.setOriginPositionInfo(fieldOriginPosition);
487
- stmt.setOriginalText(fieldSourceCode);
486
+ if (enumFieldInfo !== undefined) {
487
+ if (initValue instanceof Constant_1.NumberConstant) {
488
+ enumFieldInfo.curValue = parseFloat(initValue.getValue()) + 1;
489
+ enumFieldInfo.isCurValueValid = true;
490
+ }
491
+ else {
492
+ enumFieldInfo.lastFieldName = field.getName();
493
+ enumFieldInfo.isCurValueValid = false;
494
+ }
488
495
  }
489
- field.setInitializer(stmts);
490
- if (field.getType() instanceof Type_1.UnknownType) {
491
- field.getSignature().setType(initValue.getType());
496
+ }
497
+ else if (enumFieldInfo !== undefined) {
498
+ if (enumFieldInfo.isCurValueValid) {
499
+ initValue = ValueUtil_1.ValueUtil.getOrCreateNumberConst(enumFieldInfo.curValue);
500
+ enumFieldInfo.curValue += 1;
501
+ }
502
+ else {
503
+ initValue = new Expr_1.ArkNormalBinopExpr(new Local_1.Local(enumFieldInfo.lastFieldName), ValueUtil_1.ValueUtil.getOrCreateNumberConst(1), Expr_1.NormalBinaryOperator.Addition);
504
+ enumFieldInfo.lastFieldName = field.getName();
492
505
  }
506
+ initPositions = [Position_1.FullPosition.DEFAULT];
507
+ field.setMetadata(ArkMetadata_1.ArkMetadataKind.ENUM_INIT_TYPE_USER, new ArkMetadata_1.EnumInitTypeUserMetadata(false));
508
+ }
509
+ else {
510
+ return;
511
+ }
512
+ const fieldRef = new Ref_1.ArkInstanceFieldRef(transformer.getThisLocal(), field.getSignature());
513
+ const fieldRefPositions = [Position_1.FullPosition.DEFAULT, Position_1.FullPosition.DEFAULT];
514
+ const assignStmt = new Stmt_1.ArkAssignStmt(fieldRef, initValue);
515
+ assignStmt.setOperandOriginalPositions([...fieldRefPositions, ...initPositions]);
516
+ stmts.push(assignStmt);
517
+ const fieldSourceCode = field.getCode();
518
+ const fieldOriginPosition = field.getOriginPosition();
519
+ for (const stmt of stmts) {
520
+ stmt.setOriginPositionInfo(fieldOriginPosition);
521
+ stmt.setOriginalText(fieldSourceCode);
522
+ }
523
+ field.setInitializer(stmts);
524
+ if (field.getType() instanceof Type_1.UnknownType) {
525
+ field.getSignature().setType(initValue.getType());
493
526
  }
494
527
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "arkanalyzer",
3
- "version": "1.0.70",
4
- "commit_id": "2a5b916e",
3
+ "version": "1.0.71",
4
+ "commit_id": "e4e5347f",
5
5
  "files": [
6
6
  "docs",
7
7
  "lib",