@lcap/nasl-language-server-core 4.4.0-beta.9 → 4.4.0-rc.2

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 (95) hide show
  1. package/out/checker.d.ts +2 -1
  2. package/out/checker.d.ts.map +1 -1
  3. package/out/checker.js +613 -92
  4. package/out/checker.js.map +1 -1
  5. package/out/reference-manager/collect-q-name.d.ts.map +1 -1
  6. package/out/reference-manager/collect-q-name.js +6 -3
  7. package/out/reference-manager/collect-q-name.js.map +1 -1
  8. package/out/reference-manager/get-q-name.d.ts.map +1 -1
  9. package/out/reference-manager/get-q-name.js +12 -4
  10. package/out/reference-manager/get-q-name.js.map +1 -1
  11. package/out/reference-manager/reference-manager.d.ts +94 -12
  12. package/out/reference-manager/reference-manager.d.ts.map +1 -1
  13. package/out/reference-manager/reference-manager.js +270 -77
  14. package/out/reference-manager/reference-manager.js.map +1 -1
  15. package/out/reference-manager/remove-q-name.d.ts.map +1 -1
  16. package/out/reference-manager/remove-q-name.js +7 -4
  17. package/out/reference-manager/remove-q-name.js.map +1 -1
  18. package/out/reference-manager/symbol-type.d.ts +1 -1
  19. package/out/reference-manager/symbol-type.d.ts.map +1 -1
  20. package/out/reference-manager/symbol-type.js +1 -0
  21. package/out/reference-manager/symbol-type.js.map +1 -1
  22. package/out/reference-manager/update-nasl-fragment.d.ts +2 -2
  23. package/out/reference-manager/update-nasl-fragment.d.ts.map +1 -1
  24. package/out/reference-manager/update-nasl-fragment.js +29 -24
  25. package/out/reference-manager/update-nasl-fragment.js.map +1 -1
  26. package/out/reference-manager/view-elem-logic.js.map +1 -1
  27. package/out/services/bindable-logic-service.js.map +1 -1
  28. package/out/symbol/traverse/concepts/index.d.ts +1 -1
  29. package/out/symbol/traverse/concepts/index.d.ts.map +1 -1
  30. package/out/symbol/traverse/concepts/logic/expression/member-expression.js.map +1 -1
  31. package/out/typer/collectGlobalDefs.d.ts +8 -0
  32. package/out/typer/collectGlobalDefs.d.ts.map +1 -1
  33. package/out/typer/collectGlobalDefs.js +74 -49
  34. package/out/typer/collectGlobalDefs.js.map +1 -1
  35. package/out/typer/dispatch-all.d.ts.map +1 -1
  36. package/out/typer/dispatch-all.js +3 -1
  37. package/out/typer/dispatch-all.js.map +1 -1
  38. package/out/typer/dispatch-call.d.ts.map +1 -1
  39. package/out/typer/dispatch-call.js +4 -0
  40. package/out/typer/dispatch-call.js.map +1 -1
  41. package/out/typer/dispatch-def.d.ts.map +1 -1
  42. package/out/typer/dispatch-def.js +45 -19
  43. package/out/typer/dispatch-def.js.map +1 -1
  44. package/out/typer/dispatch-expr.d.ts.map +1 -1
  45. package/out/typer/dispatch-expr.js +69 -60
  46. package/out/typer/dispatch-expr.js.map +1 -1
  47. package/out/typer/dispatch-process.d.ts +8 -1
  48. package/out/typer/dispatch-process.d.ts.map +1 -1
  49. package/out/typer/dispatch-process.js +34 -1
  50. package/out/typer/dispatch-process.js.map +1 -1
  51. package/out/typer/dispatch-stmt.js.map +1 -1
  52. package/out/typer/dispatch-view.d.ts.map +1 -1
  53. package/out/typer/dispatch-view.js +56 -20
  54. package/out/typer/dispatch-view.js.map +1 -1
  55. package/out/typer/fix-use-before-assign.js.map +1 -1
  56. package/out/typer/get-oql-files.d.ts.map +1 -1
  57. package/out/typer/get-oql-files.js +2 -8
  58. package/out/typer/get-oql-files.js.map +1 -1
  59. package/out/typer/incremental-update.d.ts +2 -5
  60. package/out/typer/incremental-update.d.ts.map +1 -1
  61. package/out/typer/incremental-update.js +95 -19
  62. package/out/typer/incremental-update.js.map +1 -1
  63. package/out/typer/oql-checker/ts-parser.d.ts.map +1 -1
  64. package/out/typer/oql-checker/ts-parser.js +99 -20
  65. package/out/typer/oql-checker/ts-parser.js.map +1 -1
  66. package/out/typer/overload-helper.d.ts.map +1 -1
  67. package/out/typer/overload-helper.js +185 -23
  68. package/out/typer/overload-helper.js.map +1 -1
  69. package/out/typer/solver.d.ts +1 -1
  70. package/out/typer/solver.d.ts.map +1 -1
  71. package/out/typer/solver.js +16 -4
  72. package/out/typer/solver.js.map +1 -1
  73. package/out/typer/subster.d.ts.map +1 -1
  74. package/out/typer/subster.js +32 -5
  75. package/out/typer/subster.js.map +1 -1
  76. package/out/typer/topo-sort.d.ts +1 -0
  77. package/out/typer/topo-sort.d.ts.map +1 -1
  78. package/out/typer/topo-sort.js +15 -5
  79. package/out/typer/topo-sort.js.map +1 -1
  80. package/out/typer/type-predicate.d.ts.map +1 -1
  81. package/out/typer/type-predicate.js +11 -3
  82. package/out/typer/type-predicate.js.map +1 -1
  83. package/out/typer/typer.d.ts +1 -1
  84. package/out/typer/typer.d.ts.map +1 -1
  85. package/out/typer/typer.js +14 -3
  86. package/out/typer/typer.js.map +1 -1
  87. package/out/typer/unifier.d.ts.map +1 -1
  88. package/out/typer/unifier.js +9 -7
  89. package/out/typer/unifier.js.map +1 -1
  90. package/out/utils/debug.js.map +1 -1
  91. package/out/utils/type-operator.d.ts +15 -0
  92. package/out/utils/type-operator.d.ts.map +1 -1
  93. package/out/utils/type-operator.js +65 -3
  94. package/out/utils/type-operator.js.map +1 -1
  95. package/package.json +5 -5
