arkanalyzer 1.0.23 → 1.0.25

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.
Files changed (52) hide show
  1. package/lib/Scene.d.ts.map +1 -1
  2. package/lib/Scene.js +4 -1
  3. package/lib/core/base/Constant.d.ts +3 -0
  4. package/lib/core/base/Constant.d.ts.map +1 -1
  5. package/lib/core/base/Constant.js +7 -1
  6. package/lib/core/base/Expr.d.ts.map +1 -1
  7. package/lib/core/base/Expr.js +9 -0
  8. package/lib/core/base/Type.d.ts +9 -0
  9. package/lib/core/base/Type.d.ts.map +1 -1
  10. package/lib/core/base/Type.js +15 -1
  11. package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
  12. package/lib/core/common/ArkIRTransformer.js +20 -3
  13. package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
  14. package/lib/core/common/ArkValueTransformer.js +3 -1
  15. package/lib/core/common/IRInference.d.ts.map +1 -1
  16. package/lib/core/common/IRInference.js +8 -0
  17. package/lib/core/common/TSConst.d.ts +1 -0
  18. package/lib/core/common/TSConst.d.ts.map +1 -1
  19. package/lib/core/common/TSConst.js +2 -1
  20. package/lib/core/common/TypeInference.d.ts.map +1 -1
  21. package/lib/core/common/TypeInference.js +11 -9
  22. package/lib/core/common/ValueUtil.d.ts +2 -1
  23. package/lib/core/common/ValueUtil.d.ts.map +1 -1
  24. package/lib/core/common/ValueUtil.js +3 -0
  25. package/lib/core/graph/builder/CfgBuilder.d.ts +1 -0
  26. package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -1
  27. package/lib/core/graph/builder/CfgBuilder.js +26 -1
  28. package/lib/core/model/ArkField.d.ts +3 -1
  29. package/lib/core/model/ArkField.d.ts.map +1 -1
  30. package/lib/core/model/ArkField.js +12 -0
  31. package/lib/core/model/ArkMethod.d.ts +1 -0
  32. package/lib/core/model/ArkMethod.d.ts.map +1 -1
  33. package/lib/core/model/ArkMethod.js +15 -0
  34. package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
  35. package/lib/core/model/builder/ArkClassBuilder.js +37 -0
  36. package/lib/core/model/builder/ArkFieldBuilder.d.ts.map +1 -1
  37. package/lib/core/model/builder/ArkFieldBuilder.js +11 -12
  38. package/lib/core/model/builder/ArkMethodBuilder.d.ts +1 -1
  39. package/lib/core/model/builder/ArkMethodBuilder.d.ts.map +1 -1
  40. package/lib/core/model/builder/ArkMethodBuilder.js +61 -77
  41. package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
  42. package/lib/core/model/builder/builderUtils.js +16 -13
  43. package/lib/save/JsonPrinter.d.ts.map +1 -1
  44. package/lib/save/JsonPrinter.js +5 -0
  45. package/lib/save/arkir/ArkIRClassPrinter.d.ts.map +1 -1
  46. package/lib/save/arkir/ArkIRClassPrinter.js +20 -12
  47. package/lib/save/arkir/ArkIRFieldPrinter.js +1 -1
  48. package/lib/save/arkir/ArkIRMethodPrinter.d.ts.map +1 -1
  49. package/lib/save/arkir/ArkIRMethodPrinter.js +11 -15
  50. package/lib/save/source/SourceTransformer.d.ts.map +1 -1
  51. package/lib/save/source/SourceTransformer.js +8 -2
  52. package/package.json +2 -2
@@ -16,6 +16,7 @@
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.ArkField = exports.FieldCategory = void 0;
18
18
  const Position_1 = require("../base/Position");
19
+ const ArkClass_1 = require("./ArkClass");
19
20
  const ArkBaseModel_1 = require("./ArkBaseModel");
20
21
  var FieldCategory;
21
22
  (function (FieldCategory) {
@@ -27,6 +28,7 @@ var FieldCategory;
27
28
  FieldCategory[FieldCategory["ENUM_MEMBER"] = 5] = "ENUM_MEMBER";
28
29
  FieldCategory[FieldCategory["INDEX_SIGNATURE"] = 6] = "INDEX_SIGNATURE";
29
30
  FieldCategory[FieldCategory["GET_ACCESSOR"] = 7] = "GET_ACCESSOR";
31
+ FieldCategory[FieldCategory["PARAMETER_PROPERTY"] = 8] = "PARAMETER_PROPERTY";
30
32
  })(FieldCategory = exports.FieldCategory || (exports.FieldCategory = {}));
