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

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 (122) hide show
  1. package/README.md +85 -0
  2. package/out/checker.d.ts.map +1 -1
  3. package/out/checker.js +28 -13
  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 +2 -1
  8. package/out/index.js.map +1 -1
  9. package/out/query/context-variable-query.d.ts +31 -0
  10. package/out/query/context-variable-query.d.ts.map +1 -0
  11. package/out/query/context-variable-query.js +105 -0
  12. package/out/query/context-variable-query.js.map +1 -0
  13. package/out/query/index.d.ts +2 -0
  14. package/out/query/index.d.ts.map +1 -0
  15. package/out/query/index.js +18 -0
  16. package/out/query/index.js.map +1 -0
  17. package/out/reference-manager/builtin-q-name.d.ts +1 -1
  18. package/out/reference-manager/builtin-q-name.d.ts.map +1 -1
  19. package/out/reference-manager/builtin-q-name.js +2 -2
  20. package/out/reference-manager/builtin-q-name.js.map +1 -1
  21. package/out/reference-manager/collect-q-name.d.ts +2 -1
  22. package/out/reference-manager/collect-q-name.d.ts.map +1 -1
  23. package/out/reference-manager/collect-q-name.js +8 -4
  24. package/out/reference-manager/collect-q-name.js.map +1 -1
  25. package/out/reference-manager/get-q-name.d.ts +1 -1
  26. package/out/reference-manager/get-q-name.d.ts.map +1 -1
  27. package/out/reference-manager/get-q-name.js +35 -31
  28. package/out/reference-manager/get-q-name.js.map +1 -1
  29. package/out/reference-manager/reference-manager.d.ts +6 -7
  30. package/out/reference-manager/reference-manager.d.ts.map +1 -1
  31. package/out/reference-manager/reference-manager.js +7 -6
  32. package/out/reference-manager/reference-manager.js.map +1 -1
  33. package/out/reference-manager/remove-q-name.d.ts +30 -28
  34. package/out/reference-manager/remove-q-name.d.ts.map +1 -1
  35. package/out/reference-manager/remove-q-name.js +54 -47
  36. package/out/reference-manager/remove-q-name.js.map +1 -1
  37. package/out/reference-manager/rename-q-name.d.ts +2 -1
  38. package/out/reference-manager/rename-q-name.d.ts.map +1 -1
  39. package/out/reference-manager/rename-q-name.js +31 -36
  40. package/out/reference-manager/rename-q-name.js.map +1 -1
  41. package/out/reference-manager/symbol-type.d.ts +2 -2
  42. package/out/reference-manager/symbol-type.d.ts.map +1 -1
  43. package/out/reference-manager/symbol-type.js +1 -1
  44. package/out/reference-manager/symbol-type.js.map +1 -1
  45. package/out/reference-manager/update-nasl-fragment.d.ts +2 -1
  46. package/out/reference-manager/update-nasl-fragment.d.ts.map +1 -1
  47. package/out/reference-manager/update-nasl-fragment.js +9 -1
  48. package/out/reference-manager/update-nasl-fragment.js.map +1 -1
  49. package/out/typer/collectGlobalDefs.d.ts.map +1 -1
  50. package/out/typer/collectGlobalDefs.js.map +1 -1
  51. package/out/typer/component-def-manager/component-def-manager.d.ts +32 -5
  52. package/out/typer/component-def-manager/component-def-manager.d.ts.map +1 -1
  53. package/out/typer/component-def-manager/component-def-manager.js +96 -19
  54. package/out/typer/component-def-manager/component-def-manager.js.map +1 -1
  55. package/out/typer/component-def-manager/utils.d.ts.map +1 -1
  56. package/out/typer/component-def-manager/utils.js +39 -12
  57. package/out/typer/component-def-manager/utils.js.map +1 -1
  58. package/out/typer/dispatch-all.d.ts +1 -1
  59. package/out/typer/dispatch-all.d.ts.map +1 -1
  60. package/out/typer/dispatch-all.js +3 -7
  61. package/out/typer/dispatch-all.js.map +1 -1
  62. package/out/typer/dispatch-def.d.ts +1 -1
  63. package/out/typer/dispatch-def.d.ts.map +1 -1
  64. package/out/typer/dispatch-def.js +7 -5
  65. package/out/typer/dispatch-def.js.map +1 -1
  66. package/out/typer/dispatch-expr.d.ts +1 -1
  67. package/out/typer/dispatch-expr.d.ts.map +1 -1
  68. package/out/typer/dispatch-expr.js +28 -14
  69. package/out/typer/dispatch-expr.js.map +1 -1
  70. package/out/typer/dispatch-stmt.d.ts.map +1 -1
  71. package/out/typer/dispatch-stmt.js +10 -1
  72. package/out/typer/dispatch-stmt.js.map +1 -1
  73. package/out/typer/dispatch-view.d.ts.map +1 -1
  74. package/out/typer/dispatch-view.js +115 -115
  75. package/out/typer/dispatch-view.js.map +1 -1
  76. package/out/typer/helper.js +3 -3
  77. package/out/typer/helper.js.map +1 -1
  78. package/out/typer/incremental-update.d.ts +15 -13
  79. package/out/typer/incremental-update.d.ts.map +1 -1
  80. package/out/typer/incremental-update.js +89 -42
  81. package/out/typer/incremental-update.js.map +1 -1
  82. package/out/typer/nasl-predicate.d.ts +1 -1
  83. package/out/typer/nasl-predicate.d.ts.map +1 -1
  84. package/out/typer/solver.d.ts +37 -24
  85. package/out/typer/solver.d.ts.map +1 -1
  86. package/out/typer/solver.js +205 -426
  87. package/out/typer/solver.js.map +1 -1
  88. package/out/typer/subster.d.ts +2 -4
  89. package/out/typer/subster.d.ts.map +1 -1
  90. package/out/typer/subster.js +42 -34
  91. package/out/typer/subster.js.map +1 -1
  92. package/out/typer/topo-sort.d.ts.map +1 -1
  93. package/out/typer/topo-sort.js +9 -2
  94. package/out/typer/topo-sort.js.map +1 -1
  95. package/out/typer/type-hint-manager/type-hint-manager.d.ts +3 -0
  96. package/out/typer/type-hint-manager/type-hint-manager.d.ts.map +1 -1
  97. package/out/typer/type-hint-manager/type-hint-manager.js +2 -0
  98. package/out/typer/type-hint-manager/type-hint-manager.js.map +1 -1
  99. package/out/typer/type-manager.d.ts +6 -2
  100. package/out/typer/type-manager.d.ts.map +1 -1
  101. package/out/typer/type-manager.js.map +1 -1
  102. package/out/typer/type-predicate.d.ts.map +1 -1
  103. package/out/typer/type-predicate.js +61 -6
  104. package/out/typer/type-predicate.js.map +1 -1
  105. package/out/typer/typer.d.ts +10 -5
  106. package/out/typer/typer.d.ts.map +1 -1
  107. package/out/typer/typer.js +34 -60
  108. package/out/typer/typer.js.map +1 -1
  109. package/out/typer/unifier.d.ts +0 -3
  110. package/out/typer/unifier.d.ts.map +1 -1
  111. package/out/typer/unifier.js +58 -35
  112. package/out/typer/unifier.js.map +1 -1
  113. package/out/utils/nasl-type-manipulation.d.ts +1 -0
  114. package/out/utils/nasl-type-manipulation.d.ts.map +1 -1
  115. package/out/utils/nasl-type-manipulation.js +3 -1
  116. package/out/utils/nasl-type-manipulation.js.map +1 -1
  117. package/out/utils/parseTsClassType.d.ts.map +1 -1
  118. package/out/utils/parseTsClassType.js +7 -3
  119. package/out/utils/parseTsClassType.js.map +1 -1
  120. package/out/utils/type-operator.d.ts.map +1 -1
  121. package/out/utils/type-operator.js.map +1 -1
  122. package/package.json +13 -6
