arkanalyzer 1.0.16 → 1.0.18
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.
- package/lib/callgraph/pointerAnalysis/Pag.d.ts +1 -1
- package/lib/callgraph/pointerAnalysis/Pag.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/Pag.js +9 -0
- package/lib/callgraph/pointerAnalysis/PagBuilder.d.ts.map +1 -1
- package/lib/callgraph/pointerAnalysis/PagBuilder.js +6 -2
- package/lib/core/base/Decorator.d.ts +1 -0
- package/lib/core/base/Decorator.d.ts.map +1 -1
- package/lib/core/base/Decorator.js +4 -1
- package/lib/core/base/Type.d.ts +45 -3
- package/lib/core/base/Type.d.ts.map +1 -1
- package/lib/core/base/Type.js +84 -4
- package/lib/core/common/ArkIRTransformer.d.ts +1 -0
- package/lib/core/common/ArkIRTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkIRTransformer.js +42 -23
- package/lib/core/common/ArkValueTransformer.d.ts +1 -0
- package/lib/core/common/ArkValueTransformer.d.ts.map +1 -1
- package/lib/core/common/ArkValueTransformer.js +45 -10
- package/lib/core/common/IRInference.d.ts.map +1 -1
- package/lib/core/common/IRInference.js +6 -0
- package/lib/core/common/ModelUtils.d.ts.map +1 -1
- package/lib/core/common/ModelUtils.js +5 -1
- package/lib/core/common/TypeInference.d.ts +1 -0
- package/lib/core/common/TypeInference.d.ts.map +1 -1
- package/lib/core/common/TypeInference.js +27 -8
- package/lib/core/{common → graph/builder}/CfgBuilder.d.ts +34 -46
- package/lib/core/graph/builder/CfgBuilder.d.ts.map +1 -0
- package/lib/core/graph/builder/CfgBuilder.js +1139 -0
- package/lib/core/graph/builder/ConditionBuilder.d.ts +16 -0
- package/lib/core/graph/builder/ConditionBuilder.d.ts.map +1 -0
- package/lib/core/graph/builder/ConditionBuilder.js +252 -0
- package/lib/core/graph/builder/LoopBuilder.d.ts +21 -0
- package/lib/core/graph/builder/LoopBuilder.d.ts.map +1 -0
- package/lib/core/graph/builder/LoopBuilder.js +251 -0
- package/lib/core/graph/builder/SwitchBuilder.d.ts +12 -0
- package/lib/core/graph/builder/SwitchBuilder.d.ts.map +1 -0
- package/lib/core/graph/builder/SwitchBuilder.js +152 -0
- package/lib/core/graph/builder/TrapBuilder.d.ts +17 -0
- package/lib/core/graph/builder/TrapBuilder.d.ts.map +1 -0
- package/lib/core/graph/builder/TrapBuilder.js +272 -0
- package/lib/core/model/ArkMethod.d.ts +1 -1
- package/lib/core/model/ArkMethod.js +1 -1
- package/lib/core/model/ArkSignature.d.ts +9 -1
- package/lib/core/model/ArkSignature.d.ts.map +1 -1
- package/lib/core/model/ArkSignature.js +17 -1
- package/lib/core/model/builder/ArkClassBuilder.d.ts.map +1 -1
- package/lib/core/model/builder/ArkClassBuilder.js +2 -1
- package/lib/core/model/builder/ArkMethodBuilder.js +1 -1
- package/lib/core/{common → model/builder}/BodyBuilder.d.ts +5 -5
- package/lib/core/model/builder/BodyBuilder.d.ts.map +1 -0
- package/lib/core/{common → model/builder}/BodyBuilder.js +12 -12
- package/lib/core/model/builder/builderUtils.d.ts.map +1 -1
- package/lib/core/model/builder/builderUtils.js +31 -5
- package/lib/save/JsonPrinter.d.ts +1 -1
- package/lib/save/JsonPrinter.d.ts.map +1 -1
- package/lib/save/JsonPrinter.js +2 -2
- package/lib/save/PrinterBuilder.d.ts +22 -0
- package/lib/save/PrinterBuilder.d.ts.map +1 -1
- package/lib/save/PrinterBuilder.js +54 -1
- package/lib/save/arkir/ArkIRClassPrinter.d.ts +14 -0
- package/lib/save/arkir/ArkIRClassPrinter.d.ts.map +1 -0
- package/lib/save/arkir/ArkIRClassPrinter.js +92 -0
- package/lib/save/arkir/ArkIRFieldPrinter.d.ts +12 -0
- package/lib/save/arkir/ArkIRFieldPrinter.d.ts.map +1 -0
- package/lib/save/arkir/ArkIRFieldPrinter.js +64 -0
- package/lib/save/arkir/ArkIRFilePrinter.d.ts +13 -0
- package/lib/save/arkir/ArkIRFilePrinter.d.ts.map +1 -0
- package/lib/save/arkir/ArkIRFilePrinter.js +54 -0
- package/lib/save/arkir/ArkIRMethodPrinter.d.ts +17 -0
- package/lib/save/arkir/ArkIRMethodPrinter.d.ts.map +1 -0
- package/lib/save/arkir/ArkIRMethodPrinter.js +159 -0
- package/lib/save/arkir/ArkIRNamespacePrinter.d.ts +12 -0
- package/lib/save/arkir/ArkIRNamespacePrinter.d.ts.map +1 -0
- package/lib/save/arkir/ArkIRNamespacePrinter.js +66 -0
- package/lib/save/base/BasePrinter.d.ts +24 -0
- package/lib/save/base/BasePrinter.d.ts.map +1 -0
- package/lib/save/base/BasePrinter.js +70 -0
- package/lib/save/base/ExportPrinter.d.ts +9 -0
- package/lib/save/base/ExportPrinter.d.ts.map +1 -0
- package/lib/save/base/ExportPrinter.js +67 -0
- package/lib/save/base/ImportPrinter.d.ts +10 -0
- package/lib/save/base/ImportPrinter.d.ts.map +1 -0
- package/lib/save/base/ImportPrinter.js +92 -0
- package/lib/save/{source/SourceUtils.d.ts → base/PrinterUtils.d.ts} +2 -2
- package/lib/save/{source/SourceUtils.d.ts.map → base/PrinterUtils.d.ts.map} +1 -1
- package/lib/save/{source/SourceUtils.js → base/PrinterUtils.js} +10 -10
- package/lib/save/source/SourceBase.d.ts +2 -11
- package/lib/save/source/SourceBase.d.ts.map +1 -1
- package/lib/save/source/SourceBase.js +3 -25
- package/lib/save/source/SourceBody.js +3 -3
- package/lib/save/source/SourceClass.d.ts +2 -1
- package/lib/save/source/SourceClass.d.ts.map +1 -1
- package/lib/save/source/SourceClass.js +18 -17
- package/lib/save/source/SourceFilePrinter.d.ts +1 -1
- package/lib/save/source/SourceFilePrinter.d.ts.map +1 -1
- package/lib/save/source/SourceFilePrinter.js +9 -10
- package/lib/save/source/SourceMethod.d.ts +1 -1
- package/lib/save/source/SourceMethod.d.ts.map +1 -1
- package/lib/save/source/SourceMethod.js +37 -22
- package/lib/save/source/SourceNamespace.d.ts.map +1 -1
- package/lib/save/source/SourceNamespace.js +6 -6
- package/lib/save/source/SourceStmt.d.ts +1 -1
- package/lib/save/source/SourceStmt.d.ts.map +1 -1
- package/lib/save/source/SourceStmt.js +29 -42
- package/lib/save/source/SourceTransformer.d.ts +3 -1
- package/lib/save/source/SourceTransformer.d.ts.map +1 -1
- package/lib/save/source/SourceTransformer.js +65 -29
- package/package.json +1 -1
- package/lib/core/common/BodyBuilder.d.ts.map +0 -1
- package/lib/core/common/CfgBuilder.d.ts.map +0 -1
- package/lib/core/common/CfgBuilder.js +0 -1886
- package/lib/save/source/SourceModule.d.ts +0 -16
- package/lib/save/source/SourceModule.d.ts.map +0 -1
- package/lib/save/source/SourceModule.js +0 -125
|
@@ -199,7 +199,7 @@ export declare class Pag extends BaseExplicitGraph {
|
|
|
199
199
|
getCG(): CallGraph;
|
|
200
200
|
getOrClonePagNode(src: PagNode, basePt: NodeID): PagNode;
|
|
201
201
|
getOrClonePagFieldNode(src: PagInstanceFieldNode, basePt: NodeID): PagInstanceFieldNode | undefined;
|
|
202
|
-
getOrClonePagContainerFieldNode(basePt: NodeID, src?: PagArrayNode, base?: Local): PagInstanceFieldNode;
|
|
202
|
+
getOrClonePagContainerFieldNode(basePt: NodeID, src?: PagArrayNode, base?: Local): PagInstanceFieldNode | undefined;
|
|
203
203
|
addPagNode(cid: ContextID, value: PagNodeType, stmt?: Stmt, refresh?: boolean): PagNode;
|
|
204
204
|
private handleLocalNode;
|
|
205
205
|
private handleInstanceFieldNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pag.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/Pag.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Pag.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/Pag.ts"],"names":[],"mappings":"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"}
|
|
@@ -594,9 +594,18 @@ class Pag extends BaseExplicitGraph_1.BaseExplicitGraph {
|
|
|
594
594
|
fieldNode.setBasePt(basePt);
|
|
595
595
|
return fieldNode;
|
|
596
596
|
}
|
|
597
|
+
else if (baseNode instanceof PagNewExprNode) {
|
|
598
|
+
// In some cases, the value of a variable of array type may not be an explicit array object.
|
|
599
|
+
// For example, it could be a return value of a function (assuming that the call depth has
|
|
600
|
+
// exceeded the k-limit).
|
|
601
|
+
// In such situation, the `baseNode` will be a PagNewExprNode instead of a PagNewContainerExprNode,
|
|
602
|
+
// and a warning will be raised.
|
|
603
|
+
logger.warn(`[PTA]: Trying to clone an array from a PagNewExprNode instead of a PagNewContainerExprNode`);
|
|
604
|
+
}
|
|
597
605
|
else {
|
|
598
606
|
throw new Error(`Error clone array field node ${baseNode.getValue()}`);
|
|
599
607
|
}
|
|
608
|
+
return undefined;
|
|
600
609
|
}
|
|
601
610
|
addPagNode(cid, value, stmt, refresh = true) {
|
|
602
611
|
let id = this.nodeNum;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PagBuilder.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PagBuilder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PagBuilder.d.ts","sourceRoot":"","sources":["../../../src/callgraph/pointerAnalysis/PagBuilder.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAiB,QAAQ,EAAE,WAAW,EAAqB,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,IAAI,EAA+C,MAAM,sBAAsB,CAAA;AAExF,OAAO,EAA0F,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzI,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG9C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAM5D,OAAO,EAAE,SAAS,EAAuC,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,GAAG,EAAE,OAAO,EAA6B,OAAO,EAAoD,WAAW,EAA0C,YAAY,EAAuB,WAAW,EAA2B,MAAM,OAAO,CAAC;AACzP,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAOjC,qBAAa,QAAQ;IACV,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;gBACV,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM;CAI1C;AAED,qBAAa,UAAU;IACnB,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,aAAa,CAAC,CAA4B;IAClD,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,GAAG,CAA2B;IACtC,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,2BAA2B,CAAiC;IACpE,OAAO,CAAC,6BAA6B,CAAiC;IACtE,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,uBAAuB,CAAyD;IAExF,OAAO,CAAC,sBAAsB,CAAmC;IACjE,OAAO,CAAC,+BAA+B,CAAyD;IAChG,OAAO,CAAC,oBAAoB,CAA0B;IACtD,OAAO,CAAC,qBAAqB,CAAyC;IACtE,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,eAAe,CAAsC;IAC7D,OAAO,CAAC,iBAAiB,CAAC,CAAoB;IAC9C,OAAO,CAAC,kBAAkB,CAAmD;IAC7E,OAAO,CAAC,wBAAwB,CAAkC;gBAEtD,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;IAS3D,OAAO,CAAC,4BAA4B;IAcpC,OAAO,CAAC,6BAA6B;IAQ9B,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAaxC,eAAe,IAAI,OAAO;IAe1B,KAAK,IAAI,IAAI;IAUb,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAoF5C;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBhB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS;IAsBlD,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO;IAsB9D,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO;IA+B1E;;;OAGG;IACH,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,yBAAyB;IAajC,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,eAAe;IAahB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IAoCnD,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAiC1D,kBAAkB,CAAC,EAAE,EAAE,WAAW,GAAG,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,EAAE;IAsCxG,OAAO,CAAC,gBAAgB;IAwDjB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IAMrD,eAAe;IAIf,iBAAiB;IAIjB,uBAAuB,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,EAAE;IAqDlE,0BAA0B,CAAC,kBAAkB,EAAE,GAAG,CAAC,WAAW,CAAC,GAAG,MAAM,EAAE;IAmCjF,OAAO,CAAC,kBAAkB;IA2CnB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,MAAM,EAAE;IAqFhG,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,yBAAyB;IA0BjC,OAAO,CAAC,wBAAwB;IAwDhC,OAAO,CAAC,2BAA2B;IAiC5B,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;IAyBzE;;;OAGG;IACI,mBAAmB,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO;IAY3D,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;IAWjE,sBAAsB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO;IAI/C,oBAAoB,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS;IAI/D;;;;;OAKG;IACI,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO;IAerF,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,GAAG,SAAS;IAoBnG;;;;;OAKG;IACI,mBAAmB,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IA6BpH,kBAAkB,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK;IAkC1C;;;OAGG;IACI,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IA+BnD,OAAO,CAAC,gBAAgB;IA2CxB,OAAO,CAAC,UAAU;IA0BX,kBAAkB,IAAI,KAAK;IAIlC,OAAO,CAAC,wBAAwB;IAoBhC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,cAAc;IAWf,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,GAAG,IAAI;IAO7D,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,IAAI;IAQjE,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK;IAiBrD,MAAM,IAAI,IAAI;IAId,SAAS,IAAI,IAAI;IAIjB,OAAO,IAAI,MAAM;IAIjB,iBAAiB,IAAI,MAAM,EAAE;IAQ7B,eAAe,IAAI,MAAM,EAAE;IAIlC;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;IAyBpC,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,+BAA+B;IAWvC,OAAO,CAAC,2BAA2B;IA6BnC,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,oBAAoB;IAQrB,oBAAoB,CAAC,GAAG,EAAE,KAAK,GAAG,KAAK,EAAE;IAKzC,wBAAwB,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO;CAoBvF"}
|
|
@@ -869,8 +869,12 @@ class PagBuilder {
|
|
|
869
869
|
const containerValueProcess = (argIndex) => {
|
|
870
870
|
let srcNode = this.pag.getOrNewNode(cid, cs.args[argIndex], cs.callStmt);
|
|
871
871
|
let realContainerFieldPagNode = this.pag.getOrClonePagContainerFieldNode(baseClassPTNode, undefined, containerValue);
|
|
872
|
-
|
|
873
|
-
|
|
872
|
+
if (realContainerFieldPagNode) {
|
|
873
|
+
// In some cases, the value of a variable of array type may not be an explicit array object,
|
|
874
|
+
// and the value of `realContainerFieldPagNode` will be undefined.
|
|
875
|
+
this.pag.addPagEdge(srcNode, realContainerFieldPagNode, Pag_1.PagEdgeKind.Copy, cs.callStmt);
|
|
876
|
+
srcNodes.push(srcNode.getID());
|
|
877
|
+
}
|
|
874
878
|
};
|
|
875
879
|
if ((0, PTAUtils_1.IsCollectionSetAdd)(calleeMethod.getSignature())) {
|
|
876
880
|
containerValueProcess(0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Decorator.d.ts","sourceRoot":"","sources":["../../../src/core/base/Decorator.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,qBAAa,SAAS;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAM;IACrB,KAAK,EAAE,MAAM,CAAM;gBACP,IAAI,EAAE,MAAM;IAGjB,OAAO,IAAI,MAAM;IAGjB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAGjC,UAAU,IAAI,MAAM;IAGpB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAG7B,QAAQ,IAAI,MAAM;CAG5B"}
|
|
1
|
+
{"version":3,"file":"Decorator.d.ts","sourceRoot":"","sources":["../../../src/core/base/Decorator.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,qBAAa,SAAS;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAM;IACrB,KAAK,EAAE,MAAM,CAAM;gBACP,IAAI,EAAE,MAAM;IAGjB,OAAO,IAAI,MAAM;IAGjB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAGjC,UAAU,IAAI,MAAM;IAGpB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAG7B,QAAQ,IAAI,MAAM;IAGlB,QAAQ,IAAI,MAAM;CAG5B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
|
-
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
|
3
|
+
* Copyright (c) 2024-2025 Huawei Device Co., Ltd.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
6
6
|
* You may obtain a copy of the License at
|
|
@@ -39,5 +39,8 @@ class Decorator {
|
|
|
39
39
|
getParam() {
|
|
40
40
|
return this.param;
|
|
41
41
|
}
|
|
42
|
+
toString() {
|
|
43
|
+
return `@${this.content}`;
|
|
44
|
+
}
|
|
42
45
|
}
|
|
43
46
|
exports.Decorator = Decorator;
|
package/lib/core/base/Type.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AliasTypeSignature, ClassSignature, MethodSignature, NamespaceSignature } from '../model/ArkSignature';
|
|
2
2
|
import { ArkExport, ExportType } from '../model/ArkExport';
|
|
3
3
|
import { ModifierType } from '../model/ArkBaseModel';
|
|
4
4
|
import { Local } from './Local';
|
|
@@ -110,6 +110,16 @@ export declare class UnionType extends Type {
|
|
|
110
110
|
getTypeString(): string;
|
|
111
111
|
flatType(): Type[];
|
|
112
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* intersection type
|
|
115
|
+
* @category core/base/type
|
|
116
|
+
*/
|
|
117
|
+
export declare class IntersectionType extends Type {
|
|
118
|
+
private types;
|
|
119
|
+
constructor(types: Type[]);
|
|
120
|
+
getTypes(): Type[];
|
|
121
|
+
getTypeString(): string;
|
|
122
|
+
}
|
|
113
123
|
/**
|
|
114
124
|
* types for function void return type
|
|
115
125
|
* @category core/base/type
|
|
@@ -162,9 +172,23 @@ export declare class ClassType extends Type {
|
|
|
162
172
|
setRealGenericTypes(types: Type[] | undefined): void;
|
|
163
173
|
getTypeString(): string;
|
|
164
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* Array type
|
|
177
|
+
* @category core/base/type
|
|
178
|
+
* @extends Type
|
|
179
|
+
* @example
|
|
180
|
+
```typescript
|
|
181
|
+
// baseType is number, dimension is 1, readonlyFlag is true
|
|
182
|
+
let a: readonly number[] = [1, 2, 3];
|
|
183
|
+
|
|
184
|
+
// baseType is number, dimension is 1, readonlyFlag is undefined
|
|
185
|
+
let a: number[] = [1, 2, 3];
|
|
186
|
+
```
|
|
187
|
+
*/
|
|
165
188
|
export declare class ArrayType extends Type {
|
|
166
189
|
private baseType;
|
|
167
190
|
private dimension;
|
|
191
|
+
private readonlyFlag?;
|
|
168
192
|
constructor(baseType: Type, dimension: number);
|
|
169
193
|
/**
|
|
170
194
|
* Returns the base type of this array, such as `Any`, `Unknown`, `TypeParameter`, etc.
|
|
@@ -173,12 +197,30 @@ export declare class ArrayType extends Type {
|
|
|
173
197
|
getBaseType(): Type;
|
|
174
198
|
setBaseType(newType: Type): void;
|
|
175
199
|
getDimension(): number;
|
|
200
|
+
setReadonlyFlag(readonlyFlag: boolean): void;
|
|
201
|
+
getReadonlyFlag(): boolean | undefined;
|
|
176
202
|
getTypeString(): string;
|
|
177
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Tuple type
|
|
206
|
+
* @category core/base/type
|
|
207
|
+
* @extends Type
|
|
208
|
+
* @example
|
|
209
|
+
```typescript
|
|
210
|
+
// types are number and string, dimension is 1, readonlyFlag is true
|
|
211
|
+
let a: readonly number[] = [1, 2, 3];
|
|
212
|
+
|
|
213
|
+
// baseType is number, dimension is 1, readonlyFlag is undefined
|
|
214
|
+
let a: number[] = [1, 2, 3];
|
|
215
|
+
```
|
|
216
|
+
*/
|
|
178
217
|
export declare class TupleType extends Type {
|
|
179
218
|
private types;
|
|
219
|
+
private readonlyFlag?;
|
|
180
220
|
constructor(types: Type[]);
|
|
181
221
|
getTypes(): Type[];
|
|
222
|
+
setReadonlyFlag(readonlyFlag: boolean): void;
|
|
223
|
+
getReadonlyFlag(): boolean | undefined;
|
|
182
224
|
getTypeString(): string;
|
|
183
225
|
}
|
|
184
226
|
/**
|
|
@@ -206,7 +248,7 @@ export declare class AliasType extends Type implements ArkExport {
|
|
|
206
248
|
protected modifiers?: number;
|
|
207
249
|
private genericTypes?;
|
|
208
250
|
private realGenericTypes?;
|
|
209
|
-
constructor(name: string, originalType: Type, signature:
|
|
251
|
+
constructor(name: string, originalType: Type, signature: AliasTypeSignature, genericTypes?: GenericType[]);
|
|
210
252
|
getName(): string;
|
|
211
253
|
setOriginalType(type: Type): void;
|
|
212
254
|
getOriginalType(): Type;
|
|
@@ -217,7 +259,7 @@ export declare class AliasType extends Type implements ArkExport {
|
|
|
217
259
|
setModifiers(modifiers: number): void;
|
|
218
260
|
addModifier(modifier: ModifierType | number): void;
|
|
219
261
|
removeModifier(modifier: ModifierType): void;
|
|
220
|
-
getSignature():
|
|
262
|
+
getSignature(): AliasTypeSignature;
|
|
221
263
|
setGenericTypes(genericTypes: GenericType[]): void;
|
|
222
264
|
getGenericTypes(): GenericType[] | undefined;
|
|
223
265
|
setRealGenericTypes(realGenericTypes: Type[]): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Type.d.ts","sourceRoot":"","sources":["../../../src/core/base/Type.ts"],"names":[],"mappings":"AAeA,OAAO,
|
|
1
|
+
{"version":3,"file":"Type.d.ts","sourceRoot":"","sources":["../../../src/core/base/Type.ts"],"names":[],"mappings":"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"}
|
package/lib/core/base/Type.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
|
-
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
|
3
|
+
* Copyright (c) 2024-2025 Huawei Device Co., Ltd.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
6
6
|
* You may obtain a copy of the License at
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.LexicalEnvType = exports.AnnotationTypeQueryType = exports.AnnotationNamespaceType = exports.AnnotationType = exports.GenericType = exports.AliasType = exports.TupleType = exports.ArrayType = exports.ClassType = exports.ClosureType = exports.FunctionType = exports.NeverType = exports.VoidType = exports.UnionType = exports.LiteralType = exports.UndefinedType = exports.NullType = exports.StringType = exports.NumberType = exports.BooleanType = exports.PrimitiveType = exports.UnclearReferenceType = exports.UnknownType = exports.AnyType = exports.Type = void 0;
|
|
17
|
+
exports.LexicalEnvType = exports.AnnotationTypeQueryType = exports.AnnotationNamespaceType = exports.AnnotationType = exports.GenericType = exports.AliasType = exports.TupleType = exports.ArrayType = exports.ClassType = exports.ClosureType = exports.FunctionType = exports.NeverType = exports.VoidType = exports.IntersectionType = exports.UnionType = exports.LiteralType = exports.UndefinedType = exports.NullType = exports.StringType = exports.NumberType = exports.BooleanType = exports.PrimitiveType = exports.UnclearReferenceType = exports.UnknownType = exports.AnyType = exports.Type = void 0;
|
|
18
18
|
const ArkSignature_1 = require("../model/ArkSignature");
|
|
19
19
|
const ArkExport_1 = require("../model/ArkExport");
|
|
20
20
|
const ArkBaseModel_1 = require("../model/ArkBaseModel");
|
|
@@ -201,8 +201,18 @@ class UnionType extends Type {
|
|
|
201
201
|
this.currType = newType;
|
|
202
202
|
}
|
|
203
203
|
getTypeString() {
|
|
204
|
-
|
|
204
|
+
let typesString = [];
|
|
205
|
+
this.getTypes().forEach((t) => {
|
|
206
|
+
if (t instanceof UnionType || t instanceof IntersectionType) {
|
|
207
|
+
typesString.push(`(${t.toString()})`);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
typesString.push(t.toString());
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
return typesString.join('|');
|
|
205
214
|
}
|
|
215
|
+
// TODO: Need to remove this function because of IntersectionType has been added.
|
|
206
216
|
flatType() {
|
|
207
217
|
const result = [];
|
|
208
218
|
this.types.forEach(t => {
|
|
@@ -217,6 +227,32 @@ class UnionType extends Type {
|
|
|
217
227
|
}
|
|
218
228
|
}
|
|
219
229
|
exports.UnionType = UnionType;
|
|
230
|
+
/**
|
|
231
|
+
* intersection type
|
|
232
|
+
* @category core/base/type
|
|
233
|
+
*/
|
|
234
|
+
class IntersectionType extends Type {
|
|
235
|
+
constructor(types) {
|
|
236
|
+
super();
|
|
237
|
+
this.types = [...types];
|
|
238
|
+
}
|
|
239
|
+
getTypes() {
|
|
240
|
+
return this.types;
|
|
241
|
+
}
|
|
242
|
+
getTypeString() {
|
|
243
|
+
let typesString = [];
|
|
244
|
+
this.getTypes().forEach((t) => {
|
|
245
|
+
if (t instanceof UnionType || t instanceof IntersectionType) {
|
|
246
|
+
typesString.push(`(${t.toString()})`);
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
typesString.push(t.toString());
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
return typesString.join('&');
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
exports.IntersectionType = IntersectionType;
|
|
220
256
|
/**
|
|
221
257
|
* types for function void return type
|
|
222
258
|
* @category core/base/type
|
|
@@ -318,6 +354,19 @@ class ClassType extends Type {
|
|
|
318
354
|
}
|
|
319
355
|
}
|
|
320
356
|
exports.ClassType = ClassType;
|
|
357
|
+
/**
|
|
358
|
+
* Array type
|
|
359
|
+
* @category core/base/type
|
|
360
|
+
* @extends Type
|
|
361
|
+
* @example
|
|
362
|
+
```typescript
|
|
363
|
+
// baseType is number, dimension is 1, readonlyFlag is true
|
|
364
|
+
let a: readonly number[] = [1, 2, 3];
|
|
365
|
+
|
|
366
|
+
// baseType is number, dimension is 1, readonlyFlag is undefined
|
|
367
|
+
let a: number[] = [1, 2, 3];
|
|
368
|
+
```
|
|
369
|
+
*/
|
|
321
370
|
class ArrayType extends Type {
|
|
322
371
|
constructor(baseType, dimension) {
|
|
323
372
|
super();
|
|
@@ -337,9 +386,18 @@ class ArrayType extends Type {
|
|
|
337
386
|
getDimension() {
|
|
338
387
|
return this.dimension;
|
|
339
388
|
}
|
|
389
|
+
setReadonlyFlag(readonlyFlag) {
|
|
390
|
+
this.readonlyFlag = readonlyFlag;
|
|
391
|
+
}
|
|
392
|
+
getReadonlyFlag() {
|
|
393
|
+
return this.readonlyFlag;
|
|
394
|
+
}
|
|
340
395
|
getTypeString() {
|
|
341
396
|
const strs = [];
|
|
342
|
-
if (this.
|
|
397
|
+
if (this.getReadonlyFlag()) {
|
|
398
|
+
strs.push('readonly ');
|
|
399
|
+
}
|
|
400
|
+
if (this.baseType instanceof UnionType || this.baseType instanceof IntersectionType) {
|
|
343
401
|
strs.push('(' + this.baseType.toString() + ')');
|
|
344
402
|
}
|
|
345
403
|
else if (this.baseType) {
|
|
@@ -352,6 +410,19 @@ class ArrayType extends Type {
|
|
|
352
410
|
}
|
|
353
411
|
}
|
|
354
412
|
exports.ArrayType = ArrayType;
|
|
413
|
+
/**
|
|
414
|
+
* Tuple type
|
|
415
|
+
* @category core/base/type
|
|
416
|
+
* @extends Type
|
|
417
|
+
* @example
|
|
418
|
+
```typescript
|
|
419
|
+
// types are number and string, dimension is 1, readonlyFlag is true
|
|
420
|
+
let a: readonly number[] = [1, 2, 3];
|
|
421
|
+
|
|
422
|
+
// baseType is number, dimension is 1, readonlyFlag is undefined
|
|
423
|
+
let a: number[] = [1, 2, 3];
|
|
424
|
+
```
|
|
425
|
+
*/
|
|
355
426
|
class TupleType extends Type {
|
|
356
427
|
constructor(types) {
|
|
357
428
|
super();
|
|
@@ -360,7 +431,16 @@ class TupleType extends Type {
|
|
|
360
431
|
getTypes() {
|
|
361
432
|
return this.types;
|
|
362
433
|
}
|
|
434
|
+
setReadonlyFlag(readonlyFlag) {
|
|
435
|
+
this.readonlyFlag = readonlyFlag;
|
|
436
|
+
}
|
|
437
|
+
getReadonlyFlag() {
|
|
438
|
+
return this.readonlyFlag;
|
|
439
|
+
}
|
|
363
440
|
getTypeString() {
|
|
441
|
+
if (this.getReadonlyFlag()) {
|
|
442
|
+
return 'readonly [' + this.types.join(', ') + ']';
|
|
443
|
+
}
|
|
364
444
|
return '[' + this.types.join(', ') + ']';
|
|
365
445
|
}
|
|
366
446
|
}
|
|
@@ -43,6 +43,7 @@ export declare class ArkIRTransformer {
|
|
|
43
43
|
private addInvokeStmts;
|
|
44
44
|
private shouldGenerateExtraAssignStmt;
|
|
45
45
|
private typeAliasDeclarationToStmts;
|
|
46
|
+
private generateAliasTypeExpr;
|
|
46
47
|
private resolveImportTypeNode;
|
|
47
48
|
switchStatementToValueAndStmts(switchStatement: ts.SwitchStatement): ValueAndStmts[];
|
|
48
49
|
private forStatementToStmts;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkIRTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkIRTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,EAOH,cAAc,EAGd,aAAa,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAA2E,SAAS,EAAE,MAAM,aAAa,CAAC;AACjH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EACH,sBAAsB,EAOtB,IAAI,EACP,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAmE,MAAM,cAAc,CAAC;AAW1G,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAU/C,OAAO,EAAE,YAAY,EAAmB,MAAM,kBAAkB,CAAC;AASjE,MAAM,MAAM,aAAa,GAAG;IACxB,KAAK,EAAE,KAAK,CAAC;IACb,sBAAsB,EAAE,YAAY,EAAE,CAAC;IACvC,KAAK,EAAE,IAAI,EAAE,CAAA;CAChB,CAAC;AAEF,qBAAa,SAAU,SAAQ,IAAI;gBACnB,IAAI,EAAE,MAAM;IAKjB,QAAQ,IAAI,MAAM;CAG5B;AAED,qBAAa,gBAAgB;IACzB,gBAAuB,2BAA2B,qBAAqB;IACvE,gBAAuB,0BAA0B,yBAAyB;IAC1E,gBAAuB,uCAAuC,SAA0D;IACxH,gBAAuB,wCAAwC,SAA2D;IAC1H,gBAAuB,mCAAmC,SAAuD;IAEjH,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,eAAe,CAAY;IACnC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,mBAAmB,CAAsB;gBAErC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,SAAS;IAO1D,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC;IAIvB,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAI3C,YAAY,IAAI,KAAK;IAIrB,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;IAInE,aAAa,IAAI,IAAI,EAAE;IAgBvB,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,EAAE;IA2CpC,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,aAAa;IAI1D,OAAO,CAAC,0BAA0B;IAUlC,OAAO,CAAC,sBAAsB;IA0B9B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,0BAA0B;IAgBlC,OAAO,CAAC,cAAc;IA0BtB,OAAO,CAAC,6BAA6B;IAoBrC,OAAO,CAAC,2BAA2B;
|
|
1
|
+
{"version":3,"file":"ArkIRTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkIRTransformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/*
|
|
3
|
-
* Copyright (c) 2024 Huawei Device Co., Ltd.
|
|
3
|
+
* Copyright (c) 2024-2025 Huawei Device Co., Ltd.
|
|
4
4
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
* you may not use this file except in compliance with the License.
|
|
6
6
|
* You may obtain a copy of the License at
|
|
@@ -254,17 +254,37 @@ class ArkIRTransformer {
|
|
|
254
254
|
return true;
|
|
255
255
|
}
|
|
256
256
|
typeAliasDeclarationToStmts(typeAliasDeclaration) {
|
|
257
|
-
var _a;
|
|
258
257
|
const aliasName = typeAliasDeclaration.name.text;
|
|
259
258
|
const rightOp = typeAliasDeclaration.type;
|
|
260
259
|
let rightType = this.arkValueTransformer.resolveTypeNode(rightOp);
|
|
261
|
-
const aliasType = new Type_1.AliasType(aliasName, rightType, new ArkSignature_1.
|
|
260
|
+
const aliasType = new Type_1.AliasType(aliasName, rightType, new ArkSignature_1.AliasTypeSignature(aliasName, this.declaringMethod.getSignature()));
|
|
262
261
|
if (typeAliasDeclaration.typeParameters) {
|
|
263
262
|
const genericTypes = (0, builderUtils_1.buildTypeParameters)(typeAliasDeclaration.typeParameters, this.sourceFile, this.declaringMethod);
|
|
264
263
|
aliasType.setGenericTypes(genericTypes);
|
|
265
264
|
aliasType.setOriginalType((0, builderUtils_1.buildGenericType)(rightType, aliasType));
|
|
266
265
|
rightType = aliasType.getOriginalType();
|
|
267
266
|
}
|
|
267
|
+
let expr = this.generateAliasTypeExpr(rightOp, aliasType);
|
|
268
|
+
if ((ts.isTypeQueryNode(rightOp) || ts.isTypeReferenceNode(rightOp)) && rightOp.typeArguments) {
|
|
269
|
+
let realGenericTypes = [];
|
|
270
|
+
rightOp.typeArguments.forEach(typeArgument => {
|
|
271
|
+
realGenericTypes.push(this.arkValueTransformer.resolveTypeNode(typeArgument));
|
|
272
|
+
});
|
|
273
|
+
expr.setRealGenericTypes(realGenericTypes);
|
|
274
|
+
}
|
|
275
|
+
const modifiers = typeAliasDeclaration.modifiers ? (0, builderUtils_1.buildModifiers)(typeAliasDeclaration) : 0;
|
|
276
|
+
aliasType.setModifiers(modifiers);
|
|
277
|
+
const aliasTypeDefineStmt = new Stmt_1.ArkAliasTypeDefineStmt(aliasType, expr);
|
|
278
|
+
const leftPosition = Position_1.FullPosition.buildFromNode(typeAliasDeclaration.name, this.sourceFile);
|
|
279
|
+
const rightPosition = Position_1.FullPosition.buildFromNode(rightOp, this.sourceFile);
|
|
280
|
+
const operandOriginalPositions = [leftPosition, rightPosition];
|
|
281
|
+
aliasTypeDefineStmt.setOperandOriginalPositions(operandOriginalPositions);
|
|
282
|
+
this.getAliasTypeMap().set(aliasName, [aliasType, aliasTypeDefineStmt]);
|
|
283
|
+
return [aliasTypeDefineStmt];
|
|
284
|
+
}
|
|
285
|
+
generateAliasTypeExpr(rightOp, aliasType) {
|
|
286
|
+
var _a;
|
|
287
|
+
let rightType = aliasType.getOriginalType();
|
|
268
288
|
let expr;
|
|
269
289
|
if (ts.isImportTypeNode(rightOp)) {
|
|
270
290
|
expr = this.resolveImportTypeNode(rightOp);
|
|
@@ -285,10 +305,18 @@ class ArkIRTransformer {
|
|
|
285
305
|
expr = new Expr_1.AliasTypeExpr(originalLocal, true);
|
|
286
306
|
}
|
|
287
307
|
}
|
|
288
|
-
else if (ts.isTypeReferenceNode(rightOp)
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
308
|
+
else if (ts.isTypeReferenceNode(rightOp)) {
|
|
309
|
+
// For type A = B<number> stmt and B is also an alias type with the same scope of A,
|
|
310
|
+
// rightType here is AliasType with real generic type number.
|
|
311
|
+
// The originalObject in expr should be the object without real generic type, so try to find it in this scope.
|
|
312
|
+
if (rightType instanceof Type_1.AliasType) {
|
|
313
|
+
const existAliasType = this.getAliasTypeMap().get(rightType.getName());
|
|
314
|
+
if (existAliasType) {
|
|
315
|
+
expr = new Expr_1.AliasTypeExpr(existAliasType[0], false);
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
expr = new Expr_1.AliasTypeExpr(rightType, false);
|
|
319
|
+
}
|
|
292
320
|
}
|
|
293
321
|
else {
|
|
294
322
|
expr = new Expr_1.AliasTypeExpr(rightType, false);
|
|
@@ -305,22 +333,7 @@ class ArkIRTransformer {
|
|
|
305
333
|
}
|
|
306
334
|
}
|
|
307
335
|
}
|
|
308
|
-
|
|
309
|
-
let realGenericTypes = [];
|
|
310
|
-
rightOp.typeArguments.forEach(typeArgument => {
|
|
311
|
-
realGenericTypes.push(this.arkValueTransformer.resolveTypeNode(typeArgument));
|
|
312
|
-
});
|
|
313
|
-
expr.setRealGenericTypes(realGenericTypes);
|
|
314
|
-
}
|
|
315
|
-
const modifiers = typeAliasDeclaration.modifiers ? (0, builderUtils_1.buildModifiers)(typeAliasDeclaration) : 0;
|
|
316
|
-
aliasType.setModifiers(modifiers);
|
|
317
|
-
const aliasTypeDefineStmt = new Stmt_1.ArkAliasTypeDefineStmt(aliasType, expr);
|
|
318
|
-
const leftPosition = Position_1.FullPosition.buildFromNode(typeAliasDeclaration.name, this.sourceFile);
|
|
319
|
-
const rightPosition = Position_1.FullPosition.buildFromNode(rightOp, this.sourceFile);
|
|
320
|
-
const operandOriginalPositions = [leftPosition, rightPosition];
|
|
321
|
-
aliasTypeDefineStmt.setOperandOriginalPositions(operandOriginalPositions);
|
|
322
|
-
this.getAliasTypeMap().set(aliasName, [aliasType, aliasTypeDefineStmt]);
|
|
323
|
-
return [aliasTypeDefineStmt];
|
|
336
|
+
return expr;
|
|
324
337
|
}
|
|
325
338
|
resolveImportTypeNode(importTypeNode) {
|
|
326
339
|
const importType = 'typeAliasDefine';
|
|
@@ -383,6 +396,12 @@ class ArkIRTransformer {
|
|
|
383
396
|
conditionStmts.forEach(stmt => stmts.push(stmt));
|
|
384
397
|
stmts.push(new Stmt_1.ArkIfStmt(conditionValue));
|
|
385
398
|
}
|
|
399
|
+
else {
|
|
400
|
+
// The omitted condition always evaluates to true.
|
|
401
|
+
const trueConstant = ValueUtil_1.ValueUtil.getBooleanConstant(true);
|
|
402
|
+
const conditionExpr = new Expr_1.ArkConditionExpr(trueConstant, trueConstant, Expr_1.RelationalBinaryOperator.Equality);
|
|
403
|
+
stmts.push(new Stmt_1.ArkIfStmt(conditionExpr));
|
|
404
|
+
}
|
|
386
405
|
if (forStatement.incrementor) {
|
|
387
406
|
this.tsNodeToValueAndStmts(forStatement.incrementor).stmts.forEach(stmt => stmts.push(stmt));
|
|
388
407
|
}
|
|
@@ -79,6 +79,7 @@ export declare class ArkValueTransformer {
|
|
|
79
79
|
private isLiteralNode;
|
|
80
80
|
resolveTypeNode(type: ts.TypeNode): Type;
|
|
81
81
|
private resolveTypeQueryNode;
|
|
82
|
+
private resolveTypeOperatorNode;
|
|
82
83
|
static resolveLiteralTypeNode(literalTypeNode: ts.LiteralTypeNode, sourceFile: ts.SourceFile): Type;
|
|
83
84
|
private resolveTemplateLiteralTypeNode;
|
|
84
85
|
private resolveTypeReferenceNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkValueTransformer.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,sBAAsB,EAAiD,MAAM,cAAc,CAAC;AAuBrG,OAAO,EACH,SAAS,
|
|
1
|
+
{"version":3,"file":"ArkValueTransformer.d.ts","sourceRoot":"","sources":["../../../src/core/common/ArkValueTransformer.ts"],"names":[],"mappings":"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"}
|