@lcap/nasl-language-server-core 4.0.1-rc.1 → 4.0.1-rc.3

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 (121) hide show
  1. package/out/checker.d.ts +1 -1
  2. package/out/checker.d.ts.map +1 -1
  3. package/out/checker.js +24 -3
  4. package/out/checker.js.map +1 -1
  5. package/out/index.d.ts +2 -1
  6. package/out/index.d.ts.map +1 -1
  7. package/out/index.js +4 -1
  8. package/out/index.js.map +1 -1
  9. package/out/reference-manager/builtin-q-name.d.ts +1 -1
  10. package/out/reference-manager/builtin-q-name.d.ts.map +1 -1
  11. package/out/reference-manager/builtin-q-name.js +14 -10
  12. package/out/reference-manager/builtin-q-name.js.map +1 -1
  13. package/out/reference-manager/collect-q-name.d.ts +2 -3
  14. package/out/reference-manager/collect-q-name.d.ts.map +1 -1
  15. package/out/reference-manager/collect-q-name.js +29 -28
  16. package/out/reference-manager/collect-q-name.js.map +1 -1
  17. package/out/reference-manager/get-q-name.d.ts +0 -2
  18. package/out/reference-manager/get-q-name.d.ts.map +1 -1
  19. package/out/reference-manager/get-q-name.js +56 -57
  20. package/out/reference-manager/get-q-name.js.map +1 -1
  21. package/out/reference-manager/reference-manager.d.ts +21 -11
  22. package/out/reference-manager/reference-manager.d.ts.map +1 -1
  23. package/out/reference-manager/reference-manager.js +192 -101
  24. package/out/reference-manager/reference-manager.js.map +1 -1
  25. package/out/reference-manager/remove-q-name.d.ts +1 -2
  26. package/out/reference-manager/remove-q-name.d.ts.map +1 -1
  27. package/out/reference-manager/remove-q-name.js +33 -29
  28. package/out/reference-manager/remove-q-name.js.map +1 -1
  29. package/out/reference-manager/rename-q-name.d.ts +2 -1
  30. package/out/reference-manager/rename-q-name.d.ts.map +1 -1
  31. package/out/reference-manager/rename-q-name.js +13 -3
  32. package/out/reference-manager/rename-q-name.js.map +1 -1
  33. package/out/reference-manager/symbol-type.d.ts +5 -3
  34. package/out/reference-manager/symbol-type.d.ts.map +1 -1
  35. package/out/reference-manager/symbol-type.js +8 -3
  36. package/out/reference-manager/symbol-type.js.map +1 -1
  37. package/out/reference-manager/update-nasl-fragment.d.ts.map +1 -1
  38. package/out/reference-manager/update-nasl-fragment.js +4 -4
  39. package/out/reference-manager/update-nasl-fragment.js.map +1 -1
  40. package/out/typer/collectGlobalDefs.d.ts +1 -1
  41. package/out/typer/collectGlobalDefs.d.ts.map +1 -1
  42. package/out/typer/collectGlobalDefs.js +2 -2
  43. package/out/typer/collectGlobalDefs.js.map +1 -1
  44. package/out/typer/component-def-manager/component-def-manager.d.ts +1 -0
  45. package/out/typer/component-def-manager/component-def-manager.d.ts.map +1 -1
  46. package/out/typer/component-def-manager/component-def-manager.js +5 -2
  47. package/out/typer/component-def-manager/component-def-manager.js.map +1 -1
  48. package/out/typer/dispatch-all.d.ts +1 -1
  49. package/out/typer/dispatch-all.d.ts.map +1 -1
  50. package/out/typer/dispatch-all.js +2 -2
  51. package/out/typer/dispatch-all.js.map +1 -1
  52. package/out/typer/dispatch-def.d.ts.map +1 -1
  53. package/out/typer/dispatch-def.js +3 -0
  54. package/out/typer/dispatch-def.js.map +1 -1
  55. package/out/typer/dispatch-expr.d.ts.map +1 -1
  56. package/out/typer/dispatch-expr.js +149 -112
  57. package/out/typer/dispatch-expr.js.map +1 -1
  58. package/out/typer/dispatch-process.d.ts.map +1 -1
  59. package/out/typer/dispatch-process.js +17 -5
  60. package/out/typer/dispatch-process.js.map +1 -1
  61. package/out/typer/dispatch-view.d.ts +1 -1
  62. package/out/typer/dispatch-view.d.ts.map +1 -1
  63. package/out/typer/dispatch-view.js +32 -14
  64. package/out/typer/dispatch-view.js.map +1 -1
  65. package/out/typer/helper.d.ts +0 -2
  66. package/out/typer/helper.d.ts.map +1 -1
  67. package/out/typer/helper.js +1 -16
  68. package/out/typer/helper.js.map +1 -1
  69. package/out/typer/incremental-update.d.ts.map +1 -1
  70. package/out/typer/incremental-update.js +28 -44
  71. package/out/typer/incremental-update.js.map +1 -1
  72. package/out/typer/index.d.ts +2 -1
  73. package/out/typer/index.d.ts.map +1 -1
  74. package/out/typer/index.js +3 -1
  75. package/out/typer/index.js.map +1 -1
  76. package/out/typer/nasl-predicate.d.ts +1 -2
  77. package/out/typer/nasl-predicate.d.ts.map +1 -1
  78. package/out/typer/overload-helper.d.ts +12 -0
  79. package/out/typer/overload-helper.d.ts.map +1 -0
  80. package/out/typer/overload-helper.js +110 -0
  81. package/out/typer/overload-helper.js.map +1 -0
  82. package/out/typer/sem-diag.d.ts +4 -0
  83. package/out/typer/sem-diag.d.ts.map +1 -1
  84. package/out/typer/sem-diag.js +9 -1
  85. package/out/typer/sem-diag.js.map +1 -1
  86. package/out/typer/solver.d.ts +2 -2
  87. package/out/typer/solver.d.ts.map +1 -1
  88. package/out/typer/solver.js +19 -21
  89. package/out/typer/solver.js.map +1 -1
  90. package/out/typer/subster.d.ts.map +1 -1
  91. package/out/typer/subster.js +49 -18
  92. package/out/typer/subster.js.map +1 -1
  93. package/out/typer/type-hint-manager/type-hint-manager.d.ts +1 -1
  94. package/out/typer/type-hint-manager/type-hint-manager.d.ts.map +1 -1
  95. package/out/typer/type-manager.d.ts.map +1 -1
  96. package/out/typer/type-manager.js +10 -8
  97. package/out/typer/type-manager.js.map +1 -1
  98. package/out/typer/type-predicate.d.ts +6 -1
  99. package/out/typer/type-predicate.d.ts.map +1 -1
  100. package/out/typer/type-predicate.js +27 -9
  101. package/out/typer/type-predicate.js.map +1 -1
  102. package/out/typer/typer.d.ts +7 -4
  103. package/out/typer/typer.d.ts.map +1 -1
  104. package/out/typer/typer.js +25 -21
  105. package/out/typer/typer.js.map +1 -1
  106. package/out/typer/unifier.d.ts.map +1 -1
  107. package/out/typer/unifier.js +17 -38
  108. package/out/typer/unifier.js.map +1 -1
  109. package/out/utils/parseTsClassType.d.ts +2 -3
  110. package/out/utils/parseTsClassType.d.ts.map +1 -1
  111. package/out/utils/parseTsClassType.js +34 -59
  112. package/out/utils/parseTsClassType.js.map +1 -1
  113. package/out/utils/string.d.ts +4 -0
  114. package/out/utils/string.d.ts.map +1 -0
  115. package/out/utils/string.js +29 -0
  116. package/out/utils/string.js.map +1 -0
  117. package/out/utils/type-operator.d.ts +1 -1
  118. package/out/utils/type-operator.d.ts.map +1 -1
  119. package/out/utils/type-operator.js +12 -12
  120. package/out/utils/type-operator.js.map +1 -1
  121. package/package.json +9 -6
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch-def.d.ts","sourceRoot":"","sources":["../../src/typer/dispatch-def.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,EAIL,UAAU,EAGV,SAAS,EACT,aAAa,EACb,eAAe,EACf,SAAS,EACT,yBAAyB,EACzB,cAAc,EAEd,SAAS,EACT,GAAG,EACH,SAAS,EACT,MAAM,EAEN,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,IAAI,EACJ,OAAO,EACP,SAAS,EAQT,cAAc,EACjB,MAAM,qBAAqB,CAAC;AAW7B,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,kCAAkC,CAAC;AAyBpF,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAGtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,aAuDtD;AAqCD,eAAO,MAAM,kBAAkB,oCAAqC,CAAC,YAEtC,IAAI,GAwBlC,CAAA;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,iBAAiB,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,8BAuBtE;AAUD,eAAO,MAAM,qBAAqB,QAAS,MAAM,UAAU,MAAM,iBAAiB,CAAC,KAAG,MAAM,MAAM,IAAI,CAWrG,CAAA;AAED,eAAO,MAAM,qBAAqB,WAAY,MAAM,iBAAiB,GAAG,SAAS,GAAG,aAAa,CAAC,SAUjG,CAAA;AAiFD,eAAO,MAAM,WAAW,QAAS,MAAM,MAAM,SAAS,SAerD,CAAA;AAGD,eAAO,MAAM,WAAW,QAAS,MAAM,MAAM,SAAS,SAiBrD,CAAA;AAGD,eAAO,MAAM,QAAQ,QAAS,MAAM,MAAM,MAAM,SAoB/C,CAAA;AAID,wBAAgB,qEAAqE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,CA6B9J;AAGD,wBAAgB,+DAA+D,CAAC,EAAE,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAClH,KAAK,CAAC,KAAK,GAAG,eAAe,GAAG,SAAS,GAAG,yBAAyB,GAAG,cAAc,CAAC,CA2B5F;AAGD,wBAAgB,iDAAiD,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,GAClF,KAAK,CAAC,IAAI,GAAG,aAAa,GAAG,wBAAwB,CAAC,CAW3D;AAED,wBAAgB,oDAAoD,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,GACvF,KAAK,CAAC,OAAO,GAAG,SAAS,GAAG,gBAAgB,CAAC,CAShD;AA8BD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAS,MAAM,SA+BnD,CAAA"}
1
+ {"version":3,"file":"dispatch-def.d.ts","sourceRoot":"","sources":["../../src/typer/dispatch-def.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,EAIL,UAAU,EAGV,SAAS,EACT,aAAa,EACb,eAAe,EACf,SAAS,EACT,yBAAyB,EACzB,cAAc,EAEd,SAAS,EACT,GAAG,EACH,SAAS,EACT,MAAM,EAEN,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,IAAI,EACJ,OAAO,EACP,SAAS,EAQT,cAAc,EACjB,MAAM,qBAAqB,CAAC;AAW7B,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,kCAAkC,CAAC;AAyBpF,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAGtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,aAwDtD;AAqCD,eAAO,MAAM,kBAAkB,oCAAqC,CAAC,YAEtC,IAAI,GAwBlC,CAAA;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,iBAAiB,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,8BAuBtE;AAUD,eAAO,MAAM,qBAAqB,QAAS,MAAM,UAAU,MAAM,iBAAiB,CAAC,KAAG,MAAM,MAAM,IAAI,CAWrG,CAAA;AAED,eAAO,MAAM,qBAAqB,WAAY,MAAM,iBAAiB,GAAG,SAAS,GAAG,aAAa,CAAC,SAUjG,CAAA;AAiFD,eAAO,MAAM,WAAW,QAAS,MAAM,MAAM,SAAS,SAerD,CAAA;AAGD,eAAO,MAAM,WAAW,QAAS,MAAM,MAAM,SAAS,SAiBrD,CAAA;AAGD,eAAO,MAAM,QAAQ,QAAS,MAAM,MAAM,MAAM,SAoB/C,CAAA;AAID,wBAAgB,qEAAqE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,CA6B9J;AAGD,wBAAgB,+DAA+D,CAAC,EAAE,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAClH,KAAK,CAAC,KAAK,GAAG,eAAe,GAAG,SAAS,GAAG,yBAAyB,GAAG,cAAc,CAAC,CA2B5F;AAGD,wBAAgB,iDAAiD,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,GAClF,KAAK,CAAC,IAAI,GAAG,aAAa,GAAG,wBAAwB,CAAC,CAW3D;AAED,wBAAgB,oDAAoD,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,GACvF,KAAK,CAAC,OAAO,GAAG,SAAS,GAAG,gBAAgB,CAAC,CAShD;AA8BD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAS,MAAM,SA+BnD,CAAA"}
@@ -79,6 +79,9 @@ function dispatchDef(env, nd) {
79
79
  tpEvent(env, nd);
80
80
  break;
81
81
  case 'Connection': break;
82
+ case 'ParamWithGroup':
83
+ tpParam(env, nd);
84
+ break;
82
85
  case 'MetadataType':
83
86
  tpMetaDatatype(env, nd);
84
87
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch-def.js","sourceRoot":"","sources":["../../src/typer/dispatch-def.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch-def.js","sourceRoot":"","sources":["../../src/typer/dispatch-def.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch-expr.d.ts","sourceRoot":"","sources":["../../src/typer/dispatch-expr.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,EACR,eAAe,EAGf,YAAY,EACZ,aAAa,EACb,SAAS,EAWT,aAAa,EACb,KAAK,EAIL,YAAY,EAqBZ,UAAU,EACV,cAAc,EAIf,MAAM,qBAAqB,CAAC;AA8C7B,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,kCAAkC,CAAC;AAMpF,OAAO,EACL,KAAK,MAAM,EACZ,MAAM,SAAS,CAAC;AA4FjB,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,GAAG,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAoDnI;AAqoBD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CA2HrH;AAGD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CA6B1H;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,QAUpF;AA4BD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,8BA+L9F;AAwED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,8BAmChG;AAED,eAAO,MAAM,mBAAmB,wBAAkB,CAAC;AACnD,eAAO,MAAM,2BAA2B,wBAAkB,CAAC;AAC3D,eAAO,MAAM,eAAe,oBAAc,CAAC;AA+iB3C,eAAO,MAAM,iBAAiB,QAAS,MAAM,MAAM,cAAc,GAAG,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC,CAapH,CAAA;AA6FD;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAU1H;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAgH7G;AAWD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CA6IvH;AAkCD;;GAEG;AACH,eAAO,MAAM,YAAY,QAAS,MAAM,MAAM,SAAS,SAAS,cAAc,GAAG,SAAS,KAAG,cAAc,GAAG,SAe7G,CAAA;AA6BD,eAAO,MAAM,cAAc,OAAQ,eAAe,GAAG,YAAY,WAAW,MAAM,WAAW,MAAM,KAAG,aAMrG,CAAC"}
1
+ {"version":3,"file":"dispatch-expr.d.ts","sourceRoot":"","sources":["../../src/typer/dispatch-expr.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,QAAQ,EACR,eAAe,EAGf,YAAY,EACZ,aAAa,EACb,SAAS,EAWT,aAAa,EACb,KAAK,EAIL,YAAY,EAqBZ,UAAU,EACV,cAAc,EAIf,MAAM,qBAAqB,CAAC;AA8C7B,OAAO,EAAE,KAAK,UAAU,EAA8D,MAAM,kCAAkC,CAAC;AAM/H,OAAO,EACL,KAAK,MAAM,EACZ,MAAM,SAAS,CAAC;AAuFjB,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,GAAG,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAsDnI;AAwoBD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CA2HrH;AAGD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CA6B1H;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,QAUpF;AA4BD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,8BA+L9F;AA4FD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,8BAmChG;AAED,eAAO,MAAM,mBAAmB,wBAAkB,CAAC;AACnD,eAAO,MAAM,2BAA2B,wBAAkB,CAAC;AAC3D,eAAO,MAAM,eAAe,oBAAc,CAAC;AAijB3C,eAAO,MAAM,iBAAiB,QAAS,MAAM,MAAM,cAAc,GAAG,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC,CAapH,CAAA;AA6FD;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAU1H;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAmH7G;AAWD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CA6IvH;AA+BD;;GAEG;AACH,eAAO,MAAM,YAAY,QAAS,MAAM,MAAM,SAAS,SAAS,cAAc,GAAG,SAAS,KAAG,cAAc,GAAG,SAe7G,CAAA;AA6BD,eAAO,MAAM,cAAc,OAAQ,eAAe,GAAG,YAAY,WAAW,MAAM,WAAW,MAAM,KAAG,aAMrG,CAAC"}
@@ -9,8 +9,10 @@ const helper_1 = require("./helper");
9
9
  const dispatch_stmt_1 = require("./dispatch-stmt");
10
10
  const dispatch_stmt_2 = require("./dispatch-stmt");
11
11
  const dispatch_def_1 = require("./dispatch-def");
12
+ const get_q_name_1 = require("../reference-manager/get-q-name");
12
13
  const reference_manager_1 = require("../reference-manager/reference-manager");
13
14
  const symbol_type_1 = require("../reference-manager/symbol-type");
15
+ const string_1 = require("../utils/string");
14
16
  const assertion_1 = require("../utils/assertion");
15
17
  const nasl_predicate_1 = require("./nasl-predicate");
16
18
  const asserts_1 = require("@lcap/nasl-concepts/asserts");
@@ -26,6 +28,7 @@ const error_boundary_1 = require("../utils/error-boundary");
26
28
  const types_1 = require("../utils/types");
27
29
  const type_operator_1 = require("../utils/type-operator");
28
30
  const nasl_type_manipulation_1 = require("../utils/nasl-type-manipulation");
31
+ const overload_helper_1 = require("./overload-helper");
29
32
  // speed consideration
30
33
  function dispatchExpr(env, nd, tgtTy) {
31
34
  if (!nd) {
@@ -70,6 +73,8 @@ function dispatchExpr(env, nd, tgtTy) {
70
73
  case 'Anchor': return tpAnchor(env, nd, tgtTy);
71
74
  case 'JSBlock': return;
72
75
  case 'NewStructure': return tpNewStructure(env, nd, tgtTy);
76
+ case 'Break': return undefined;
77
+ case 'Continue': return undefined;
73
78
  default: {
74
79
  // 不要 throw,草稿区或者脏数据经常有莫名其妙的东西进来,如 break continue 等
75
80
  console.log(`未知的 LogicItem ${nd.concept},先忽略`);
@@ -150,7 +155,7 @@ function tpNumericLiteral(env, nd, tgtTy) {
150
155
  function tpStringInterpolation(env, nd, tgtTy) {
151
156
  nd.expressions.forEach((expr) => {
152
157
  // HACK: 动态拖入一个表达式的时候,在 expressions 数组中是 proxied
153
- return dispatchExpr(env, toRaw(expr), undefined);
158
+ return dispatchExpr(env, (0, dispatch_stmt_1.toRaw)(expr), undefined);
154
159
  });
155
160
  env.setType(nd, type_manager_1.naslStringTy);
156
161
  env.unifier.unify(type_manager_1.naslStringTy, tgtTy);
@@ -304,7 +309,7 @@ function tpMemberExpression(env, nd, tgtTy) {
304
309
  let ndTy = env.getRawType(nd.property) ?? type_manager_1.naslAnyTy;
305
310
  // 为了 match!マッチのために
306
311
  {
307
- const specialName = (0, reference_manager_1.getTokenQualifiedNameForMatchedExpr)(env, nd);
312
+ const specialName = (0, get_q_name_1.getTokenQualifiedNameForMatchedExpr)(env, nd);
308
313
  if (env.matchedVars.has(specialName)) {
309
314
  const ty = env.matchedVars.get(specialName);
310
315
  ndTy = ty;
@@ -430,7 +435,7 @@ function tpBinaryExpression(env, nd, tgtTy) {
430
435
  return ty;
431
436
  if ((0, type_predicate_2.isMetadataType)(ty)) {
432
437
  // 使用typeAlias来查找元数据类型的底层类型
433
- const qName = (0, reference_manager_1.getTokenQualifiedName)(ty);
438
+ const qName = (0, get_q_name_1.getTokenQualifiedName)(ty);
434
439
  if (qName && env.typeAlias.has(qName)) {
435
440
  return env.typeAlias.get(qName);
436
441
  }
@@ -484,6 +489,7 @@ function tpBinaryExpression(env, nd, tgtTy) {
484
489
  dispatchExpr(env, nd.left, type_manager_1.naslBooleanTy);
485
490
  dispatchExpr(env, nd.right, type_manager_1.naslBooleanTy);
486
491
  env.setType(nd, type_manager_1.naslBooleanTy);
492
+ env.unifier.unify(type_manager_1.naslBooleanTy, tgtTy);
487
493
  return type_manager_1.naslBooleanTy;
488
494
  }
489
495
  ;
@@ -494,14 +500,16 @@ function tpBinaryExpression(env, nd, tgtTy) {
494
500
  dispatchExpr(env, nd.left, type_manager_1.naslStringTy);
495
501
  dispatchExpr(env, nd.right, type_manager_1.naslStringTy);
496
502
  env.setType(nd, type_manager_1.naslBooleanTy);
503
+ env.unifier.unify(type_manager_1.naslBooleanTy, tgtTy);
497
504
  return type_manager_1.naslBooleanTy;
498
505
  }
499
506
  case 'in': {
500
507
  const leftTy = dispatchExpr(env, nd.left, undefined);
501
508
  const rightTy = dispatchExpr(env, nd.right, undefined);
502
509
  // T in List<T>
503
- env.unifier.unify((0, type_manager_1.createListTyAnn)(leftTy ?? type_manager_1.naslAnyTy), rightTy);
504
510
  env.setType(nd, type_manager_1.naslBooleanTy);
511
+ env.unifier.unify((0, type_manager_1.createListTyAnn)(leftTy ?? type_manager_1.naslAnyTy), rightTy);
512
+ env.unifier.unify(type_manager_1.naslBooleanTy, tgtTy);
505
513
  return type_manager_1.naslBooleanTy;
506
514
  }
507
515
  default: return undefined;
@@ -626,7 +634,7 @@ const tpBinaryOrderExpr = (env, nd, tgtTy) => {
626
634
  if ((0, type_predicate_1.isUnionTy)(ty)) {
627
635
  return ty.typeArguments?.every(memberTy => isValidTy(memberTy)) ?? false;
628
636
  }
629
- const qName = (0, reference_manager_1.getTokenQualifiedName)(ty);
637
+ const qName = (0, get_q_name_1.getTokenQualifiedName)(ty);
630
638
  return !!qName && env.typeAlias.has(qName);
631
639
  };
632
640
  // 不调用 solver 则无法判断,调用则影响速度,所以报错后移了
@@ -699,7 +707,7 @@ function tpCallLogic(env, nd, tgtTy) {
699
707
  }
700
708
  else {
701
709
  // 'nasl.util' 时 是 json 序列化
702
- def = env.quickGetLibDef(nd);
710
+ def = env.quickGetLibDef(nd, nd.calleeName, undefined);
703
711
  }
704
712
  // 处理调用处的验证规则
705
713
  if (nd.validation?.rules && nd.validation.rules.length > 0 && def) {
@@ -791,7 +799,7 @@ function determineCallLogicFnTy(env, nd, def) {
791
799
  return env.getRawType(def);
792
800
  }
793
801
  else {
794
- const qName = (0, reference_manager_1.getTokenQualifiedName)(nd);
802
+ const qName = (0, get_q_name_1.getTokenQualifiedName)(nd);
795
803
  if (!qName) {
796
804
  return undefined;
797
805
  }
@@ -857,34 +865,12 @@ function tpCallFunction(env, nd, tgtTy) {
857
865
  if (parseTsClassType_1.enumBuiltinFns.includes(calleeName)) {
858
866
  return handleEnumFn(env, nd, tgtTy);
859
867
  }
860
- if (calleeName === 'Convert' || calleeName === 'Length') {
861
- return tpLengthAndConvertCall(env, nd, tgtTy);
862
- }
863
- else if (parseTsClassType_1.overloadedFns.includes(calleeName)) {
864
- const argTys = [];
865
- for (const arg of nd.arguments) {
866
- argTys.push(dispatchExpr(env, arg, undefined) ?? type_manager_1.naslAnyTy);
867
- }
868
- let argTy = argTys[(0, parseTsClassType_1.getOvParamIdx)(calleeName)];
869
- if (calleeName === 'CAST') {
870
- const litTy = nasl_concepts_1.TypeAnnotation.createProtoTypeOnly({
871
- typeKind: 'literal',
872
- typeNamespace: 'nasl.core',
873
- typeName: 'String',
874
- literal: nd.arguments?.[(0, parseTsClassType_1.getOvParamIdx)(calleeName)]?.expression?.value ?? ''
875
- });
876
- argTy = litTy;
877
- }
878
- const mangledCalleeName = (0, parseTsClassType_1.mangleOvFnName)(calleeName, argTy);
879
- const fnDef = env.quickGetLibDef(nd, mangledCalleeName);
880
- const fnTy = fnDef?.__TypeAnnotation;
881
- (0, helper_1.zipWith_)(env.unifier.unify, argTys, fnTy?.typeArguments);
882
- env.setType(nd, fnTy?.returnType?.[0] ?? type_manager_1.naslAnyTy); // 似乎不可能为空
883
- const callInfo = (0, type_manager_1.createFunctionDef)(argTys, fnTy?.returnType?.[0] ?? type_manager_1.naslAnyTy, fnDef, undefined);
884
- env.resolvedCallInfo.set(nd, callInfo);
885
- return env.getRawType(nd);
868
+ // 前端全局类型推导 + 重载函数几乎无法做任何类型推导,只能做后置验证。后端可以推导,但简单起见,不区分前后端了。
869
+ // 总结:全局类型推导 + 重载 = 灾难
870
+ if (parseTsClassType_1.overloadedFns.includes(calleeName)) {
871
+ return handleOverloadedFunction(env, nd, tgtTy, calleeName);
886
872
  }
887
- const fnDef = env.quickGetLibDef(nd);
873
+ const fnDef = env.quickGetLibDef(nd, calleeName, env.ctxCQC?.dataSourceSqlType);
888
874
  let fnTy = fnDef?.__TypeAnnotation;
889
875
  if (!fnTy) {
890
876
  env.addError('无法找到函数定义(类型)');
@@ -898,7 +884,34 @@ function tpCallFunction(env, nd, tgtTy) {
898
884
  const elemTy = parTy.typeArguments[0];
899
885
  // 余下的一并处理
900
886
  for (let i = idx; i < nd.arguments.length; ++i) {
901
- dispatchExpr(env, nd.arguments[i], elemTy);
887
+ /**
888
+ * ListSort 只能特殊处理了。
889
+ * nasl.util 里定义为 { asc: Boolean, by: Long | Decimal | ... } 的话会有匿名数据类型不匹配报错(invariance)
890
+ * 如果定义为泛型 T2 extends Long | Decimal | ... 且 { asc: Boolean, by: T2 } 的话 T2 不支持实例化成 Union
891
+ * (页面是全局求解,暂时不好区分 T2 的约束是来自多个赋值还是一个赋值,如果是多个则报错,如果是一个则使用 Union 作为解这种复杂的机制
892
+ */
893
+ if (calleeName === 'ListSort' || calleeName === 'ListSortAsync') {
894
+ const expr = nd.arguments[i].expression;
895
+ // 抠出函数类型的参数和返回类型
896
+ if (!(0, type_predicate_2.isFuncTy)(elemTy)) {
897
+ continue; // 干不了了
898
+ }
899
+ const parTy = elemTy.typeArguments?.[0];
900
+ const retTy = elemTy.returnType?.[0];
901
+ // 留给 checker.ts 去做后置检查吧
902
+ if (expr?.concept === 'AnonymousFunction') {
903
+ tpAnonymousFunction(env, expr, (0, type_manager_1.createFnTyFromTyAnns)([parTy], undefined), true);
904
+ // dispatchExpr(env, expr.params[0], parTy);
905
+ // dispatchExpr(env, expr.body, retTy);
906
+ }
907
+ else if (expr?.concept === 'SubLogic') {
908
+ tpSubLogic(env, expr, (0, type_manager_1.createFnTyFromTyAnns)([parTy], undefined), true);
909
+ }
910
+ }
911
+ else {
912
+ // 正常处理
913
+ dispatchExpr(env, nd.arguments[i], elemTy);
914
+ }
902
915
  }
903
916
  }
904
917
  else {
@@ -1006,60 +1019,82 @@ function tpCallFunction(env, nd, tgtTy) {
1006
1019
  }
1007
1020
  }
1008
1021
  exports.tpCallFunction = tpCallFunction;
1009
- // 目前只有 CallFunction 支持重载
1010
- function tpLengthAndConvertCall(env, nd, tgtTy) {
1011
- // 处理重载函数,重载函数不能用 unify(paramTy, argTy) 只能 dispatchExpr(arg, undefined)
1012
- // 且部分情况 type arguments 还需要推
1013
- // Ensure we don't have undefined values in our argTys array
1014
- const argTys = nd.arguments.map(arg => dispatchExpr(env, arg, undefined) ?? type_manager_1.naslAnyTy);
1015
- let calleeName = nd.calleeName;
1016
- if (calleeName === 'Length') {
1017
- env.unifier.unify(type_manager_1.naslLongTy, tgtTy); // 返回类型确定
1018
- env.setType(nd, type_manager_1.naslLongTy);
1019
- // For Length function, the parameter is required
1020
- // Create a mock definition for the Length function
1021
- const mockLengthDef = {
1022
- params: [{ name: 'collection', optional: false }]
1023
- };
1024
- const callInfo = (0, type_manager_1.createFunctionDef)(argTys, type_manager_1.naslLongTy, mockLengthDef, undefined);
1025
- env.resolvedCallInfo.set(nd, callInfo); // 存储函数定义(含参数和返回类型)
1026
- return type_manager_1.naslLongTy;
1027
- }
1028
- if (calleeName === 'Convert') {
1029
- const arg0Ty = env.getRawType(nd.arguments?.[0]);
1030
- const normaliseArg0Ty = (ty) => {
1031
- switch (ty.typeKind) {
1032
- case 'primitive':
1033
- return ty;
1034
- default:
1035
- return type_manager_1.naslAnyTy;
1036
- }
1037
- };
1038
- const qName = (0, reference_manager_1.getTokenQualifiedName)(nd);
1039
- const mangledQName = (0, parseTsClassType_1.mangleOvFnName)(qName, normaliseArg0Ty(arg0Ty ?? type_manager_1.naslAnyTy));
1040
- // 检查 ConvertTo 的类型是否符合要求
1041
- const tyParam0 = env.refMgr.qNameDefs.get(mangledQName)?.__TypeAnnotation.typeParams?.[0];
1042
- const paramTys = env.refMgr.qNameDefs.get(mangledQName)?.__TypeAnnotation.typeArguments;
1043
- // 简单点
1044
- if ((0, type_predicate_2.isValidNaslTy)(nd.typeArguments?.[0])) { // @ts-expect-error
1045
- env.unifier.unify(nd.typeArguments[0], tyParam0?.constraints); // @ts-expect-error
1046
- tgtTy && env.unifier.unify(nd.typeArguments[0], tgtTy); // @ts-expect-error
1047
- env.setType(nd, nd.typeArguments[0]);
1022
+ /**
1023
+ * 处理重载函数的调用
1024
+ * @param env 语义环境
1025
+ * @param nd 函数调用节点
1026
+ * @param tgtTy 目标类型
1027
+ * @param calleeName 被调用函数名
1028
+ * @returns 处理后的类型注解
1029
+ */
1030
+ const handleOverloadedFunction = (env, nd, tgtTy, calleeName) => {
1031
+ const ovParamIdx = (0, overload_helper_1.getOvParamIdx)(calleeName);
1032
+ const argTys = [];
1033
+ for (const arg of nd.arguments) {
1034
+ argTys.push(dispatchExpr(env, arg, undefined) ?? type_manager_1.naslAnyTy);
1035
+ }
1036
+ if (calleeName === 'CAST') {
1037
+ argTys[ovParamIdx] = (0, overload_helper_1.createCastLiteralType)(nd.arguments?.[ovParamIdx]?.expression?.value ?? '');
1038
+ }
1039
+ // Convert, Length, CAST 的返回类型可以从用户选择的类型(通过 type picker)拿到
1040
+ // 其他重载函数都在 SQL 里,都在服务端逻辑里,可以立即从参数类型获得,没有页面全局类型推导的问题
1041
+ let retTy = (0, overload_helper_1.getOverloadFuncRetTy)(nd, argTys[ovParamIdx]);
1042
+ if (!retTy) {
1043
+ if (!env.isView) {
1044
+ const mangledCalleeName = (0, overload_helper_1.mangleOvFnName)(calleeName, argTys[ovParamIdx]);
1045
+ const fnDef = env.quickGetLibDef(nd, mangledCalleeName, env.ctxCQC?.dataSourceSqlType);
1046
+ const fnTy = fnDef?.__TypeAnnotation;
1047
+ retTy = fnTy?.returnType?.[0];
1048
1048
  }
1049
1049
  else {
1050
- env.setType(nd, tgtTy);
1050
+ retTy = type_manager_1.naslAnyTy;
1051
1051
  }
1052
- // Create a mock definition for parameters
1053
- const mockConvertDef = {
1054
- params: paramTys?.map(() => ({ optional: false })) || []
1055
- };
1056
- const callInfo = (0, type_manager_1.createFunctionDef)(argTys, env.getRawType(nd), mockConvertDef, undefined);
1057
- env.resolvedCallInfo.set(nd, callInfo);
1058
- return env.getRawType(nd);
1059
1052
  }
1060
- }
1053
+ env.unifier.unify(retTy, tgtTy);
1054
+ const callInfo = (0, type_manager_1.createFunctionDef)(argTys, retTy, undefined, undefined);
1055
+ env.resolvedCallInfo.set(nd, callInfo);
1056
+ const capturedDbSqlType = env.ctxCQC?.dataSourceSqlType;
1057
+ // 剩下的需要后置处理
1058
+ const postChk = (fileNode, errBoundary, severity) => (env) => {
1059
+ const argTys = nd.arguments.map((arg) => env.getType(arg.expression));
1060
+ if (calleeName === 'CAST') {
1061
+ argTys[ovParamIdx] = (0, overload_helper_1.createCastLiteralType)(nd.arguments?.[ovParamIdx]?.expression?.value ?? '');
1062
+ }
1063
+ const ovArgTy = argTys[ovParamIdx];
1064
+ const mangledCalleeName = (0, overload_helper_1.mangleOvFnName)(calleeName, ovArgTy);
1065
+ let fnDef = mangledCalleeName ? env.quickGetLibDef(nd, mangledCalleeName, capturedDbSqlType) : undefined;
1066
+ let fnTy = fnDef?.__TypeAnnotation;
1067
+ // If no matching overload found, validate and report error
1068
+ if (!fnDef || !fnTy) {
1069
+ // Create fallback definition to prevent further errors
1070
+ const fallbackDef = (0, overload_helper_1.createFallbackOverloadDef)(calleeName, nd.calleeNamespace, nd.arguments.length);
1071
+ fnDef = fallbackDef;
1072
+ fnTy = fallbackDef.__TypeAnnotation;
1073
+ // Convert 允许接收任何类型,跳过报错(mangled name convertList convertMap 等查不到定义会产生额外错误)
1074
+ if (calleeName !== 'Convert') {
1075
+ const possibleTypes = (0, overload_helper_1.getOverloadParameterTypes)(env, nd, capturedDbSqlType);
1076
+ if (possibleTypes.length > 0) {
1077
+ const errorMsg = (0, sem_diag_1.createOverloadTypeError)(calleeName, ovArgTy, possibleTypes);
1078
+ // precise error boundary nd.arguments[i]! is not working here, why?
1079
+ env.addError(errorMsg, fileNode, errBoundary, severity);
1080
+ }
1081
+ }
1082
+ }
1083
+ // 后置类型校验,暂时都不需要,不可能报错
1084
+ // for (let i = 0; i < argTys.length && i < (fnTy?.typeArguments?.length ?? 0); ++i) {
1085
+ // const sub = argTys[i];
1086
+ // const sup = fnTy!.typeArguments![i];
1087
+ // if (!isSubTy(env, sub, sup)) { // precise error boundary nd.arguments[i]! is not working here, why?
1088
+ // env.addError(mkIncompatibleTyErr(env, sub, sup), fileNode, errBoundary, severity);
1089
+ // }
1090
+ // }
1091
+ };
1092
+ env.addPostCheckTask(nd, postChk(env.getCurFileNode(), nd, env.errSeverity));
1093
+ env.setType(nd, retTy); // 似乎不可能为空
1094
+ return env.getRawType(nd);
1095
+ };
1061
1096
  function tpCallInterface(env, nd, tgtTy) {
1062
- const qName = (0, reference_manager_1.getTokenQualifiedName)(nd);
1097
+ const qName = (0, get_q_name_1.getTokenQualifiedName)(nd);
1063
1098
  if (!qName) {
1064
1099
  env.setType(nd, type_manager_1.naslAnyTy);
1065
1100
  return type_manager_1.naslAnyTy;
@@ -1089,7 +1124,7 @@ exports.tpCallInterface = tpCallInterface;
1089
1124
  exports.tpCallAuthInterface = tpCallInterface;
1090
1125
  exports.tpCallMicroserviceInterface = tpCallInterface;
1091
1126
  exports.tpCallConnector = tpCallLogic;
1092
- function tpAnonymousFunction(env, nd, tgtTy) {
1127
+ function tpAnonymousFunction(env, nd, tgtTy, isListSort = false) {
1093
1128
  if (!tgtTy || !(0, type_predicate_2.isFuncTy)(tgtTy)) {
1094
1129
  env.setType(nd, type_manager_1.naslAnyTy);
1095
1130
  env.addError((0, sem_diag_1.mkIncompatibleTyErr)(env, '函数', tgtTy || type_manager_1.naslAnyTy));
@@ -1104,22 +1139,22 @@ function tpAnonymousFunction(env, nd, tgtTy) {
1104
1139
  const ctxParTy = tgtTy.typeArguments[idx];
1105
1140
  ctxParTy && env.setType(param, ctxParTy);
1106
1141
  });
1107
- dispatchExpr(env, nd.body, tgtTy?.returnType?.[0]);
1142
+ dispatchExpr(env, nd.body, isListSort ? undefined : tgtTy?.returnType?.[0]);
1108
1143
  env.setType(nd, (0, type_manager_1.createFnTyFromTyAnns)(// @ts-expect-error
1109
1144
  nd.params.map(env.getRawType), env.getRawType(nd.body) ?? type_manager_1.naslAnyTy));
1110
1145
  paramsArr.forEach(p => env.removeVar(p));
1111
1146
  const ndTy = env.getRawType(nd);
1112
- env.unifier.unify(ndTy, tgtTy);
1147
+ !isListSort && env.unifier.unify(ndTy, tgtTy);
1113
1148
  return ndTy;
1114
1149
  }
1115
- function tpSubLogic(env, nd, tgtTy) {
1150
+ function tpSubLogic(env, nd, tgtTy, isListSort = false) {
1116
1151
  // 若非前端,则 shallow copy,因为内部会触发 solve,会把进来前的约束清掉;
1117
1152
  // 若是前端,则无需 copy
1118
1153
  const csCopy = env.isView ? env.unifier.cs : new Map(env.unifier.cs);
1119
1154
  const subLogicVars = [...nd.params, ...nd.returns, ...nd.variables];
1120
1155
  subLogicVars.forEach(v => (0, dispatch_def_1.dispatchDef)(env, v));
1121
1156
  // 处理 tgtTy 缺失的情况
1122
- if (tgtTy && !(0, type_predicate_2.isFuncTy)(tgtTy)) {
1157
+ if (tgtTy && !(0, type_predicate_2.isFuncTy)(tgtTy) && !isListSort) {
1123
1158
  env.setType(nd, type_manager_1.naslAnyTy);
1124
1159
  env.addError((0, sem_diag_1.mkIncompatibleTyErr)(env, '函数', tgtTy));
1125
1160
  return (0, type_manager_1.createFnTyFromTyAnns)([], type_manager_1.naslAnyTy);
@@ -1137,7 +1172,7 @@ function tpSubLogic(env, nd, tgtTy) {
1137
1172
  const ndTy = (0, type_manager_1.createRefTyAnnFromDef)(nd, env);
1138
1173
  env.setType(nd, ndTy);
1139
1174
  env.unifier.cs = csCopy;
1140
- env.unifier.unify(ndTy, tgtTy); // 这里需要额外的 unify,否则 SubLogic 算出来的类型不能与外侧进来时的约束产生关系
1175
+ !isListSort && env.unifier.unify(ndTy, tgtTy); // 这里需要额外的 unify,否则 SubLogic 算出来的类型不能与外侧进来时的约束产生关系
1141
1176
  return ndTy;
1142
1177
  }
1143
1178
  function tpArgument(env, nd, tgtTy) {
@@ -1197,7 +1232,7 @@ function tpCallQueryComponent(env, nd, tgtTy) {
1197
1232
  env.setType(nd, prop.typeAnnotation);
1198
1233
  env.unifier.unify(env.getRawType(nd), tgtTy);
1199
1234
  // @ts-expect-error
1200
- nd.$propQName = (0, reference_manager_1.getPropQName)(entityQName, prop.name, 'Entity');
1235
+ nd.$propQName = (0, string_1.getPropQName)(entityQName, prop.name, 'Entity');
1201
1236
  }
1202
1237
  }
1203
1238
  }
@@ -1259,7 +1294,7 @@ function tpCallQueryComponent(env, nd, tgtTy) {
1259
1294
  if (!entityQName) {
1260
1295
  continue;
1261
1296
  }
1262
- const aggrTy = calcAggrTy((0, reference_manager_1.getPropQName)(entityQName, aggrPar.propertyName, 'Entity'), se.aggregateName);
1297
+ const aggrTy = calcAggrTy((0, string_1.getPropQName)(entityQName, aggrPar.propertyName, 'Entity'), se.aggregateName);
1263
1298
  env.setType(aggrPar, aggrTy);
1264
1299
  env.setType(se, aggrTy);
1265
1300
  se.asName && aggrAsNames.set(se.asName, aggrTy);
@@ -1285,7 +1320,7 @@ function tpCallQueryComponent(env, nd, tgtTy) {
1285
1320
  // 选了几个属性,每个属性都是一个独立的 QueryFieldExpression
1286
1321
  if (qfe.propertyName?.length > 0) {
1287
1322
  !hasAggr && (0, helper_1.createOnPush)(selMap, entityQName, qfe.propertyName);
1288
- seTy = (0, fp_macros_1.IfBind)(env.refMgr.qNameDefs.get((0, reference_manager_1.getPropQName)(entityQName, qfe.propertyName, 'Entity')))(prop => prop.typeAnnotation)((0, fp_macros_1.feed)(undefined));
1323
+ seTy = (0, fp_macros_1.IfBind)(env.refMgr.qNameDefs.get((0, string_1.getPropQName)(entityQName, qfe.propertyName, 'Entity')))(prop => prop.typeAnnotation)((0, fp_macros_1.feed)(undefined));
1289
1324
  }
1290
1325
  else { // 全选时 seTy 为 Entity 类型
1291
1326
  seTy = (0, fp_macros_1.IfBind)(env.refMgr.qNameDefs.get(`${entityQName}`))(def => env.getRawType(def))((0, fp_macros_1.feed)(undefined));
@@ -1322,12 +1357,12 @@ function tpCallQueryComponent(env, nd, tgtTy) {
1322
1357
  // const len = nd.groupBy.length + aggrAsNames.size;
1323
1358
  const allKeys = Array.from(groupByAsNames.keys()).concat(Array.from(aggrAsNames.keys()));
1324
1359
  const allTys = Array.from(groupByAsNames.values()).concat(Array.from(aggrAsNames.values()));
1325
- retTy = (0, type_manager_1.createListTyAnn)((0, type_manager_1.createAnonymousTyAnnIfNecessary)(allKeys.map(reference_manager_1.lowercaseFirstChar), allTys) ?? type_manager_1.naslAnyTy);
1360
+ retTy = (0, type_manager_1.createListTyAnn)((0, type_manager_1.createAnonymousTyAnnIfNecessary)(allKeys.map(string_1.lowercaseFirstChar), allTys) ?? type_manager_1.naslAnyTy);
1326
1361
  }
1327
1362
  else if (!hasGroupBy && hasAggr) {
1328
1363
  const aggrKeys = Array.from(aggrAsNames.keys());
1329
1364
  const aggrTys = Array.from(aggrAsNames.values());
1330
- retTy = (0, type_manager_1.createAnonymousTyAnnIfNecessary)(aggrKeys.map(reference_manager_1.lowercaseFirstChar), aggrTys);
1365
+ retTy = (0, type_manager_1.createAnonymousTyAnnIfNecessary)(aggrKeys.map(string_1.lowercaseFirstChar), aggrTys);
1331
1366
  }
1332
1367
  else {
1333
1368
  // 太乱了,之后重构
@@ -1345,13 +1380,13 @@ function tpCallQueryComponent(env, nd, tgtTy) {
1345
1380
  }
1346
1381
  else {
1347
1382
  const tyAnns = selProps.map(prop => {
1348
- const qName = (0, reference_manager_1.getPropQName)(entityQName, prop, 'Entity');
1383
+ const qName = (0, string_1.getPropQName)(entityQName, prop, 'Entity');
1349
1384
  return env.refMgr.qNameDefs.get(qName)?.typeAnnotation ?? type_manager_1.naslAnyTy;
1350
1385
  });
1351
- return (0, type_manager_1.createAnonymousTyAnn)(selProps.map(reference_manager_1.lowercaseFirstChar), tyAnns);
1386
+ return (0, type_manager_1.createAnonymousTyAnn)(selProps.map(string_1.lowercaseFirstChar), tyAnns);
1352
1387
  }
1353
1388
  });
1354
- retTy = (0, type_manager_1.createListTyAnn)((0, type_manager_1.createAnonymousTyAnn)(selShortNames.map(reference_manager_1.lowercaseFirstChar), tys));
1389
+ retTy = (0, type_manager_1.createListTyAnn)((0, type_manager_1.createAnonymousTyAnn)(selShortNames.map(string_1.lowercaseFirstChar), tys));
1355
1390
  }
1356
1391
  // 2.11 之前才有,升级脚本也没管,需要特殊处理
1357
1392
  if (nd.limit) {
@@ -1506,8 +1541,8 @@ function tpNewComposite(env, nd, tgtTy) {
1506
1541
  // 参考:【rg3】+ saas + 批量赋值时,将同一变量(三层变量)同时赋值给两个不同的变量有报错,、New 等自动连线功能失效
1507
1542
  // http://projectmanage.netease-official.lcap.163yun.com/dashboard/BugDetail?id=3148436628556032
1508
1543
  nd.rights.forEach(selMem => {
1509
- dispatchExpr(env, toRaw(selMem.expression), undefined);
1510
- selMem.members.forEach(mem => dispatchExpr(env, toRaw(mem), undefined));
1544
+ dispatchExpr(env, (0, dispatch_stmt_1.toRaw)(selMem.expression), undefined);
1545
+ selMem.members.forEach(mem => dispatchExpr(env, (0, dispatch_stmt_1.toRaw)(mem), undefined));
1511
1546
  });
1512
1547
  const lNameTyPair = (0, exports.extractNameTyPair)(env, nd.typeAnnotation);
1513
1548
  if (!lNameTyPair) {
@@ -1537,8 +1572,9 @@ function tpNewComposite(env, nd, tgtTy) {
1537
1572
  }
1538
1573
  env.unifier.unifyWithBoundary(rTy, lPropTyAnn, right);
1539
1574
  });
1575
+ const properties = toRaws(nd.properties);
1540
1576
  // 没连线的左边的元素们。其实无所谓,但要跟现在保持一致。
1541
- nd.properties.forEach((pIdent, _) => {
1577
+ properties.forEach((pIdent) => {
1542
1578
  if (!env.typeBindings.get(pIdent)) {
1543
1579
  let lPropTyAnn = lNameTyPair.find(([name, _]) => name === pIdent.name)?.[1];
1544
1580
  // setType 应该够了,直接 dispatchExpr 会因为 pIdent 没有加到 env.nameBindings 里,导致找不到而报错
@@ -1558,7 +1594,7 @@ function tpNewComposite(env, nd, tgtTy) {
1558
1594
  const propNames = new Array();
1559
1595
  const propTys = new Array();
1560
1596
  // ty.properties 与 nd.properties 顺序不一样,有一个被排序过,神坑!!!
1561
- nd.properties.forEach((pIdent, _) => {
1597
+ properties.forEach((pIdent) => {
1562
1598
  propNames.push(pIdent.name);
1563
1599
  propTys.push(env.getRawType(pIdent) ?? env.unifier.nextFreshTyAnn('free'));
1564
1600
  });
@@ -1578,7 +1614,7 @@ const extractNameTyPair = (env, ty) => {
1578
1614
  return ty.properties.map((p, _) => [p.name, p.typeAnnotation]);
1579
1615
  }
1580
1616
  else if (ty) {
1581
- return (0, fp_macros_1.IfBind)((0, reference_manager_1.getTokenQualifiedName)(ty))(qName => env.refMgr.qNameDefs.get(qName)
1617
+ return (0, fp_macros_1.IfBind)((0, get_q_name_1.getTokenQualifiedName)(ty))(qName => env.refMgr.qNameDefs.get(qName)
1582
1618
  ?.properties
1583
1619
  .map((p, _) => [p.name, p.typeAnnotation ?? null]))((0, fp_macros_1.feed)([]));
1584
1620
  }
@@ -1722,7 +1758,7 @@ function tpMatch(env, nd, tgtTy) {
1722
1758
  const isRefined = shouldRefine(nd.expression);
1723
1759
  let matchedVarName = undefined;
1724
1760
  if (isRefined) {
1725
- matchedVarName = (0, reference_manager_1.getTokenQualifiedNameForMatchedExpr)(env, nd.expression);
1761
+ matchedVarName = (0, get_q_name_1.getTokenQualifiedNameForMatchedExpr)(env, nd.expression);
1726
1762
  const freshMatchedVar = nasl_concepts_1.Variable.createProtoTypeOnly({
1727
1763
  name: matchedVarName,
1728
1764
  typeAnnotation: exprRefinedTy
@@ -1781,8 +1817,11 @@ function tpMatch(env, nd, tgtTy) {
1781
1817
  const matchTyArgs = nd.cases.map(mc => env.getRawType(mc.body[0]))
1782
1818
  .filter(e => Boolean(e) && !(0, type_predicate_2.isAnyTy)(e)); // 其他分支,不填,类型 get 出来是 undefined 或 any
1783
1819
  // 以后类型开启了单例可以用 set 去重
1784
- env.setType(nd, (0, type_manager_1.createUnionTyAnnIfNecessary)(env, matchTyArgs));
1785
- env.unifier.unify(env.getRawType(nd), tgtTy);
1820
+ const ty = env.unifier.nextFreshTyAnn('free');
1821
+ env.unifier.unify(ty, (0, type_manager_1.createUnionTyAnnIfNecessary)(env, matchTyArgs));
1822
+ env.setType(nd, ty);
1823
+ // 为了避免出现 unify(List<T1> | List<T2>, List<T3>) 这样的问题,必须要求 ty 是个新的类型变量
1824
+ env.unifier.unify(ty, tgtTy);
1786
1825
  }
1787
1826
  else {
1788
1827
  env.setType(nd, type_manager_1.naslVoidTy);
@@ -1809,7 +1848,7 @@ function tpEntityLogic(env, nd, tgtTy) {
1809
1848
  // 例如 app.dataSources.${dbName}.entities.${entityName}
1810
1849
  // 从 'a.b.c.logics.e' 中提取 'a.b.c'
1811
1850
  const getEntityQName = (ctxCallLogic) => {
1812
- const qualifiedNames = (0, reference_manager_1.getTokenQualifiedName)(ctxCallLogic);
1851
+ const qualifiedNames = (0, get_q_name_1.getTokenQualifiedName)(ctxCallLogic);
1813
1852
  const parts = qualifiedNames.split('.');
1814
1853
  return parts.slice(0, parts.length - 2).join('.');
1815
1854
  };
@@ -1942,9 +1981,7 @@ function createAndSetForwardReferencePlaceholder(env, nd) {
1942
1981
  const placeholderFnTy = (0, type_manager_1.createFnTyFromTyAnns)(paramTypes, returnType);
1943
1982
  return placeholderFnTy;
1944
1983
  }
1945
- // @ts-expect-error
1946
- const toRaw = (nd) => nd?.__v_raw ?? nd;
1947
- const toRaws = (nds) => nds.map(toRaw);
1984
+ const toRaws = (nds) => nds.map(dispatch_stmt_1.toRaw);
1948
1985
  /**
1949
1986
  * 处理函数返回类型,过滤错误类型并设置节点类型
1950
1987
  */
@@ -1985,10 +2022,10 @@ const tpNewStructure = (env, nd, tgtTy) => {
1985
2022
  // calculate type of the right-hand side of each assignment line
1986
2023
  const getRightByLine = (nd, itemIdx, memIdx) => {
1987
2024
  if (memIdx !== undefined) {
1988
- return toRaw(nd.rights[itemIdx].members[memIdx]);
2025
+ return (0, dispatch_stmt_1.toRaw)(nd.rights[itemIdx].members[memIdx]);
1989
2026
  }
1990
2027
  else {
1991
- return toRaw(nd.rights[itemIdx].expression);
2028
+ return (0, dispatch_stmt_1.toRaw)(nd.rights[itemIdx].expression);
1992
2029
  }
1993
2030
  };
1994
2031
  exports.getRightByLine = getRightByLine;