@@ -6,15 +6,16 @@ const service_1 = require("@lcap/nasl-concepts/service");
6
6
  const asserts_1 = require("@lcap/nasl-concepts/asserts");
7
7
  const type_manager_1 = require("./type-manager");
8
8
  const helper_1 = require("./helper");
9
+ const get_q_name_1 = require("../reference-manager/get-q-name");
9
10
  const reference_manager_1 = require("../reference-manager/reference-manager");
10
11
  const unifier_1 = require("./unifier");
11
12
  const helper_2 = require("./helper");
12
13
  const checker_1 = require("../checker");
13
14
  const type_predicate_1 = require("./type-predicate");
14
15
  const type_predicate_2 = require("./type-predicate");
15
- const types_1 = require("../utils/types");
16
16
  const type_hint_manager_1 = require("./type-hint-manager/type-hint-manager");
17
17
  const query_manager_1 = require("./query-manager/query-manager");
18
+ const context_variable_query_1 = require("../query/context-variable-query");
18
19
  const subster_1 = require("./subster");
19
20
  const nasl_type_manipulation_1 = require("../utils/nasl-type-manipulation");
20
21
  const dispatch_stmt_1 = require("./dispatch-stmt");
@@ -27,18 +28,24 @@ class SemEnv {
27
28
  return this.fileNodes[this.fileNodes.length - 1];
28
29
  }
29
30
  suppressErrorReporting() {
30
- this.errBoundaryBackup = this.errBoundary;
31
- this.errBoundary = null;
31
+ this.errorReportingDisableCount++;
32
32
  }
33
33
  enableErrorReporting() {
34
- this.errBoundary = this.errBoundaryBackup;
35
- this.errBoundaryBackup = null;
34
+ if (this.errorReportingDisableCount > 0) {
35
+ this.errorReportingDisableCount--;
36
+ }
37
+ }
38
+ getErrorReportingDisableCount() {
39
+ return this.errorReportingDisableCount;
40
+ }
41
+ isErrorReportingDisabled() {
42
+ return this.errorReportingDisableCount > 0;
36
43
  }