@@ -4,13 +4,21 @@ exports.createStringLiteralType = exports.createCastLiteralType = exports.create
4
4
  const nasl_concepts_1 = require("@lcap/nasl-concepts");
5
5
  const typer_1 = require("./typer");
6
6
  const subster_1 = require("./subster");
7
- const type_predicate_1 = require("./type-predicate");
8
7
  const type_manager_1 = require("./type-manager");
8
+ const type_predicate_1 = require("./type-predicate");
9
+ const type_manager_2 = require("./type-manager");
10
+ const get_q_name_1 = require("../reference-manager/get-q-name");
9
11
  // ---- General overload registry and resolution ----
12
+ // Penalty constants for overload resolution
13
+ const UNION_PENALTY = 0.1; // Penalty for matching union types (both param and arg unions)
14
+ const ENUM_MATCH_PENALTY = 10; // Penalty for matching enum through its valueType
15
+ // Set to a large value (>5) to ensure it has lower priority than:
16
+ // - Generic type parameter matching (penalty 2)
17
+ // - Any type matching (penalty 5)
10
18
  // Helpers to read signature components from unified fn (single source of truth)
11
19
  const getSigParams = (sig) => sig.fn.typeArguments ?? [];
12
20
  const getSigRet = (sig) => sig.fn.returnType?.[0];