31
33
  /**
32
34
  * @category core/model
@@ -115,5 +117,15 @@ class ArkField extends ArkBaseModel_1.ArkBaseModel {
115
117
  validate() {
116
118
  return this.validateFields(['category', 'declaringClass', 'fieldSignature']);
117
119
  }
120
+ // For class field, it is default public if there is not any access modify
121
+ isPublic() {
122
+ if (!this.containsModifier(ArkBaseModel_1.ModifierType.PUBLIC) &&
123
+ !this.containsModifier(ArkBaseModel_1.ModifierType.PRIVATE) &&
124
+ !this.containsModifier(ArkBaseModel_1.ModifierType.PROTECTED) &&
125
+ this.getDeclaringArkClass().getCategory() === ArkClass_1.ClassCategory.CLASS) {
126
+ return true;
127
+ }
128
+ return this.containsModifier(ArkBaseModel_1.ModifierType.PUBLIC);
129
+ }
118
130
  }
119
131
  exports.ArkField = ArkField;
@@ -266,5 +266,6 @@ export declare class ArkMethod extends ArkBaseModel implements ArkExport {
266
266
  getFunctionLocal(name: string): Local | null;
267
267
  setQuestionToken(questionToken: boolean): void;
268
268
  getQuestionToken(): boolean;
269
+ isPublic(): boolean;
269
270
  }
270
271
  //# sourceMappingURL=ArkMethod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArkMethod.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkMethod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArkMethod.d.ts","sourceRoot":"","sources":["../../../src/core/model/ArkMethod.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ const ArkError_1 = require("../common/ArkError");
27
27
  const EtsConst_1 = require("../common/EtsConst");
28
28
  const Constant_1 = require("../base/Constant");
29
29
  const Local_1 = require("../base/Local");
30
+ const TSConst_1 = require("../common/TSConst");
30
31
  exports.arkMethodNodeKind = ['MethodDeclaration', 'Constructor', 'FunctionDeclaration', 'GetAccessor',
31
32
  'SetAccessor', 'ArrowFunction', 'FunctionExpression', 'MethodSignature', 'ConstructSignature', 'CallSignature'];
32
33
  /**
@@ -601,5 +602,19 @@ class ArkMethod extends ArkBaseModel_1.ArkBaseModel {
601
602
  getQuestionToken() {
602
603
  return this.questionToken;
603
604
  }
605
+ // For class method, if there is no public/private/protected access modifier, it is actually public
606
+ isPublic() {
607
+ if (!this.containsModifier(ArkBaseModel_1.ModifierType.PUBLIC) &&
608
+ !this.containsModifier(ArkBaseModel_1.ModifierType.PRIVATE) &&
609
+ !this.containsModifier(ArkBaseModel_1.ModifierType.PROTECTED) &&
610
+ !this.getDeclaringArkClass().isDefaultArkClass() &&
611
+ !this.isGenerated() &&
612
+ !this.isAnonymousMethod() &&
613
+ this.getName() !== TSConst_1.CONSTRUCTOR_NAME &&
614
+ this.getDeclaringArkClass().getCategory() === ArkClass_1.ClassCategory.CLASS) {
615
+ return true;
616
+ }
617
+ return this.containsModifier(ArkBaseModel_1.ModifierType.PUBLIC);
618
+ }
604
619
  }
605
620
  exports.ArkMethod = ArkMethod;
@@ -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,EAAE,MAAM,iBAAiB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AA8BtD,MAAM,MAAM,aAAa,GACrB,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;AAU/B,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,QAI/G;AAED,wBAAgB,oCAAoC,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAClD,MAAM,EAAE,EAAE,CAAC,iBAAiB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,QAI3G;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAChE,eAAe,CAAC,EAAE,SAAS,QAO3E;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EACvD,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,QAYpG;AAED,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EACjE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,QAazG;AAgBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,QA2BhI"}
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,EAA4B,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AAyBtD,MAAM,MAAM,aAAa,GACrB,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;AAU/B,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,QAI/G;AAED,wBAAgB,oCAAoC,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAClD,MAAM,EAAE,EAAE,CAAC,iBAAiB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,QAI3G;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAChE,eAAe,CAAC,EAAE,SAAS,QAO3E;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EACvD,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,QAYpG;AAED,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EACjE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,QAazG;AAgBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,SAAS,QA2BhI"}
@@ -41,6 +41,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
41
41
  };
42
42
  Object.defineProperty(exports, "__esModule", { value: true });
43
43
  exports.buildNormalArkClass = exports.buildNormalArkClassFromArkNamespace = exports.buildNormalArkClassFromArkFile = exports.buildNormalArkClassFromArkMethod = exports.buildDefaultArkClassFromArkNamespace = exports.buildDefaultArkClassFromArkFile = void 0;
44
+ const ArkField_1 = require("../ArkField");
44
45
  const ArkMethod_1 = require("../ArkMethod");
45
46
  const logger_1 = __importStar(require("../../../utils/logger"));
46
47
  const ohos_typescript_1 = __importDefault(require("ohos-typescript"));
@@ -148,6 +149,7 @@ function init4InstanceInitMethod(cls) {
148
149
  instanceInit.setDeclaringArkClass(cls);
149
150
  instanceInit.setIsGeneratedFlag(true);
150
151
  const methodSubSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSubSignatureFromMethodName(Const_1.INSTANCE_INIT_METHOD_NAME);
152
+ methodSubSignature.setReturnType(Type_1.VoidType.getInstance());
151
153
  const methodSignature = new ArkSignature_1.MethodSignature(instanceInit.getDeclaringArkClass().getSignature(), methodSubSignature);
152
154
  instanceInit.setImplementationSignature(methodSignature);
153
155
  instanceInit.setLineCol(0);
@@ -160,6 +162,7 @@ function init4StaticInitMethod(cls) {
160
162
  staticInit.setDeclaringArkClass(cls);
161
163
  staticInit.setIsGeneratedFlag(true);
162
164
  const methodSubSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSubSignatureFromMethodName(Const_1.STATIC_INIT_METHOD_NAME);
165
+ methodSubSignature.setReturnType(Type_1.VoidType.getInstance());
163
166
  const methodSignature = new ArkSignature_1.MethodSignature(staticInit.getDeclaringArkClass().getSignature(), methodSubSignature);
164
167
  staticInit.setImplementationSignature(methodSignature);
165
168
  staticInit.setLineCol(0);
@@ -370,7 +373,38 @@ function buildMethodsForClass(clsNode, cls, sourceFile) {
370
373
  if (ohos_typescript_1.default.isGetAccessor(member)) {
371
374
  (0, ArkFieldBuilder_1.buildGetAccessor2ArkField)(member, mthd, sourceFile);
372
375
  }
376
+ else if (ohos_typescript_1.default.isConstructorDeclaration(member)) {
377
+ buildParameterProperty2ArkField(member.parameters, cls, sourceFile);
378
+ }
379
+ }
380
+ });
381
+ }
382
+ // params of constructor method may have modifiers such as public or private to directly define class properties with constructor
383
+ function buildParameterProperty2ArkField(params, cls, sourceFile) {
384
+ if (params.length === 0) {
385
+ return;
386
+ }
387
+ params.forEach((parameter) => {
388
+ if (parameter.modifiers === undefined || !ohos_typescript_1.default.isIdentifier(parameter.name)) {
389
+ return;
390
+ }
391
+ let field = new ArkField_1.ArkField();
392
+ field.setDeclaringArkClass(cls);
393
+ field.setCode(parameter.getText(sourceFile));
394
+ field.setCategory(ArkField_1.FieldCategory.PARAMETER_PROPERTY);
395
+ field.setOriginPosition(Position_1.LineColPosition.buildFromNode(parameter, sourceFile));
396
+ let fieldName = parameter.name.text;
397
+ let fieldType;
398
+ if (parameter.type) {
399
+ fieldType = ((0, builderUtils_1.buildGenericType)((0, builderUtils_1.tsNode2Type)(parameter.type, sourceFile, field), field));
373
400
  }
401
+ else {
402
+ fieldType = Type_1.UnknownType.getInstance();
403
+ }
404
+ const fieldSignature = new ArkSignature_1.FieldSignature(fieldName, cls.getSignature(), fieldType, false);
405
+ field.setSignature(fieldSignature);
406
+ field.setModifiers((0, builderUtils_1.buildModifiers)(parameter));
407
+ cls.addField(field);
374
408
  });
375
409
  }
376
410
  function buildStaticBlocksForClass(clsNode, cls, sourceFile) {
@@ -419,5 +453,8 @@ function getInitStmts(transformer, field, initNode) {
419
453
  stmt.setOriginalText(fieldSourceCode);
420
454
  }
421
455
  field.setInitializer(stmts);
456
+ if (field.getType() instanceof Type_1.UnknownType) {
457
+ field.getSignature().setType(initValue.getType());
458
+ }
422
459
  }
423
460
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ArkFieldBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkFieldBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAUzC,MAAM,MAAM,YAAY,GAAG,EAAE,CAAC,mBAAmB,GAAG,EAAE,CAAC,kBAAkB,CAAC;AAE1E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,GAAG,EAAE,CAAC,kBAAkB,GAAG,EAAE,CAAC,2BAA2B,GACxH,EAAE,CAAC,gBAAgB,GAAG,EAAE,CAAC,iBAAiB,GAAG,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,GAAG,QAAQ,CAuDpH;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,EAAE,CAAC,yBAAyB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,QAmB1H;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,EAAE,CAAC,sBAAsB,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,QAiCtH"}
1
+ {"version":3,"file":"ArkFieldBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkFieldBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAiB,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAUzC,MAAM,MAAM,YAAY,GAAG,EAAE,CAAC,mBAAmB,GAAG,EAAE,CAAC,kBAAkB,CAAC;AAE1E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,GAAG,EAAE,CAAC,kBAAkB,GAAG,EAAE,CAAC,2BAA2B,GACxH,EAAE,CAAC,gBAAgB,GAAG,EAAE,CAAC,iBAAiB,GAAG,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,GAAG,QAAQ,CAqDpH;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,EAAE,CAAC,yBAAyB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,QAmB1H;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,EAAE,CAAC,sBAAsB,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,QAiCtH"}
@@ -80,24 +80,23 @@ function buildProperty2ArkField(member, sourceFile, cls) {
80
80
  else {
81
81
  logger.warn("Other type of property name found!");
82
82
  }
83
- if ((ohos_typescript_1.default.isPropertyDeclaration(member) || ohos_typescript_1.default.isPropertySignature(member)) && member.modifiers) {
84
- let modifiers = (0, builderUtils_1.buildModifiers)(member);
85
- field.addModifier(modifiers);
86
- field.setDecorators((0, builderUtils_1.buildDecorators)(member, sourceFile));
87
- }
88
83
  let fieldType = Type_1.UnknownType.getInstance();
89
- if ((ohos_typescript_1.default.isPropertyDeclaration(member) || ohos_typescript_1.default.isPropertySignature(member)) && member.type) {
90
- fieldType = (0, builderUtils_1.buildGenericType)((0, builderUtils_1.tsNode2Type)(member.type, sourceFile, cls), field);
84
+ if ((ohos_typescript_1.default.isPropertyDeclaration(member) || ohos_typescript_1.default.isPropertySignature(member))) {
85
+ if (member.modifiers) {
86
+ field.addModifier((0, builderUtils_1.buildModifiers)(member));
87
+ }
88
+ field.addModifier(0);
89
+ field.setDecorators((0, builderUtils_1.buildDecorators)(member, sourceFile));
90
+ field.setQuestionToken(member.questionToken !== undefined);
91
+ if (member.type) {
92
+ fieldType = (0, builderUtils_1.buildGenericType)((0, builderUtils_1.tsNode2Type)(member.type, sourceFile, cls), field);
93
+ }
91
94
  }
92
95
  if (ohos_typescript_1.default.isEnumMember(member)) {
93
96
  field.addModifier(ArkBaseModel_1.ModifierType.STATIC);
94
97
  fieldType = new Type_1.ClassType(cls.getSignature());
95
98
  }
96
- const fieldSignature = new ArkSignature_1.FieldSignature(fieldName, cls.getSignature(), fieldType, field.isStatic());
97
- field.setSignature(fieldSignature);
98
- if ((ohos_typescript_1.default.isPropertyDeclaration(member) || ohos_typescript_1.default.isPropertySignature(member)) && member.questionToken) {
99
- field.setQuestionToken(true);
100
- }
99
+ field.setSignature(new ArkSignature_1.FieldSignature(fieldName, cls.getSignature(), fieldType, field.isStatic()));
101
100
  if (ohos_typescript_1.default.isPropertyDeclaration(member) && member.exclamationToken) {
102
101
  field.setExclamationToken(true);
103
102
  }
@@ -58,7 +58,7 @@ export declare class MethodParameter implements Value {
58
58
  }
59
59
  export declare function buildDefaultConstructor(arkClass: ArkClass): boolean;
60
60
  export declare function buildInitMethod(initMethod: ArkMethod, fieldInitializerStmts: Stmt[], thisLocal: Local): void;
61
- export declare function addInitInConstructor(arkClass: ArkClass): void;
61
+ export declare function addInitInConstructor(constructor: ArkMethod): void;
62
62
  export declare function isMethodImplementation(node: MethodLikeNode): boolean;
63
63
  export declare function checkAndUpdateMethod(method: ArkMethod, cls: ArkClass): void;
64
64
  //# sourceMappingURL=ArkMethodBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArkMethodBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkMethodBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArkMethodBuilder.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/ArkMethodBuilder.ts"],"names":[],"mappings":"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"}
@@ -114,9 +114,7 @@ function buildArkMethodFromArkClass(methodNode, declaringClass, mtd, sourceFile,
114
114
  if (mtd.hasBuilderDecorator()) {
115
115
  mtd.setViewTree((0, ViewTreeBuilder_1.buildViewTree)(mtd));
116
116
  }
117
- else if (declaringClass.hasComponentDecorator() &&
118
- mtd.getSubSignature().toString() === 'build()' &&
119
- !mtd.isStatic()) {
117
+ else if (declaringClass.hasComponentDecorator() && mtd.getSubSignature().toString() === 'build()' && !mtd.isStatic()) {
120
118
  declaringClass.setViewTree((0, ViewTreeBuilder_1.buildViewTree)(mtd));
121
119
  }
122
120
  checkAndUpdateMethod(mtd, declaringClass);
@@ -294,85 +292,62 @@ class MethodParameter {
294
292
  exports.MethodParameter = MethodParameter;
295
293
  function needDefaultConstructorInClass(arkClass) {
296
294
  const originClassType = arkClass.getCategory();
297
- return arkClass.getMethodWithName(TSConst_1.CONSTRUCTOR_NAME) == null &&
295
+ return arkClass.getMethodWithName(TSConst_1.CONSTRUCTOR_NAME) === null &&
298
296
  (originClassType === ArkClass_1.ClassCategory.CLASS || originClassType === ArkClass_1.ClassCategory.OBJECT) &&
299
297
  arkClass.getName() !== Const_1.DEFAULT_ARK_CLASS_NAME &&
300
298
  !arkClass.isDeclare();
301
299
  }
300
+ function recursivelyCheckAndBuildSuperConstructor(arkClass) {
301
+ let superClass = arkClass.getSuperClass();
302
+ while (superClass !== null) {
303
+ if (superClass.getMethodWithName(TSConst_1.CONSTRUCTOR_NAME) === null) {
304
+ buildDefaultConstructor(superClass);
305
+ }
306
+ superClass = superClass.getSuperClass();
307
+ }
308
+ }
302
309
  function buildDefaultConstructor(arkClass) {
310
+ var _a;
303
311
  if (!needDefaultConstructorInClass(arkClass)) {
304
312
  return false;
305
313
  }
306
- let parentConstructor = null;
307
- let superClass = arkClass.getSuperClass() || null;
308
- while (superClass != null) {
309
- parentConstructor = superClass.getMethodWithName(TSConst_1.CONSTRUCTOR_NAME);
310
- if (parentConstructor != null) {
311
- break;
312
- }
313
- superClass = superClass.getSuperClass() || null;
314
- }
314
+ recursivelyCheckAndBuildSuperConstructor(arkClass);
315
315
  const defaultConstructor = new ArkMethod_1.ArkMethod();
316
316
  defaultConstructor.setDeclaringArkClass(arkClass);
317
317
  defaultConstructor.setCode('');
318
318
  defaultConstructor.setIsGeneratedFlag(true);
319
- const thisLocal = new Local_1.Local(TSConst_1.THIS_NAME);
319
+ defaultConstructor.setLineCol(0);
320
+ const thisLocal = new Local_1.Local(TSConst_1.THIS_NAME, new Type_1.ClassType(arkClass.getSignature()));
320
321
  const locals = new Set([thisLocal]);
321
322
  const basicBlock = new BasicBlock_1.BasicBlock();
322
- let startingStmt = new Stmt_1.ArkAssignStmt(thisLocal, new Ref_1.ArkThisRef(new Type_1.ClassType(arkClass.getSignature())));
323
- basicBlock.addStmt(startingStmt);
324
- if (parentConstructor != null) {
325
- const methodParameters = [];
326
- parentConstructor.getParameters().forEach(parameter => {
327
- methodParameters.push(parameter);
328
- });
329
- let returnType = parentConstructor.getReturnType();
330
- const methodSubSignature = new ArkSignature_1.MethodSubSignature(TSConst_1.CONSTRUCTOR_NAME, methodParameters, returnType, defaultConstructor.isStatic());
331
- const methodSignature = new ArkSignature_1.MethodSignature(defaultConstructor.getDeclaringArkClass().getSignature(), methodSubSignature);
332
- defaultConstructor.setImplementationSignature(methodSignature);
333
- defaultConstructor.setLineCol(0);
334
- const stmts = [];
335
- let index = 0;
336
- const parameterLocals = [];
337
- for (const methodParameter of defaultConstructor.getParameters()) {
338
- const parameterRef = new Ref_1.ArkParameterRef(index, methodParameter.getType());
339
- const parameterLocal = new Local_1.Local(methodParameter.getName(), parameterRef.getType());
323
+ basicBlock.setId(0);
324
+ let parameters = [];
325
+ let parameterArgs = [];
326
+ const superConstructor = (_a = arkClass.getSuperClass()) === null || _a === void 0 ? void 0 : _a.getMethodWithName(TSConst_1.CONSTRUCTOR_NAME);
327
+ if (superConstructor) {
328
+ parameters = superConstructor.getParameters();
329
+ for (let index = 0; index < parameters.length; index++) {
330
+ const parameterRef = new Ref_1.ArkParameterRef(index, parameters[index].getType());
331
+ const parameterLocal = new Local_1.Local(parameters[index].getName(), parameterRef.getType());
340
332
  locals.add(parameterLocal);
341
- parameterLocals.push(parameterLocal);
342
- stmts.push(new Stmt_1.ArkAssignStmt(parameterLocal, parameterRef));
333
+ parameterArgs.push(parameterLocal);
334
+ basicBlock.addStmt(new Stmt_1.ArkAssignStmt(parameterLocal, parameterRef));
343
335
  index++;
344
336
  }
345
- const superMethodSubSignature = new ArkSignature_1.MethodSubSignature(TSConst_1.SUPER_NAME, parentConstructor.getParameters(), defaultConstructor.getReturnType());
346
- const superMethodSignature = new ArkSignature_1.MethodSignature(arkClass.getSignature(), superMethodSubSignature);
347
- const superInvokeExpr = new Expr_1.ArkStaticInvokeExpr(superMethodSignature, parameterLocals);
348
- const superInvokeStmt = new Stmt_1.ArkInvokeStmt(superInvokeExpr);
349
- basicBlock.addStmt(superInvokeStmt);
350
- const returnVoidStmt = new Stmt_1.ArkReturnVoidStmt();
351
- basicBlock.addStmt(returnVoidStmt);
352
337
  }
353
- else {
354
- const methodSubSignature = ArkSignatureBuilder_1.ArkSignatureBuilder.buildMethodSubSignatureFromMethodName(TSConst_1.CONSTRUCTOR_NAME);
355
- const methodSignature = new ArkSignature_1.MethodSignature(defaultConstructor.getDeclaringArkClass().getSignature(), methodSubSignature);
356
- defaultConstructor.setImplementationSignature(methodSignature);
357
- defaultConstructor.setLineCol(0);
358
- if (arkClass.getSuperClass()) {
359
- const superClass = arkClass.getSuperClass();
360
- const superMethodSubSignature = new ArkSignature_1.MethodSubSignature(TSConst_1.SUPER_NAME, [], Type_1.UnknownType.getInstance());
361
- const superMethodSignature = new ArkSignature_1.MethodSignature(superClass.getSignature(), superMethodSubSignature);
362
- const superInvokeExpr = new Expr_1.ArkStaticInvokeExpr(superMethodSignature, []);
363
- const superInvokeStmt = new Stmt_1.ArkInvokeStmt(superInvokeExpr);
364
- basicBlock.addStmt(superInvokeStmt);
365
- const returnVoidStmt = new Stmt_1.ArkReturnVoidStmt();
366
- basicBlock.addStmt(returnVoidStmt);
367
- }
368
- else {
369
- const returnVoidStmt = new Stmt_1.ArkReturnVoidStmt();
370
- basicBlock.addStmt(returnVoidStmt);
371
- }
338
+ basicBlock.addStmt(new Stmt_1.ArkAssignStmt(thisLocal, new Ref_1.ArkThisRef(new Type_1.ClassType(arkClass.getSignature()))));
339
+ if (superConstructor) {
340
+ const superMethodSubSignature = new ArkSignature_1.MethodSubSignature(TSConst_1.SUPER_NAME, parameters, superConstructor.getReturnType());
341
+ const superMethodSignature = new ArkSignature_1.MethodSignature(arkClass.getSignature(), superMethodSubSignature);
342
+ const superInvokeExpr = new Expr_1.ArkStaticInvokeExpr(superMethodSignature, parameterArgs);
343
+ basicBlock.addStmt(new Stmt_1.ArkInvokeStmt(superInvokeExpr));
372
344
  }
345
+ const methodSubSignature = new ArkSignature_1.MethodSubSignature(TSConst_1.CONSTRUCTOR_NAME, parameters, thisLocal.getType(), defaultConstructor.isStatic());
346
+ defaultConstructor.setImplementationSignature(new ArkSignature_1.MethodSignature(arkClass.getSignature(), methodSubSignature));
347
+ basicBlock.addStmt(new Stmt_1.ArkReturnStmt(thisLocal));
373
348
  const cfg = new Cfg_1.Cfg();
374
349
  cfg.addBlock(basicBlock);
375
- cfg.setStartingStmt(startingStmt);
350
+ cfg.setStartingStmt(basicBlock.getHead());
376
351
  cfg.setDeclaringMethod(defaultConstructor);
377
352
  cfg.getStmts().forEach(s => s.setCfg(cfg));
378
353
  defaultConstructor.setBody(new ArkBody_1.ArkBody(locals, cfg));
@@ -385,6 +360,7 @@ function buildInitMethod(initMethod, fieldInitializerStmts, thisLocal) {
385
360
  const classType = new Type_1.ClassType(initMethod.getDeclaringArkClass().getSignature());
386
361
  const assignStmt = new Stmt_1.ArkAssignStmt(thisLocal, new Ref_1.ArkThisRef(classType));
387
362
  const block = new BasicBlock_1.BasicBlock();
363
+ block.setId(0);
388
364
  block.addStmt(assignStmt);
389
365
  const locals = new Set([thisLocal]);
390
366
  for (const stmt of fieldInitializerStmts) {
@@ -405,27 +381,35 @@ function buildInitMethod(initMethod, fieldInitializerStmts, thisLocal) {
405
381
  initMethod.setBody(new ArkBody_1.ArkBody(locals, cfg));
406
382
  }
407
383
  exports.buildInitMethod = buildInitMethod;
408
- function addInitInConstructor(arkClass) {
384
+ function addInitInConstructor(constructor) {
409
385
  var _a, _b;
410
- for (const method of arkClass.getMethods(true)) {
411
- if (method.getName() === TSConst_1.CONSTRUCTOR_NAME) {
412
- const thisLocal = (_a = method.getBody()) === null || _a === void 0 ? void 0 : _a.getLocals().get(TSConst_1.THIS_NAME);
413
- if (!thisLocal) {
414
- continue;
415
- }
416
- const initInvokeStmt = new Stmt_1.ArkInvokeStmt(new Expr_1.ArkInstanceInvokeExpr(thisLocal, arkClass.getInstanceInitMethod().getSignature(), []));
417
- const blocks = (_b = method.getCfg()) === null || _b === void 0 ? void 0 : _b.getBlocks();
418
- if (!blocks) {
386
+ const thisLocal = (_a = constructor.getBody()) === null || _a === void 0 ? void 0 : _a.getLocals().get(TSConst_1.THIS_NAME);
387
+ if (!thisLocal) {
388
+ return;
389
+ }
390
+ const blocks = (_b = constructor.getCfg()) === null || _b === void 0 ? void 0 : _b.getBlocks();
391
+ if (!blocks) {
392
+ return;
393
+ }
394
+ const firstBlockStmts = [...blocks][0].getStmts();
395
+ let index = 0;
396
+ for (let i = 0; i < firstBlockStmts.length; i++) {
397
+ const stmt = firstBlockStmts[i];
398
+ if (stmt instanceof Stmt_1.ArkInvokeStmt && stmt.getInvokeExpr().getMethodSignature().getMethodSubSignature().getMethodName() === TSConst_1.SUPER_NAME) {
399
+ index++;
400
+ continue;
401
+ }
402
+ if (stmt instanceof Stmt_1.ArkAssignStmt) {
403
+ const rightOp = stmt.getRightOp();
404
+ if (rightOp instanceof Ref_1.ArkParameterRef || rightOp instanceof Ref_1.ArkThisRef || rightOp instanceof Ref_1.ClosureFieldRef) {
405
+ index++;
419
406
  continue;
420
407
  }
421
- const firstBlockStmts = [...blocks][0].getStmts();
422
- let index = 0;
423
- if (firstBlockStmts[0].getDef() instanceof Local_1.Local && firstBlockStmts[0].getDef().getName() === TSConst_1.THIS_NAME) {
424
- index = 1;
425
- }
426
- firstBlockStmts.splice(index, 0, initInvokeStmt);
427
408
  }
409
+ break;
428
410
  }
411
+ const initInvokeStmt = new Stmt_1.ArkInvokeStmt(new Expr_1.ArkInstanceInvokeExpr(thisLocal, constructor.getDeclaringArkClass().getInstanceInitMethod().getSignature(), []));
412
+ firstBlockStmts.splice(index, 0, initInvokeStmt);
429
413
  }
430
414
  exports.addInitInConstructor = addInitInConstructor;
431
415
  function isMethodImplementation(node) {
@@ -1 +1 @@
1
- {"version":3,"file":"builderUtils.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/builderUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,oBAAoB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EACH,SAAS,EAIT,WAAW,EAGX,IAAI,EAIP,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAGH,eAAe,EAElB,MAAM,oBAAoB,CAAC;AAc5B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,MAAM,CAUlE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG,MAAM,CAYxF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAUxF;AA2BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAUpD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxG;AAED,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC,EACtD,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,EAAE,CAyB/G;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,qBA4GvI;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAmDhG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,QAM3F;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,wBAAwB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAC9E,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CA0F9E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,QA8CjD"}
1
+ {"version":3,"file":"builderUtils.d.ts","sourceRoot":"","sources":["../../../../src/core/model/builder/builderUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,oBAAoB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC/G,OAAO,EACH,SAAS,EAIT,WAAW,EAGX,IAAI,EAIP,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAGH,eAAe,EAElB,MAAM,oBAAoB,CAAC;AAuB5B,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,GAAG,MAAM,CAUlE;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,GAAG,MAAM,CAYxF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAUxF;AA2BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,MAAM,CAUpD;AAED,wBAAgB,oBAAoB,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAkBxG;AAED,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,wBAAwB,CAAC,EACtD,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,EAAE,CAyB/G;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,qBA4GvI;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAmDhG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,QAM3F;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,wBAAwB,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAC9E,WAAW,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CA0F9E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,QAiDjD"}
@@ -467,43 +467,46 @@ function buildTypeFromPreStr(preStr) {
467
467
  let postStr = '';
468
468
  switch (preStr) {
469
469
  case 'BooleanKeyword':
470
- postStr = 'boolean';
470
+ postStr = TSConst_1.BOOLEAN_KEYWORD;
471
471
  break;
472
472
  case 'FalseKeyword':
473
- postStr = 'boolean';
473
+ postStr = TSConst_1.BOOLEAN_KEYWORD;
474
474
  break;
475
475
  case 'TrueKeyword':
476
- postStr = 'boolean';
476
+ postStr = TSConst_1.BOOLEAN_KEYWORD;
477
477
  break;
478
478
  case 'NumberKeyword':
479
- postStr = 'number';
479
+ postStr = TSConst_1.NUMBER_KEYWORD;
480
480
  break;
481
481
  case 'NumericLiteral':
482
- postStr = 'number';
482
+ postStr = TSConst_1.NUMBER_KEYWORD;
483
483
  break;
484
484
  case 'FirstLiteralToken':
485
- postStr = 'number';
485
+ postStr = TSConst_1.NUMBER_KEYWORD;
486
486
  break;
487
487
  case 'StringKeyword':
488
- postStr = 'string';
488
+ postStr = TSConst_1.STRING_KEYWORD;
489
489
  break;
490
490
  case 'StringLiteral':
491
- postStr = 'string';
491
+ postStr = TSConst_1.STRING_KEYWORD;
492
492
  break;
493
493
  case 'UndefinedKeyword':
494
- postStr = 'undefined';
494
+ postStr = TSConst_1.UNDEFINED_KEYWORD;
495
495
  break;
496
496
  case 'NullKeyword':
497
- postStr = 'null';
497
+ postStr = TSConst_1.NULL_KEYWORD;
498
498
  break;
499
499
  case 'AnyKeyword':
500
- postStr = 'any';
500
+ postStr = TSConst_1.ANY_KEYWORD;
501
501
  break;
502
502
  case 'VoidKeyword':
503
- postStr = 'void';
503
+ postStr = TSConst_1.VOID_KEYWORD;
504
504
  break;
505
505
  case 'NeverKeyword':
506
- postStr = 'never';
506
+ postStr = TSConst_1.NEVER_KEYWORD;
507
+ break;
508
+ case 'BigIntKeyword':
509
+ postStr = TSConst_1.BIGINT_KEYWORD;
507
510
  break;
508
511
  default:
509
512
  postStr = preStr;
@@ -1 +1 @@
1
- {"version":3,"file":"JsonPrinter.d.ts","sourceRoot":"","sources":["../../src/save/JsonPrinter.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAiFhD,qBAAa,WAAY,SAAQ,OAAO;IACxB,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAI7B,IAAI,IAAI,MAAM;IAKrB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,aAAa;IAoHrB,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,2BAA2B;IASnC,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAyJtB,OAAO,CAAC,aAAa;CAmCxB"}
1
+ {"version":3,"file":"JsonPrinter.d.ts","sourceRoot":"","sources":["../../src/save/JsonPrinter.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAiFhD,qBAAa,WAAY,SAAQ,OAAO;IACxB,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO;IAI7B,IAAI,IAAI,MAAM;IAKrB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,aAAa;IAwHrB,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,2BAA2B;IASnC,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;IAyJtB,OAAO,CAAC,aAAa;CAmCxB"}
@@ -177,6 +177,11 @@ class JsonPrinter extends Printer_1.Printer {
177
177
  _: 'NumberType',
178
178
  };
179
179
  }
180
+ else if (type instanceof Type_1.BigIntType) {
181
+ return {
182
+ _: 'BigIntType',
183
+ };
184
+ }
180
185
  else if (type instanceof Type_1.StringType) {
181
186
  return {
182
187
  _: 'StringType',
@@ -1 +1 @@
1
- {"version":3,"file":"ArkIRClassPrinter.d.ts","sourceRoot":"","sources":["../../../src/save/arkir/ArkIRClassPrinter.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAIxD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAC9C,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC;gBAEL,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAE,MAAW;IAK9C,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,MAAM;IA8CrB,SAAS,CAAC,YAAY,IAAI,IAAI,EAAE;IAkBhC,OAAO,CAAC,WAAW;CAOtB"}
1
+ {"version":3,"file":"ArkIRClassPrinter.d.ts","sourceRoot":"","sources":["../../../src/save/arkir/ArkIRClassPrinter.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAIxD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAC9C,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC;gBAEL,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAE,MAAW;IAK9C,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,MAAM;IA4DrB,SAAS,CAAC,YAAY,IAAI,IAAI,EAAE;IAQhC,OAAO,CAAC,WAAW;CAOtB"}
@@ -56,10 +56,26 @@ class ArkIRClassPrinter extends BasePrinter_1.BasePrinter {
56
56
  this.printer.writeLine(' {');
57
57
  this.printer.incIndent();
58
58
  let items = [];
59
- items.push(...this.printFields());
60
- items.push(...this.printMethods());
61
- items.sort((a, b) => a.getLine() - b.getLine());
59
+ let fieldItems = this.printFields();
60
+ fieldItems.sort((a, b) => a.getLine() - b.getLine());
61
+ items.push(...fieldItems);
62
+ let methodItems = this.printMethods();
63
+ methodItems.sort((a, b) => a.getLine() - b.getLine());
64
+ items.push(...methodItems);
65
+ let isFirstMethod = true;
66
+ let hasField = false;
62
67
  items.forEach((v) => {
68
+ if (v instanceof ArkIRMethodPrinter_1.ArkIRMethodPrinter) {
69
+ if (!isFirstMethod || hasField) {
70
+ this.printer.writeLine('');
71
+ }
72
+ else {
73
+ isFirstMethod = false;
74
+ }
75
+ }
76
+ else if (v instanceof ArkIRFieldPrinter_1.ArkIRFieldPrinter) {
77
+ hasField = true;
78
+ }
63
79
  this.printer.write(v.dump());
64
80
  });
65
81
  this.printer.decIndent();
@@ -68,17 +84,9 @@ class ArkIRClassPrinter extends BasePrinter_1.BasePrinter {
68
84
  }
69
85
  printMethods() {
70
86
  let items = [];
71
- for (let method of this.cls.getMethods()) {
87
+ for (let method of this.cls.getMethods(true)) {
72
88
  items.push(new ArkIRMethodPrinter_1.ArkIRMethodPrinter(method, this.printer.getIndent()));
73
89
  }
74
- let instanceInitMethod = this.cls.getInstanceInitMethod();
75
- if (instanceInitMethod.getImplementationSignature()) {
76
- items.push(new ArkIRMethodPrinter_1.ArkIRMethodPrinter(this.cls.getInstanceInitMethod(), this.printer.getIndent()));
77
- }
78
- let staticInitMethod = this.cls.getStaticInitMethod();
79
- if (staticInitMethod.getImplementationSignature()) {
80
- items.push(new ArkIRMethodPrinter_1.ArkIRMethodPrinter(this.cls.getStaticInitMethod(), this.printer.getIndent()));
81
- }
82
90
  return items;
83
91
  }
84
92
  printFields() {
@@ -56,7 +56,7 @@ class ArkIRFieldPrinter extends BasePrinter_1.BasePrinter {
56
56
  this.printer.writeLine(',');
57
57
  }
58
58
  else {
59
- this.printer.writeLine(';');
59
+ this.printer.writeLine('');
60
60
  }
61
61
  return this.printer.toString();
62
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ArkIRMethodPrinter.d.ts","sourceRoot":"","sources":["../../../src/save/arkir/ArkIRMethodPrinter.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAKvD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIlD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IAC/C,OAAO,CAAC,MAAM,CAAY;gBAEP,MAAM,EAAE,SAAS,EAAE,MAAM,GAAE,MAAW;IAKlD,IAAI,IAAI,MAAM;IAYd,OAAO,IAAI,MAAM;IAyBxB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,SAAS;IAMjB,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAwCxD,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,eAAe;CA2B1B"}
1
+ {"version":3,"file":"ArkIRMethodPrinter.d.ts","sourceRoot":"","sources":["../../../src/save/arkir/ArkIRMethodPrinter.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAKvD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIlD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IAC/C,OAAO,CAAC,MAAM,CAAY;gBAEP,MAAM,EAAE,SAAS,EAAE,MAAM,GAAE,MAAW;IAKlD,IAAI,IAAI,MAAM;IAYd,OAAO,IAAI,MAAM;IAyBxB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,SAAS;IAMjB,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM;IAsCxD,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,eAAe;CA2B1B"}