37
44
  addError(message, __fileNode, __errBoundary, severity = this.errSeverity) {
38
45
  const fileNode = __fileNode ?? this.getCurFileNode();
39
46
  const errBoundary = __errBoundary ?? this.errBoundary;
40
47
  // discard errors
41
- if (!errBoundary) {
48
+ if (!errBoundary || this.errorReportingDisableCount > 0) {
42
49
  return;
43
50
  }
44
51
  this.errorDiagnoser.error(errBoundary, message, {
@@ -79,7 +86,7 @@ class SemEnv {
79
86
  return undefined;
80
87
  }
81
88
  const componentName = nd.name;
82
- const qName = `${(0, reference_manager_1.getTokenQualifiedName)(componentLikeCtx)}.${componentName}`;
89
+ const qName = `${(0, get_q_name_1.getTokenQualifiedName)(componentLikeCtx)}.${componentName}`;
83
90
  return (0, helper_1.getLastOne)(this.nameBindings, qName) ?? this.refMgr.qNameDefs.get(qName);
84
91
  }
85
92
  else if (nd.concept === 'CallLogic' && nd.calleeNamespace && nd.calleeNamespace.startsWith('elements.') && nd.calleeNamespace.endsWith(".logics")) {
@@ -96,7 +103,7 @@ class SemEnv {
96
103
  if (!componentLikeCtx) {
97
104
  return undefined;
98
105
  }
99
- const qViewName = (0, reference_manager_1.getTokenQualifiedName)(componentLikeCtx);
106
+ const qViewName = (0, get_q_name_1.getTokenQualifiedName)(componentLikeCtx);
100
107
  if (!qViewName) {
101
108
  return undefined;
102
109
  }
@@ -111,22 +118,16 @@ class SemEnv {
111
118
  }
112
119
  else {
113
120
  const key = viewElementDef;
114
- let forwardReference = this.getForwardReference(key)?.find(x => x.name === nd.calleeName);
115
- if (forwardReference) {
116
- // @ts-expect-error
117
- return forwardReference.placeholderFnTy;
118
- }
119
- else {
120
- const X = this.unifier.nextFreshTyAnn('free');
121
- this.setForwardReference(key, X, nd.calleeName);
122
- // @ts-expect-error
123
- return X;
124
- }
121
+ // 每次调用都创建新的类型变元,避免多次调用共享同一个类型变元导致约束冲突
122
+ const X = this.unifier.nextFreshTyAnn('free');
123
+ this.setForwardReference(key, X, nd.calleeName, this.errBoundary);
124
+ // @ts-expect-error
125
+ return X;
125
126
  }
126
127
  }
127
128
  return undefined;
128
129
  }
129
- const qName = (0, reference_manager_1.getTokenQualifiedName)(nd);
130
+ const qName = (0, get_q_name_1.getTokenQualifiedName)(nd);
130
131
  if (!qName) {
131
132
  return undefined;
132
133
  }
@@ -149,7 +150,7 @@ class SemEnv {
149
150
  if (nd.concept === 'CallFunction' && isSqlFunction(nd)) {
150
151
  return getSqlFnType(nd);
151
152
  }
152
- return this.refMgr.qNameDefs.get((0, reference_manager_1.getTokenQualifiedName)(nd));
153
+ return this.refMgr.qNameDefs.get((0, get_q_name_1.getTokenQualifiedName)(nd));
153
154
  }
154
155
  get isDebugMode() {
155
156
  // TODO wudengke 土味logLevel机制。需要重构
@@ -214,7 +215,8 @@ class SemEnv {
214
215
  this.resolvedCallInfo = new Map();
215
216
  this.fileNodes = [];
216
217
  this.errBoundary = null;
217
- this.errBoundaryBackup = null;
218
+ // 错误报告禁用引用计数。必须使用引用计数机制,因为 suppressErrorReporting 可能会递归调用
219
+ this.errorReportingDisableCount = 0;
218
220
  this.errSeverity = 'error';
219
221
  this.ctxTpQFE = undefined; // QueryFieldExpression 用的,很烦
220
222
  this.ctxTpEntityTy = undefined; // 实体逻辑用的,很烦
@@ -237,9 +239,9 @@ class SemEnv {
237
239
  // 记录逻辑、页面的局部变量的名字(QName),不包含 ForEach 引入的变量,暂时也不包含 SubLogic
238
240
  this.localVars = new WeakMap();
239
241
  this.forwardReferences = new Map();
240
- this.setForwardReference = (nd, placeholderFnTy, name) => {
242
+ this.setForwardReference = (nd, placeholderFnTy, name, errBoundary) => {
241
243
  const list = this.forwardReferences.get(nd) ?? [];
242
- list.push({ placeholderFnTy, name });
244
+ list.push({ placeholderFnTy, name, errBoundarySnapshot: errBoundary });
243
245
  this.forwardReferences.set(nd, list);
244
246
  };
245
247
  this.getForwardReference = (nd) => {
@@ -334,7 +336,6 @@ class SemEnv {
334
336
  };
335
337
  // TODO wudengke 添加统一logger
336
338
  this.logLevel = 'info';
337
- this.introducedVars = new Map();
338
339
  this.dataSourceTyParam = new Map();
339
340
  this.getDataSourceTyParam = (nd) => {
340
341
  return this.dataSourceTyParam.get((0, dispatch_stmt_1.toRaw)(nd));
@@ -459,42 +460,11 @@ class SemEnv {
459
460
  this.refMgr = refMgr;
460
461
  this.logLevel = isDebug ? "debug" : "info";
461
462
  this.queryManager = new query_manager_1.QuerySystem.QueryManager(this);
463
+ this.scopeManager = new context_variable_query_1.ScopeManager();
462
464
  if (this.isDebugMode) {
463
465
  Error.stackTraceLimit = 100;
464
466
  }
465
467
  }
466
- debugNodeType(nd) {
467
- const ve = (0, asserts_1.isViewElement)(nd) ? nd : nd.getAncestorRaw('ViewElement');
468
- if (ve) {
469
- console.log('[DEBUG]', ve.nodePath, ve);
470
- let curEle = ve;
471
- const ancestors = [];
472
- while (curEle) {
473
- ancestors.push(curEle);
474
- if ((0, asserts_1.isViewElement)(curEle.parentNode)) {
475
- curEle = curEle.parentNode;
476
- }
477
- else {
478
- break;
479
- }
480
- }
481
- ancestors.reverse();
482
- // 将每个节点x映射为env.introducedVariables.get(x)
483
- const introducedVars = ancestors.map(x => {
484
- const vars = this.introducedVars.get(x);
485
- if (vars) {
486
- return { ele: x, vars: vars };
487
- }
488
- return undefined;
489
- }).filter(types_1.isNotNil);
490
- const report = introducedVars.map(x => {
491
- return (`${x.ele.name}:\n` +
492
- ` ${x.vars.map((v) => `${v.name}: ${(0, type_manager_1.showType)(v.typeAnnotation)}`).join('\n ')}`);
493
- }).join('\n');
494
- console.log(introducedVars);
495
- console.log(report);
496
- }
497
- }
498
468
  setRefMgr(refMgr) {
499
469
  this.refMgr = refMgr;
500
470
  }
@@ -505,12 +475,13 @@ class SemEnv {
505
475
  this.allocatedVirtualNodes.clear();
506
476
  this.subTyMemo.clear();
507
477
  this.dataSourceTyParam.clear();
508
- this.introducedVars.clear();
478
+ this.scopeManager = new context_variable_query_1.ScopeManager();
509
479
  this.unifier.cs.clear();
510
480
  this.typeHintManager = new type_hint_manager_1.TypeHintManager(this);
511
481
  this.callLogicToElemTagCache = new WeakMap();
512
482
  this.viewConstraintStats = [];
513
483
  this.localVars = new WeakMap();
484
+ this.clearForwardReferences();
514
485
  this.app = null;
515
486
  this.refMgr.clearAll();
516
487
  }
@@ -531,7 +502,10 @@ function normalize(env, ty) {
531
502
  if (((0, type_predicate_2.isStringTy)(obj) || (0, type_predicate_2.isMapTy)(obj) || (0, type_predicate_2.isListTy)(obj)) && targetName === 'length') {
532
503
  return type_manager_1.naslLongTy;
533
504
  }
534
- if (obj.typeKind === 'anonymousStructure') {
505
+ if ((0, type_predicate_1.isAnyTy)(obj)) {
506
+ return type_manager_1.naslAnyTy;
507
+ }
508
+ else if (obj.typeKind === 'anonymousStructure') {
535
509
  const pickedProperty = obj.properties?.find((x) => {
536
510
  return x.name === targetName;
537
511
  });
@@ -550,7 +524,7 @@ function normalize(env, ty) {
550
524
  }
551
525
  }
552
526
  else if (ty.typeKind === 'generic' || ty.typeKind === 'union') {
553
- const tyArgs = ty.typeArguments?.map(arg => normalize(env, arg));
527
+ const tyArgs = ty.typeArguments?.map((arg) => normalize(env, arg));
554
528
  ty.typeArguments = tyArgs;
555
529
  }
556
530
  else if (ty.typeKind === 'literal') {
@@ -1 +1 @@
1
- {"version":3,"file":"typer.js","sourceRoot":"","sources":["../../src/typer/typer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typer.js","sourceRoot":"","sources":["../../src/typer/typer.ts"],"names":[],"mappings":"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"}
@@ -37,9 +37,6 @@ export declare class Unifier {
37
37
  uSupAsDataSource: (ty1: TypeAnnotation, ty2: TypeAnnotation & {
38
38
  [TypeHintEnum.isFromDataSource]: true;
39
39
  }) => void;
40
- isDataSourceTy: (ty: TypeAnnotation) => ty is TypeAnnotation & {
41
- [isFromDataSource]: true;
42
- };
43
40
  uGeneric: (ty1: TypeAnnotation, ty2: TypeAnnotation) => void;
44
41
  uReference: (ty1: TypeAnnotation, ty2: TypeAnnotation) => void;
45
42
  normalizeUnion: (tys: Array<TypeAnnotation>) => Array<TypeAnnotation>;
@@ -1 +1 @@
1
- {"version":3,"file":"unifier.d.ts","sourceRoot":"","sources":["../../src/typer/unifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unifier.d.ts","sourceRoot":"","sources":["../../src/typer/unifier.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,cAAc,EACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAUH,KAAK,WAAW,EAOhB,MAAM,EAET,MAAM,SAAS,CAAC;AAKjB,OAAO,EAAiC,aAAa,EAAa,MAAM,gBAAgB,CAAC;AAIzF,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAErE,qBAAa,OAAO;IAChB,UAAU,EAAE,MAAM,CAAK;IAEvB,aAAa,EAAE,MAAM,CAAK;IAE1B,EAAE,EAAE,WAAW,CAAa;IAE5B,mBAAmB,EAAE,cAAc,GAAG,SAAS,CAAC;IAEhD,GAAG,EAAE,MAAM,CAAC;IAEZ,oBAAoB,EAAE,OAAO,CAAS;IAEtC,IAAI,YAAY,YAEf;gBAEW,GAAG,EAAE,MAAM;IAMvB,aAAa,SAAU,OAAO,GAAG,MAAM,QAAO,MAAM,KAAO,MAAM,MAAM,CAAC,CAUvE;IAED,gBAAgB,eAIf;IAED,kBAAkB;IAQlB,aAAa;IAQb,sBAAsB;IAItB,eAAe,SAAU,OAAO,GAAG,MAAM,QAAO,MAAM,sBAErD;IAED,cAAc,SAAU,OAAO,GAAG,MAAM,oBAEvC;IAGD,iBAAiB,SAAU,OAAO,GAAG,MAAM,QAAO,MAAM,sBAEvD;IAED,gBAAgB,SAAU,OAAO,GAAG,MAAM,6CAEzC;IAED,OAAO,QAAS,cAAc,GAAG,SAAS,OAAO,cAAc,GAAG,SAAS,UAK1E;IAED,UAAU,QAAS,cAAc,OAAO,cAAc,UAoCrD;IAGD,iBAAiB,QAAS,cAAc,GAAG,SAAS,GAAG,IAAI,OAAO,cAAc,GAAG,SAAS,GAAG,IAAI,eAAe,UAAU,UAK3H;IAGD,KAAK,QAAS,cAAc,GAAG,SAAS,GAAG,IAAI,OAAO,cAAc,GAAG,SAAS,GAAG,IAAI,UAuCtF;IAED,kBAAkB,QAAS,cAAc,GAAG,SAAS,OAAO,cAAc,GAAG,SAAS,gBAAgB,UAAU,UAa/G;IAED,SAAS,QAAS,cAAc,OAAO,cAAc,UAiBpD;IAED,SAAS,QAAS,cAAc,OAAO,cAAc,UAiBpD;IAED,iBAAiB,QAAS,cAAc,OAAO,cAAc,UAwB5D;IAED,iBAAiB,QAAS,cAAc,OAAO,cAAc,UAqB5D;IAGD,WAAW,QAAS,cAAc,OAAO,cAAc,UAmBtD;IAGD,WAAW,QAAS,cAAc,OAAO,cAAc,UAetD;IAED,SAAS,QAAS,cAAc,OAAO,cAAc,UAKpD;IAGD,OAAO,QAAS,cAAc,OAAO,cAAc,UAQlD;IAED,MAAM,QAAS,cAAc,OAAO,cAAc,UAqCjD;IAGD,gBAAgB,QAAS,cAAc,OAAO,cAAc,GAAG;QAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAA;KAAC,UAmCrG;IAED,QAAQ,QAAS,cAAc,OAAO,cAAc,UAYnD;IAGD,UAAU,QAAS,cAAc,OAAO,cAAc,UAKrD;IAED,cAAc,QAAS,MAAM,cAAc,CAAC,KAAG,MAAM,cAAc,CAAC,CAGnE;IAGD,eAAe,WAAY,cAAc,KAAG,IAAI,CAgB/C;IAED,QAAQ,uBAA6B;IAErC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAM9B,UAAU,CAAC,GAAG,EAAE,MAAM;IAStB,QAAQ,uBAAwB,MAAM,KAAK,cAAc,UAqBxD;IAED,QAAQ,uBAAwB,MAAM,KAAK,cAAc,UAsBxD;IAED,UAAU,mCACC,MAAM,MAAM,cAAc,mBAAyB;IAE9D,OAAO,aAEN;IACD,QAAQ,aAIP;IAED,aAAa,CAAC,CAAC,EAAE,cAAc;IAW/B,sBAAsB,OAAQ,cAAc,aAuB3C;IAED,mBAAmB,CAAC,CAAC,EAAE,cAAc;IAMrC,QAAQ;;;;CAoBX"}
@@ -9,7 +9,6 @@ const types_1 = require("../utils/types");
9
9
  const type_manager_1 = require("./type-manager");
10
10
  const type_predicate_1 = require("./type-predicate");
11
11
  const type_predicate_2 = require("./type-predicate");
12
- const type_predicate_3 = require("./type-predicate");
13
12
  const subster_1 = require("./subster");
14
13
  const type_hint_manager_1 = require("./type-hint-manager/type-hint-manager");
15
14
  class Unifier {
@@ -29,7 +28,7 @@ class Unifier {
29
28
  const cnt = this.varCounter + n;
30
29
  const tvName = kind === 'bound' ? `Tp+${cnt}` : `a+${cnt}`;
31
30
  res.push(tvName);
32
- this.trace(tvName, `创建`);
31
+ this.trace(tvName, `创建 ${tvName}`);
33
32
  }
34
33
  this.varCounter += num;
35
34
  return res;
@@ -104,7 +103,7 @@ class Unifier {
104
103
  if (!sub || !sup) {
105
104
  return;
106
105
  }
107
- if ((0, type_predicate_3.isAnyTy)(sub) || (0, type_predicate_3.isAnyTy)(sup)) {
106
+ if ((0, type_predicate_2.isAnyTy)(sub) || (0, type_predicate_2.isAnyTy)(sup)) {
108
107
  return;
109
108
  }
110
109
  if ((0, index_1.isTyAnnTyParam)(sub)) {
@@ -122,7 +121,7 @@ class Unifier {
122
121
  else if ((0, index_1.isFuncTy)(sub) && (0, index_1.isFuncTy)(sup)) {
123
122
  this.uFunction(sub, sup);
124
123
  }
125
- else if (this.isDataSourceTy(sup)) {
124
+ else if (this.env.typeHintManager.isDataSourceTy(sup)) {
126
125
  this.uSupAsDataSource(sub, sup);
127
126
  }
128
127
  else if ((0, index_1.isUnionTy)(sub) && (0, index_1.isUnionTy)(sup)) {
@@ -134,16 +133,16 @@ class Unifier {
134
133
  else if ((0, index_1.isAnonymousTy)(sub) && (0, index_1.isAnonymousTy)(sup)) {
135
134
  this.uAnonymous(sub, sup);
136
135
  }
137
- else if ((0, type_predicate_3.isAStructureTy)(sub)) {
136
+ else if ((0, type_predicate_2.isAStructureTy)(sub)) {
138
137
  this.unify(sub.typeArguments[0], sup);
139
138
  }
140
- else if ((0, type_predicate_3.isAStructureTy)(sup)) {
139
+ else if ((0, type_predicate_2.isAStructureTy)(sup)) {
141
140
  this.unify(sub, sup.typeArguments[0]);
142
141
  }
143
- else if ((0, type_predicate_3.isIndexedType)(sub)) {
142
+ else if ((0, type_predicate_2.isIndexedType)(sub)) {
144
143
  return this.unifyLIndexedType(sub, sup);
145
144
  }
146
- else if ((0, type_predicate_3.isIndexedType)(sup)) {
145
+ else if ((0, type_predicate_2.isIndexedType)(sup)) {
147
146
  return this.unifyRIndexedType(sub, sup);
148
147
  }
149
148
  else if ((0, index_1.isSubTy)(this.env, sub, sup)) {
@@ -168,31 +167,37 @@ class Unifier {
168
167
  }
169
168
  };
170
169
  this.uLGeneric = (sub, sup) => {
171
- if ((0, type_predicate_3.isListTy)(sub)) {
170
+ if ((0, type_predicate_2.isListTy)(sub)) {
172
171
  const newSup = nasl_concepts_1.TypeAnnotation.createGeneric('DeList', { typeArguments: [sup] });
173
172
  const newSub = sub.typeArguments[0];
174
173
  this.unify(newSub, newSup);
175
174
  return;
176
175
  }
177
- else if ((0, type_predicate_3.isMapTy)(sub)) {
178
- const newSup = nasl_concepts_1.TypeAnnotation.createGeneric('DeMapValue', { typeArguments: [sup] });
179
- const newSub = sub.typeArguments?.[1];
180
- this.unify(newSub, newSup);
176
+ else if ((0, type_predicate_2.isMapTy)(sub)) {
177
+ const valueSup = nasl_concepts_1.TypeAnnotation.createGeneric('DeMapValue', { typeArguments: [sup] });
178
+ const valueSub = sub.typeArguments?.[1];
179
+ this.unify(valueSub, valueSup);
180
+ const keySup = nasl_concepts_1.TypeAnnotation.createGeneric('DeMapKey', { typeArguments: [sup] });
181
+ const keySub = sub.typeArguments?.[0];
182
+ this.unify(keySub, keySup);
181
183
  return;
182
184
  }
183
185
  mkUnificationPostErr(this.env, sub, sup, this.isUnifyContravariant);
184
186
  };
185
187
  this.uRGeneric = (sub, sup) => {
186
- if ((0, type_predicate_3.isListTy)(sup)) {
188
+ if ((0, type_predicate_2.isListTy)(sup)) {
187
189
  const newSub = nasl_concepts_1.TypeAnnotation.createGeneric('DeList', { typeArguments: [sub] });
188
190
  const newSup = sup.typeArguments[0];
189
191
  this.unify(newSub, newSup);
190
192
  return;
191
193
  }
192
- else if ((0, type_predicate_3.isMapTy)(sup)) {
193
- const newSub = nasl_concepts_1.TypeAnnotation.createGeneric('DeMapValue', { typeArguments: [sub] });
194
- const newSup = sup.typeArguments?.[1];
195
- this.unify(newSub, newSup);
194
+ else if ((0, type_predicate_2.isMapTy)(sup)) {
195
+ const valueSub = nasl_concepts_1.TypeAnnotation.createGeneric('DeMapValue', { typeArguments: [sub] });
196
+ const valueSup = sup.typeArguments?.[1];
197
+ this.unify(valueSub, valueSup);
198
+ const keySub = nasl_concepts_1.TypeAnnotation.createGeneric('DeMapKey', { typeArguments: [sub] });
199
+ const keySup = sup.typeArguments?.[0];
200
+ this.unify(keySub, keySup);
196
201
  return;
197
202
  }
198
203
  mkUnificationPostErr(this.env, sub, sup, this.isUnifyContravariant);
@@ -210,10 +215,10 @@ class Unifier {
210
215
  // });
211
216
  // newTy.ignored = true;
212
217
  // this.unify(sub.objectType, newTy);
213
- if ((0, type_predicate_3.isListTy)(sup)) {
218
+ if ((0, type_predicate_2.isListTy)(sup)) {
214
219
  this.uRGeneric(sub, sup);
215
220
  }
216
- else if ((0, type_predicate_3.isMapTy)(sup)) {
221
+ else if ((0, type_predicate_2.isMapTy)(sup)) {
217
222
  this.uRGeneric(sub, sup);
218
223
  }
219
224
  }
@@ -260,10 +265,10 @@ class Unifier {
260
265
  (0, assertion_1.assertTrusy)(ty2.typeName);
261
266
  this.pushToLb(this.cs, ty2.typeName, ty1);
262
267
  }
263
- else if ((0, type_predicate_3.isListTy)(ty2) || (0, type_predicate_3.isMapTy)(ty2)) {
268
+ else if ((0, type_predicate_2.isListTy)(ty2) || (0, type_predicate_2.isMapTy)(ty2)) {
264
269
  this.uRGeneric(ty1, ty2);
265
270
  }
266
- else if (this.isDataSourceTy(ty2)) {
271
+ else if (this.env.typeHintManager.isDataSourceTy(ty2)) {
267
272
  this.uSupAsDataSource(ty1, ty2);
268
273
  }
269
274
  return;
@@ -281,7 +286,7 @@ class Unifier {
281
286
  (0, assertion_1.assertTrusy)(ty1.typeName);
282
287
  this.pushToUb(this.cs, ty1.typeName, ty2);
283
288
  }
284
- else if ((0, type_predicate_3.isListTy)(ty1) || (0, type_predicate_3.isMapTy)(ty1)) {
289
+ else if ((0, type_predicate_2.isListTy)(ty1) || (0, type_predicate_2.isMapTy)(ty1)) {
285
290
  this.uLGeneric(ty1, ty2);
286
291
  }
287
292
  return;
@@ -344,13 +349,13 @@ class Unifier {
344
349
  // 断言:以下两者必有其一。这个未证明,但是姑且可以这么假定
345
350
  // 1. ty2 形如 List<T> | { list: List<T>, total: Integer }
346
351
  // 2. ty2 形如 List<T>
347
- const listTyInTy2 = (0, type_predicate_3.isListTy)(ty2) ? ty2 : ty2.typeArguments?.find(type_predicate_3.isListTy);
352
+ const listTyInTy2 = (0, type_predicate_2.isListTy)(ty2) ? ty2 : ty2.typeArguments?.find(type_predicate_2.isListTy);
348
353
  (0, assertion_1.assertTrusy)(listTyInTy2);
349
354
  if (ty1.typeKind === 'anonymousStructure') {
350
355
  const listProp = ty1.properties?.find(p => p.name === 'list');
351
356
  this.unify(listProp?.typeAnnotation, listTyInTy2);
352
357
  }
353
- else if ((0, type_predicate_3.isListTy)(ty1)) {
358
+ else if ((0, type_predicate_2.isListTy)(ty1)) {
354
359
  this.unify(ty1, listTyInTy2);
355
360
  }
356
361
  else if (ty1.typeKind === 'reference') {
@@ -365,7 +370,7 @@ class Unifier {
365
370
  else if ((0, index_1.isFuncTy)(ty1)) {
366
371
  this.unify(ty1?.returnType?.[0], ty2);
367
372
  }
368
- else if ((0, type_predicate_3.isIndexedType)(ty1)) {
373
+ else if ((0, type_predicate_2.isIndexedType)(ty1)) {
369
374
  this.unifyLIndexedType(ty1, ty2);
370
375
  const T = listTyInTy2?.typeArguments?.[0];
371
376
  if (T) {
@@ -379,7 +384,6 @@ class Unifier {
379
384
  }
380
385
  }
381
386
  };
382
- this.isDataSourceTy = (ty) => this.env.typeHintManager.hasHint(ty, type_hint_manager_1.TypeHintEnum.isFromDataSource);
383
387
  this.uGeneric = (ty1, ty2) => {
384
388
  (0, assertion_1.assertTrusy)(ty1.typeName);
385
389
  (0, assertion_1.assertTrusy)(ty2.typeName);
@@ -395,7 +399,7 @@ class Unifier {
395
399
  };
396
400
  // 含 primitive
397
401
  this.uReference = (ty1, ty2) => {
398
- if (!(0, type_predicate_2.isSameRefTy)(ty1, ty2)) {
402
+ if (!(0, type_predicate_1.isSameRefTy)(ty1, ty2)) {
399
403
  mkUnificationPostErr(this.env, ty1, ty2, this.isUnifyContravariant);
400
404
  return;
401
405
  }
@@ -427,13 +431,13 @@ class Unifier {
427
431
  if (this.traceEnabled) {
428
432
  this.trace(k, `pushToUb(${vTyStr})`);
429
433
  }
430
- const alreadyExists = ub.some(x => vTyStr === (0, index_1.showType)(x));
434
+ const alreadyExists = ub.some(x => vTyStr === (0, index_1.showType)(x.bound));
431
435
  if (k !== v.typeName && !alreadyExists) {
432
- ub.push(v);
436
+ ub.push({ bound: v, boundary: this.env.errBoundary, fromPlayground: this.env.isPlayground });
433
437
  const lb = cs.get(k).lb;
434
438
  if (lb) {
435
439
  for (const l of lb) {
436
- this.unify(l, v);
440
+ this.unify(l.bound, v);
437
441
  }
438
442
  }
439
443
  }
@@ -448,13 +452,13 @@ class Unifier {
448
452
  if (this.traceEnabled) {
449
453
  this.trace(k, `pushToLb(${vTyStr})`);
450
454
  }
451
- const alreadyExists = lb.some(x => vTyStr === (0, index_1.showType)(x));
455
+ const alreadyExists = lb.some(x => vTyStr === (0, index_1.showType)(x.bound));
452
456
  if (k !== v.typeName && !alreadyExists) {
453
- lb.push(v);
457
+ lb.push({ bound: v, boundary: this.env.errBoundary, fromPlayground: this.env.isPlayground });
454
458
  const ub = cs.get(k).ub;
455
459
  if (ub) {
456
460
  for (const u of ub) {
457
- this.unify(v, u);
461
+ this.unify(v, u.bound);
458
462
  }
459
463
  }
460
464
  }
@@ -561,6 +565,9 @@ class Unifier {
561
565
  }
562
566
  }
563
567
  exports.Unifier = Unifier;
568
+ /**
569
+ * @deprecated 可以去掉 ignored 这个字段了,它没有用了
570
+ */
564
571
  const isIgnored = (sub, sup) => {
565
572
  return (
566
573
  // @ts-expect-error
@@ -572,6 +579,14 @@ const isIgnored = (sub, sup) => {
572
579
  (sup.typeKind === 'reference' && sup.typeName === 'Object'));
573
580
  };
574
581
  const mkUnificationPostErr = (env, sub, sup, isContravariant = false) => {
582
+ if (!env.errBoundary) {
583
+ return;
584
+ }
585
+ // debug 模式下保存错误堆栈,用于调试
586
+ let errorStack = null;
587
+ if (env.isDebugMode) {
588
+ errorStack = new Error();
589
+ }
575
590
  const postChk = (fileNode, errBoundary, severity, sub, sup) => (env, pSubst) => {
576
591
  if (isIgnored(sub, sup)) {
577
592
  return;
@@ -579,7 +594,15 @@ const mkUnificationPostErr = (env, sub, sup, isContravariant = false) => {
579
594
  const resolvedSubTy = (0, subster_1.normalizeWithSubst)(env, pSubst, sub);
580
595
  const resolvedSupTy = (0, subster_1.normalizeWithSubst)(env, pSubst, sup);
581
596
  if (!(0, type_predicate_1.isResolvedTy)(resolvedSubTy) || !(0, type_predicate_1.isResolvedTy)(resolvedSupTy) || !(0, index_1.isSubTy)(env, resolvedSubTy, resolvedSupTy)) {
582
- env.addError((0, sem_diag_1.mkIncompatibleTyErr)(env, resolvedSubTy, resolvedSupTy), fileNode, errBoundary, severity);
597
+ if (env.isDebugMode) {
598
+ env.addError((0, sem_diag_1.mkIncompatibleTyErr)(env, resolvedSubTy, resolvedSupTy) +
599
+ '\n' +
600
+ (errorStack?.stack ?? '') +
601
+ `\nOriginal types: ${(0, index_1.showType)(sub)} and ${(0, index_1.showType)(sup)}`, fileNode, errBoundary, severity);
602
+ }
603
+ else {
604
+ env.addError((0, sem_diag_1.mkIncompatibleTyErr)(env, resolvedSubTy, resolvedSupTy), fileNode, errBoundary, severity);
605
+ }
583
606
  }
584
607
  };
585
608
  if (isContravariant) {