13
- const registerOverloadSignature = (namespace, name, params = [], ret = type_manager_1.naslAnyTy, typeParams) => {
21
+ const registerOverloadSignature = (namespace, name, params = [], ret = type_manager_2.naslAnyTy, typeParams) => {
14
22
  // Normalize special cases to avoid storing <T>()=>T shapes
15
23
  if (name === 'Convert' || name === 'FromString') {
16
24
  if (ret && ret.typeKind === 'function' && Array.isArray(ret.returnType) && ret.returnType[0]) {
@@ -71,6 +79,20 @@ const shallowTyEqual = (a, b) => {
71
79
  // For reference/generic etc. compare type name + namespace only
72
80
  return a.typeName === b.typeName && a.typeNamespace === b.typeNamespace;
73
81
  };
82
+ // 参数类型与实参类型的“接近度”:2=同类型,1=兼容(子类型或均数值),0=不接近。用于强制返回时的 tie-break。
83
+ const paramArgCloseness = (env, arg, param) => {
84
+ if (!arg || !param)
85
+ return 0;
86
+ if (shallowTyEqual(arg, param) || (0, type_predicate_1.isEqualTy)(env, arg, param))
87
+ return 2;
88
+ if ((0, type_predicate_1.isSubTy)(env, arg, param) || (0, type_predicate_1.isSubTy)(env, param, arg))
89
+ return 1;
90
+ const argNumeric = (0, type_predicate_1.isDecimalTy)(arg) || (0, type_predicate_1.isLongTy)(arg) || (0, type_predicate_1.isDecimalUnionLongTy)(arg);
91
+ const paramNumeric = (0, type_predicate_1.isDecimalTy)(param) || (0, type_predicate_1.isLongTy)(param) || (0, type_predicate_1.isDecimalUnionLongTy)(param);
92
+ if (argNumeric && paramNumeric)
93
+ return 1;
94
+ return 0;
95
+ };
74
96
  // Find the parameter position that best discriminates overloads:
75
97
  // choose the index with the highest number of distinct shallow types; tie-break by preferring indices
76
98
  // that contain literal types; finally choose the smallest index deterministically.
@@ -117,7 +139,8 @@ const getTypeParamConstraint = (sig, tpName) => {
117
139
  return found?.constraints;
118
140
  };
119
141
  // Determine if arg fits parameter and compute simple score
120
- const matchArgToParam = (env, sig, arg, param) => {
142
+ // Internal implementation with cycle detection for enum types
143
+ const matchArgToParamInternal = (env, sig, arg, param, visitedEnums = new Set()) => {
121
144
  if ((0, type_predicate_1.isUnionTy)(arg)) {
122
145
  arg = (0, typer_1.normalize)(env, arg);
123
146
  }
@@ -140,6 +163,7 @@ const matchArgToParam = (env, sig, arg, param) => {
140
163
  return { ok: true, exact: (0, type_predicate_1.isAnyTy)(param), penalty: 5 };
141
164
  }
142
165
  // Generic type parameter (e.g., T) accepts any type, subject to optional constraints
166
+ // This check must come before enum matching to ensure generics have higher priority
143
167
  if (param.typeKind === 'typeParam') {
144
168
  const constraint = getTypeParamConstraint(sig, param.typeName);
145
169
  if (constraint) {
@@ -152,9 +176,16 @@ const matchArgToParam = (env, sig, arg, param) => {
152
176
  }
153
177
  // Union: ok if any member matches
154
178
  if ((0, type_predicate_1.isUnionTy)(param)) {
179
+ // 如果实参类型和参数类型完全一致(双向子类型关系),则认为是精确匹配
180
+ // 这允许 Decimal | Long 匹配 Decimal | Long 时,优先于 Decimal 匹配 Decimal | Long
181
+ // 注意:只有当 arg 也是 union 时才进行精确匹配检查,避免单个类型(如 Decimal)被误判为与 union(如 Decimal | Long)相等
182
+ // 因为 isNumericImplicitCast 中的 HACK 会让 Decimal | Long 被视为 Decimal 的子类型
183
+ if ((0, type_predicate_1.isUnionTy)(arg) && (0, type_predicate_1.isEqualTy)(env, arg, param)) {
184
+ return { ok: true, exact: true, penalty: 0 };
185
+ }
155
186
  let best = { ok: false, exact: false, penalty: Number.MAX_SAFE_INTEGER };
156
187
  for (const m of unionMembers(param)) {
157
- const res = matchArgToParam(env, sig, arg, m);
188
+ const res = matchArgToParamInternal(env, sig, arg, m, visitedEnums);
158
189
  if (res.ok) {
159
190
  if (!best.ok || res.penalty < best.penalty || (res.penalty === best.penalty && res.exact)) {
160
191
  best = res;
@@ -167,13 +198,93 @@ const matchArgToParam = (env, sig, arg, param) => {
167
198
  // widening(1), generic(2), any(5). This reduces ambiguous ties while preserving expected
168
199
  // behavior: concrete exact matches still win, and exact member matches inside a union win
169
200
  // over candidates that require a widening conversion.
170
- const UNION_PENALTY = 0.1;
171
201
  return best.ok ? { ok: true, exact: false, penalty: best.penalty + UNION_PENALTY } : { ok: false, exact: false, penalty: 0 };
172
202
  }
203
+ /**
204
+ * 数值 union 类型参数(如 Decimal | Long)的特殊处理
205
+ * 允许数值 union 类型匹配具体数值类型,但需要所有成员都能匹配目标类型
206
+ * 这符合类型安全的规则:如果参数可能是 Long 或 Decimal,那么只有当所有可能的值都能匹配目标类型时,才认为匹配成功
207
+ * 例如:Decimal | Long 可以匹配 Decimal(因为 Long 可以转换为 Decimal),但不能匹配 Long(因为 Decimal 不能转换为 Long)
208
+ * 注意:只针对数值 union 类型,不影响其他类型的 union 匹配
209
+ * 例子:重载函数SUM
210
+ * A: function SUM(value: nasl.core.Long): nasl.core.Long;
211
+ * B: function SUM(value: nasl.core.Decimal): nasl.core.Decimal;
212
+ * let a: Decimal | Long;
213
+ * SUM(a);
214
+ * 可以匹配到函数B
215
+ */
216
+ if ((0, type_predicate_1.isDecimalUnionLongTy)(arg)) {
217
+ let best = { ok: false, exact: false, penalty: Number.MAX_SAFE_INTEGER };
218
+ let allMatch = true;
219
+ for (const m of unionMembers(arg)) {
220
+ const res = matchArgToParamInternal(env, sig, m, param, visitedEnums);
221
+ if (res.ok) {
222
+ // 记录最好的匹配(penalty 最小的)
223
+ if (!best.ok || res.penalty < best.penalty || (res.penalty === best.penalty && res.exact)) {
224
+ best = res;
225
+ }
226
+ }
227
+ else {
228
+ // 如果有任何一个成员不能匹配,则整个 union 不能匹配
229
+ allMatch = false;
230
+ break;
231
+ }
232
+ }
233
+ // 只有当 union 的所有成员都能匹配参数类型时,才认为匹配成功
234
+ // 选择最好的匹配(penalty 最小的),并加上 union penalty
235
+ if (allMatch && best.ok) {
236
+ return { ok: true, exact: false, penalty: best.penalty + UNION_PENALTY };
237
+ }
238
+ return { ok: false, exact: false, penalty: 0 };
239
+ }
173
240
  // Exact name match
174
241
  if (arg.typeName === param.typeName && arg.typeNamespace === param.typeNamespace) {
175
242
  return { ok: true, exact: true, penalty: 0 };
176
243
  }
244
+ /**
245
+ * Enum 类型特殊处理:如果精确匹配失败,尝试使用 enum 的 valueType 来匹配
246
+ * 这允许 enum 类型可以匹配其 valueType 对应的参数类型
247
+ * 例如:如果 enum 的 valueType 是 String,那么 enum 可以匹配 String 类型的参数
248
+ * 例子:重载函数SUM
249
+ * A: function SUM(value: nasl.core.Long): nasl.core.Long;
250
+ * B: function SUM(value: nasl.core.Decimal): nasl.core.Decimal;
251
+ * let a: nasl.core.Enum; EnumValue为nasl.core.Long;
252
+ * SUM(a);
253
+ * 可以匹配到函数A
254
+ */
255
+ if ((0, type_predicate_1.isEnumTy)(arg)) {
256
+ const enumDef = env.resolveRef(arg);
257
+ if (enumDef?.concept === 'Enum') {
258
+ // 获取当前 enum 的限定名,用于循环检测
259
+ const enumQName = (0, get_q_name_1.getTokenQualifiedName)(arg);
260
+ // 如果当前 enum 已经在访问路径中,说明存在循环,跳过以避免无限递归
261
+ if (enumQName && visitedEnums.has(enumQName)) {
262
+ return { ok: false, exact: false, penalty: 0 };
263
+ }
264
+ // 获取 valueType,如果不存在则默认为 String
265
+ const valueType = enumDef.valueType ?? type_manager_2.naslStringTy;
266
+ // 如果 valueType 也是 enum,需要递归处理并更新 visitedEnums
267
+ if ((0, type_predicate_1.isEnumTy)(valueType)) {
268
+ // 只有当 enumQName 存在时才进行循环检测
269
+ const newVisitedEnums = enumQName ? (() => {
270
+ const set = new Set(visitedEnums);
271
+ set.add(enumQName);
272
+ return set;
273
+ })() : visitedEnums;
274
+ const valueTypeRes = matchArgToParamInternal(env, sig, valueType, param, newVisitedEnums);
275
+ if (valueTypeRes.ok) {
276
+ return { ok: true, exact: false, penalty: valueTypeRes.penalty + ENUM_MATCH_PENALTY };
277
+ }
278
+ }
279
+ else {
280
+ // valueType 不是 enum,直接递归调用
281
+ const valueTypeRes = matchArgToParamInternal(env, sig, valueType, param, visitedEnums);
282
+ if (valueTypeRes.ok) {
283
+ return { ok: true, exact: false, penalty: valueTypeRes.penalty + ENUM_MATCH_PENALTY };
284
+ }
285
+ }
286
+ }
287
+ }
177
288
  // Long can satisfy Decimal with a minor penalty (numeric widening)
178
289
  if ((0, type_predicate_1.isDecimalTy)(param) && (0, type_predicate_1.isLongTy)(arg)) {
179
290
  return { ok: true, exact: false, penalty: 1 };
@@ -181,6 +292,10 @@ const matchArgToParam = (env, sig, arg, param) => {
181
292
  // Otherwise, not compatible under current simple rules
182
293
  return { ok: false, exact: false, penalty: 0 };
183
294
  };
295
+ // Public wrapper that initializes visitedEnums set
296
+ const matchArgToParam = (env, sig, arg, param) => {
297
+ return matchArgToParamInternal(env, sig, arg, param, new Set());
298
+ };
184
299
  const scoreSignature = (env, args, sig) => {
185
300
  const params = getSigParams(sig);
186
301
  const pLen = params?.length ?? 0;
@@ -200,7 +315,7 @@ const scoreSignature = (env, args, sig) => {
200
315
  for (let i = 0; i < prefixLen; i++) {
201
316
  const res = matchArgToParam(env, sig, args[i], params[i]);
202
317
  if (!res.ok) {
203
- return { compatible: false, exactCount: 0, penalty: Number.MAX_SAFE_INTEGER };
318
+ return { compatible: false, exactCount, penalty };
204
319
  }
205
320
  if (res.exact)
206
321
  exactCount++;
@@ -217,7 +332,7 @@ const scoreSignature = (env, args, sig) => {
217
332
  const elemArgTy = extra.typeArguments[0];
218
333
  const res = matchArgToParam(env, sig, elemArgTy, elemTy);
219
334
  if (!res.ok) {
220
- return { compatible: false, exactCount: 0, penalty: Number.MAX_SAFE_INTEGER };
335
+ return { compatible: false, exactCount, penalty };
221
336
  }
222
337
  if (res.exact)
223
338
  exactCount++;
@@ -228,7 +343,7 @@ const scoreSignature = (env, args, sig) => {
228
343
  // otherwise treat it as a single variadic element
229
344
  const res = matchArgToParam(env, sig, args[prefixLen], elemTy);
230
345
  if (!res.ok) {
231
- return { compatible: false, exactCount: 0, penalty: Number.MAX_SAFE_INTEGER };
346
+ return { compatible: false, exactCount, penalty };
232
347
  }
233
348
  if (res.exact)
234
349
  exactCount++;
@@ -239,7 +354,7 @@ const scoreSignature = (env, args, sig) => {
239
354
  for (let i = prefixLen; i < (args?.length ?? 0); i++) {
240
355
  const res = matchArgToParam(env, sig, args[i], elemTy);
241
356
  if (!res.ok) {
242
- return { compatible: false, exactCount: 0, penalty: Number.MAX_SAFE_INTEGER };
357
+ return { compatible: false, exactCount, penalty };
243
358
  }
244
359
  if (res.exact)
245
360
  exactCount++;
@@ -250,7 +365,7 @@ const scoreSignature = (env, args, sig) => {
250
365
  else {
251
366
  // If not variadic but args longer than params => incompatible
252
367
  if ((args?.length ?? 0) !== pLen) {
253
- return { compatible: false, exactCount: 0, penalty: Number.MAX_SAFE_INTEGER };
368
+ return { compatible: false, exactCount, penalty };
254
369
  }
255
370
  }
256
371
  /**
@@ -281,7 +396,7 @@ const scoreSignature = (env, args, sig) => {
281
396
  const eq = (a, b) => (0, type_predicate_1.isSubTy)(env, a, b) && (0, type_predicate_1.isSubTy)(env, b, a);
282
397
  const base = args[idxs[0]];
283
398
  if (!idxs.every(j => eq(base, args[j]))) {
284
- return { compatible: false, exactCount: 0, penalty: Number.MAX_SAFE_INTEGER };
399
+ return { compatible: false, exactCount, penalty };
285
400
  }
286
401
  // Reward having a single type var reused across positions (T,T) vs (T1,T2).
287
402
  // Use a slightly larger bonus (2) so coherent generics more strongly influence
@@ -289,6 +404,20 @@ const scoreSignature = (env, args, sig) => {
289
404
  coherenceBonus += 2;
290
405
  }
291
406
  penalty = Math.max(0, penalty - coherenceBonus);
407
+ // 当有足够参数时,优先选择非可变参数更多的重载
408
+ // 这有助于在多个兼容的重载中选择更具体的重载(例如,CASE_WHEN 带 caseElse 参数 vs 不带 caseElse 参数)
409
+ // 但我们只在以下情况下应用此规则:
410
+ // 1. 函数有可变参数
411
+ // 2. 实际参数数量超过最小必需数量(即部分参数会进入可变参数)
412
+ // 3. penalty 值非常小(每个额外参数 0.1),仅用于打破平局,不会覆盖类型匹配质量(exactCount)
413
+ // 或其他 penalty(any=5, generic=2 等)
414
+ // 这是一种保守的方法,只应在两个重载在其他方面得分相同的情况下影响选择,优先选择更具体的重载
415
+ if (isVariadic && (args?.length ?? 0) > prefixLen) {
416
+ const variadicArgCount = (args?.length ?? 0) - prefixLen;
417
+ // 使用非常小的 penalty(0.1),仅影响平局情况
418
+ // 这确保不会覆盖有意义的类型匹配差异
419
+ penalty += variadicArgCount * 0.1;
420
+ }
292
421
  return { compatible: true, exactCount, penalty };
293
422
  };
294
423
  const resolveOverloadedFunction = (env, namespace, name, argTys,
@@ -298,20 +427,44 @@ typeArgs) => {
298
427
  if (!candidates.length) {
299
428
  return { retTy: undefined };
300
429
  }
301
- // Compute scores, filter only compatible
302
- const scored = candidates
303
- .map(sig => ({ sig, score: scoreSignature(env, argTys, sig) }))
304
- .filter(x => x.score.compatible);
305
- if (!scored.length) {
430
+ // Compute scores for all candidates (needed for forceReturnClosest to pick partial best)
431
+ const allScored = candidates.map(sig => ({ sig, score: scoreSignature(env, argTys, sig) }));
432
+ const scored = allScored.filter(x => x.score.compatible);
433
+ // 无完全匹配时:若启用“强制返回”且所有实参类型已求解,则从全部候选中选最接近的一个。
434
+ // 若有任一实参未求解(SelectOverload、类型变量等),不强制返回,避免延迟求解后真正匹配与当前“最接近”不一致。
435
+ const allArgsResolved = (argTys?.length ?? 0) === 0 || (argTys ?? []).every(ty => !(0, type_predicate_1.isUnResolvedTy)(ty));
436
+ const toUse = scored.length > 0
437
+ ? scored
438
+ : (allArgsResolved && allScored.length > 0 ? allScored : []);
439
+ if (!toUse.length) {
306
440
  return { retTy: undefined };
307
441
  }
308
442
  // Prefer highest exact matches; then lowest penalty (Long over Decimal); if tie remains, ambiguous
309
- scored.sort((a, b) => {
443
+ // The penalty already includes a component that prefers overloads with more non-variadic parameters
444
+ // when we have enough arguments, making more specific overloads preferred automatically
445
+ const usedForceClosest = scored.length === 0 && toUse.length > 0;
446
+ // 强制返回时 tie-break:优先选“形参类型与实参类型更接近”的重载(如第二实参是 Decimal 则优先第二形参是 Decimal 的)
447
+ const paramClosenessScore = (sig) => {
448
+ const params = getSigParams(sig);
449
+ let s = 0;
450
+ for (let i = 0; i < (argTys?.length ?? 0) && i < params.length; i++) {
451
+ s += paramArgCloseness(env, argTys[i], params[i]);
452
+ }
453
+ return s;
454
+ };
455
+ toUse.sort((a, b) => {
310
456
  if (b.score.exactCount !== a.score.exactCount)
311
457
  return b.score.exactCount - a.score.exactCount;
312
- return a.score.penalty - b.score.penalty;
458
+ if (a.score.penalty !== b.score.penalty)
459
+ return a.score.penalty - b.score.penalty;
460
+ if (usedForceClosest) {
461
+ const diff = paramClosenessScore(b.sig) - paramClosenessScore(a.sig);
462
+ if (diff !== 0)
463
+ return diff;
464
+ }
465
+ return 0;
313
466
  });
314
- const best = scored[0];
467
+ const best = toUse[0];
315
468
  // Work on the unified function type to reuse existing utilities
316
469
  const fnTy = best.sig.fn;
317
470
  // Step 1: freshen type params (build mapping oldName -> freshTyVar)
@@ -342,17 +495,26 @@ typeArgs) => {
342
495
  // Step 3: infer remaining generic type parameters from argument positions
343
496
  // If a parameter is a (freshened) typeParam, bind it to the corresponding argument type
344
497
  // Example: IFNULL<T>(a: T, b: T): T and args (Long, Long) => T := Long
498
+ // IMPORTANT: Save return type before unification for non-generic functions
499
+ // For non-generic functions like SUM(Decimal): Decimal, the return type is fixed and should not
500
+ // be affected by parameter type unification. However, for generic functions, return type may
501
+ // contain type parameters that need to be resolved through unification, so we need to get it after.
502
+ // We need to deep copy the return type to avoid it being modified by type unification.
503
+ const isGenericFunction = (freshenedFn.typeParams?.length ?? 0) > 0;
504
+ const originalRetTy = isGenericFunction ? undefined : (freshenedFn.returnType?.[0] ? (0, type_manager_1.copyTyAnn)(freshenedFn.returnType[0]) : type_manager_2.naslAnyTy);
345
505
  const paramsAfterPartial = freshenedFn.typeArguments ?? [];
346
506
  for (let i = 0; i < paramsAfterPartial.length && i < argTys.length; i++) {
347
507
  let p = paramsAfterPartial[i];
348
508
  const a = argTys[i];
349
509
  // 对函数参数中的可变参数标记,直接取出其中的Item类型作为p
350
510
  if (p.spread && (0, type_predicate_1.isListTy)(p)) {
351
- p = p.typeArguments?.[0] ?? type_manager_1.naslAnyTy;
511
+ p = p.typeArguments?.[0] ?? type_manager_2.naslAnyTy;
352
512
  }
353
513
  env.unifier.unify(a, p);
354
514
  }
355
- const outRet = freshenedFn.returnType?.[0] ?? type_manager_1.naslAnyTy;
515
+ // For non-generic functions, use the original return type to avoid being affected by parameter unification
516
+ // For generic functions, get return type after unification so type parameters can be resolved
517
+ const outRet = isGenericFunction ? (freshenedFn.returnType?.[0] ?? type_manager_2.naslAnyTy) : originalRetTy;
356
518
  // Build a resolved, freshened signature for downstream consumers
357
519
  const resolvedSig = {
358
520
  name: best.sig.name,
@@ -397,8 +559,8 @@ const createFallbackOverloadDef = (calleeName, namespace, numOfArgs) => {
397
559
  name: `${namespace}.${calleeName}Any`,
398
560
  __TypeAnnotation: {
399
561
  typeKind: 'function',
400
- typeArguments: Array(numOfArgs).fill(type_manager_1.naslAnyTy), // Accept any type for the determining parameter
401
- returnType: [type_manager_1.naslAnyTy] // Return any type
562
+ typeArguments: Array(numOfArgs).fill(type_manager_2.naslAnyTy), // Accept any type for the determining parameter
563
+ returnType: [type_manager_2.naslAnyTy] // Return any type
402
564
  }
403
565
  };
404
566
  return lgc;
@@ -1 +1 @@
1
- {"version":3,"file":"overload-helper.js","sourceRoot":"","sources":["../../src/typer/overload-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overload-helper.js","sourceRoot":"","sources":["../../src/typer/overload-helper.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ export declare class Solver {
26
26
  private getConcreteTys;
27
27
  /**
28
28
  * 处理特定边界(下界或上界)的类型:@warning decimal 和 long 的处理被 AI 破坏,现在是只处理单个 lb 或 ub,之后修复 Zirun
29
- * 1. 下界含有 union:选择 union
29
+ * 1. 下界含有 union:选择 union 类型(但纯数值 Union 类型需要特殊处理,数值类型优先级:Decimal > Long/Number)
30
30
  * 2. 下界含有 Decimal:选择 Decimal
31
31
  * 3. 下界只有 Number,上界含有 Decimal:选择 Decimal
32
32
  * 4. 下界只有 Number,上界没有 Decimal:选择 Long (2、3 合并:下界 Number 上界任意数值类型)
@@ -1 +1 @@
1
- {"version":3,"file":"solver.d.ts","sourceRoot":"","sources":["../../src/typer/solver.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,UAAU,EACV,cAAc,EACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAMjD,OAAO,EACH,aAAa,EAKZ,WAAW,EACZ,MAAM,EACN,kBAAkB,EACrB,MAAM,gBAAgB,CAAC;AAkBxB,qBAAa,MAAM;IACf,EAAE,EAAE,WAAW,CAAC;IAChB,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;gBAEA,GAAG,EAAE,MAAM;IAOvB,sBAAsB,uCA6FpB;IAIF;;;;;OAKG;IACH,kBAAkB,UAAW,MAAM,YAAa,cAAc,mCAsB7D;IAGD,8BAA8B,kEAS5B;IAEF,uBAAuB,kDAUrB;IAGF,2BAA2B,4BASzB;IAEF;;;;;OAKG;IACH,OAAO,CAAC,cAAc,CAmBrB;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,mBAAmB,CAsE1B;IAGD,OAAO,CAAC,cAAc,CA0ErB;IAGD,UAAU,iCAIT;IAED;;;;;;;;;OASG;IAEH,iBAAiB,+DAAgE,IAAI,cAAc,EAAE,cAAc,CAAC,KAAG,MAAM;QACzH,MAAM,EAAE,cAAc,CAAC;QACvB,MAAM,EAAE,cAAc,CAAC;QACvB,WAAW,EAAE,UAAU,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,OAAO,CAAC;KAC3B,CAAC,CAwED;IAGD,wCAAwC,sCAAuC,CAAC,EAAE,EAAE,cAAc,GAAG,SAAS,KAAK,cAAc,UAS/H;IASF,KAAK,aAGJ;CACJ;AAuDD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,QAGpC"}
1
+ {"version":3,"file":"solver.d.ts","sourceRoot":"","sources":["../../src/typer/solver.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,UAAU,EACV,cAAc,EACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAa,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAMjD,OAAO,EACH,aAAa,EAKZ,WAAW,EACZ,MAAM,EACN,kBAAkB,EACrB,MAAM,gBAAgB,CAAC;AAmBxB,qBAAa,MAAM;IACf,EAAE,EAAE,WAAW,CAAC;IAChB,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;gBAEA,GAAG,EAAE,MAAM;IAOvB,sBAAsB,uCA6FpB;IAIF;;;;;OAKG;IACH,kBAAkB,UAAW,MAAM,YAAa,cAAc,mCAsB7D;IAGD,8BAA8B,kEAS5B;IAEF,uBAAuB,kDAUrB;IAGF,2BAA2B,4BASzB;IAEF;;;;;OAKG;IACH,OAAO,CAAC,cAAc,CAmBrB;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,mBAAmB,CAkF1B;IAGD,OAAO,CAAC,cAAc,CA0ErB;IAGD,UAAU,iCAIT;IAED;;;;;;;;;OASG;IAEH,iBAAiB,+DAAgE,IAAI,cAAc,EAAE,cAAc,CAAC,KAAG,MAAM;QACzH,MAAM,EAAE,cAAc,CAAC;QACvB,MAAM,EAAE,cAAc,CAAC;QACvB,WAAW,EAAE,UAAU,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,OAAO,CAAC;KAC3B,CAAC,CAwED;IAGD,wCAAwC,sCAAuC,CAAC,EAAE,EAAE,cAAc,GAAG,SAAS,KAAK,cAAc,UAS/H;IASF,KAAK,aAGJ;CACJ;AAuDD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,QAGpC"}
@@ -190,7 +190,7 @@ class Solver {
190
190
  };
191
191
  /**
192
192
  * 处理特定边界(下界或上界)的类型:@warning decimal 和 long 的处理被 AI 破坏,现在是只处理单个 lb 或 ub,之后修复 Zirun
193
- * 1. 下界含有 union:选择 union
193
+ * 1. 下界含有 union:选择 union 类型(但纯数值 Union 类型需要特殊处理,数值类型优先级:Decimal > Long/Number)
194
194
  * 2. 下界含有 Decimal:选择 Decimal
195
195
  * 3. 下界只有 Number,上界含有 Decimal:选择 Decimal
196
196
  * 4. 下界只有 Number,上界没有 Decimal:选择 Long (2、3 合并:下界 Number 上界任意数值类型)
@@ -200,10 +200,10 @@ class Solver {
200
200
  * 8. 下界和上界都只有 Number:选择 Long
201
201
  */
202
202
  this.processSingleBounds = (boundEntries, subst, incTyVars, preferUnion) => {
203
+ // 下界策略:优先选择 union 类型(但纯数值 Union 类型需要特殊处理)
204
+ const unionTypes = [];
203
205
  // 首先考虑 union 类型优先级
204
206
  if (preferUnion) {
205
- // 下界策略:优先选择 union 类型
206
- const unionTypes = [];
207
207
  for (const boundEntry of boundEntries) {
208
208
  const ty = boundEntry.bound;
209
209
  const shouldInclude = !(0, type_predicate_1.isAnyTy)(ty) && (incTyVars || !hasNaslTyParamAnn(ty, subst));
@@ -213,8 +213,16 @@ class Solver {
213
213
  }
214
214
  }
215
215
  }
216
+ // 检查是否所有 Union 类型都是纯数值 Union 类型(所有成员都是数值类型)
217
+ // 注意:空数组的 every 会返回 true,所以需要先检查长度
218
+ const isPureNumericUnion = unionTypes.length > 0 && unionTypes.every(unionTy => {
219
+ if (!(0, type_predicate_1.isUnionTy)(unionTy) || !unionTy.typeArguments) {
220
+ return false;
221
+ }
222
+ return unionTy.typeArguments.every(memberTy => (0, type_predicate_1.isNumericTy)(memberTy));
223
+ });
216
224
  // 如果找到 union 类型,优先返回
217
- if (unionTypes.length > 0) {
225
+ if (unionTypes.length > 0 && !isPureNumericUnion) {
218
226
  return unionTypes;
219
227
  }
220
228
  }
@@ -238,6 +246,10 @@ class Solver {
238
246
  if (hasDecimal) {
239
247
  return [type_manager_1.naslDecimalTy];
240
248
  }
249
+ // 如果只有 Union 类型(没有单独的 Decimal),返回 Union 类型
250
+ if (preferUnion && unionTypes.length > 0) {
251
+ return unionTypes;
252
+ }
241
253
  if (hasLong || hasNumber) {
242
254
  return [type_manager_1.naslLongTy];
243
255
  }
@@ -1 +1 @@
1
- {"version":3,"file":"solver.js","sourceRoot":"","sources":["../../src/typer/solver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solver.js","sourceRoot":"","sources":["../../src/typer/solver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"subster.d.ts","sourceRoot":"","sources":["../../src/typer/subster.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACV,cAAc,EACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,MAAM,EAId,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAyG,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAatJ,eAAO,MAAM,UAAU,EAAE,aAAiD,CAAC;AA4H3E,eAAO,MAAM,UAAU,QAAS,MAAM,4BAA4B,cAAc,GAAG,SAAS,KAAG,cA2K9F,CAAA;AAGD,eAAO,MAAM,iBAAiB,QAAS,MAAM,4BAA4B,cAAc,GAAG,SAAS,KAAG,cAuKrG,CAAA;AAED,eAAO,MAAM,qBAAqB,QAAS,MAAM,MAAM,UAAU,kBAmBhE,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAS,MAAM,cAAc,UAAU,8DA0EnE,CAAA;AAED,eAAO,MAAM,kBAAkB,QAAU,MAAM,UAAU,CAAC,EAAE,EAAE,cAAc,GAAG,SAAS,KAAK,cAAc,MAAM,cAAc,GAAG,SAAS,mBAC/G,CAAC;AAgB7B,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,aAAa,CAMlG"}
1
+ {"version":3,"file":"subster.d.ts","sourceRoot":"","sources":["../../src/typer/subster.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACV,cAAc,EACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,MAAM,EAId,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAyG,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAatJ,eAAO,MAAM,UAAU,EAAE,aAAiD,CAAC;AA4H3E,eAAO,MAAM,UAAU,QAAS,MAAM,4BAA4B,cAAc,GAAG,SAAS,KAAG,cAwL9F,CAAA;AAGD,eAAO,MAAM,iBAAiB,QAAS,MAAM,4BAA4B,cAAc,GAAG,SAAS,KAAG,cAqLrG,CAAA;AAED,eAAO,MAAM,qBAAqB,QAAS,MAAM,MAAM,UAAU,kBAmBhE,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAS,MAAM,cAAc,UAAU,8DA0EnE,CAAA;AAED,eAAO,MAAM,kBAAkB,QAAU,MAAM,UAAU,CAAC,EAAE,EAAE,cAAc,GAAG,SAAS,KAAK,cAAc,MAAM,cAAc,GAAG,SAAS,mBAC/G,CAAC;AAgB7B,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,aAAa,CAMlG"}