@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.
- package/out/checker.d.ts +2 -1
- package/out/checker.d.ts.map +1 -1
- package/out/checker.js +613 -92
- package/out/checker.js.map +1 -1
- package/out/reference-manager/collect-q-name.d.ts.map +1 -1
- package/out/reference-manager/collect-q-name.js +6 -3
- package/out/reference-manager/collect-q-name.js.map +1 -1
- package/out/reference-manager/get-q-name.d.ts.map +1 -1
- package/out/reference-manager/get-q-name.js +12 -4
- package/out/reference-manager/get-q-name.js.map +1 -1
- package/out/reference-manager/reference-manager.d.ts +94 -12
- package/out/reference-manager/reference-manager.d.ts.map +1 -1
- package/out/reference-manager/reference-manager.js +270 -77
- package/out/reference-manager/reference-manager.js.map +1 -1
- package/out/reference-manager/remove-q-name.d.ts.map +1 -1
- package/out/reference-manager/remove-q-name.js +7 -4
- package/out/reference-manager/remove-q-name.js.map +1 -1
- package/out/reference-manager/symbol-type.d.ts +1 -1
- package/out/reference-manager/symbol-type.d.ts.map +1 -1
- package/out/reference-manager/symbol-type.js +1 -0
- package/out/reference-manager/symbol-type.js.map +1 -1
- package/out/reference-manager/update-nasl-fragment.d.ts +2 -2
- package/out/reference-manager/update-nasl-fragment.d.ts.map +1 -1
- package/out/reference-manager/update-nasl-fragment.js +29 -24
- package/out/reference-manager/update-nasl-fragment.js.map +1 -1
- package/out/reference-manager/view-elem-logic.js.map +1 -1
- package/out/services/bindable-logic-service.js.map +1 -1
- package/out/symbol/traverse/concepts/index.d.ts +1 -1
- package/out/symbol/traverse/concepts/index.d.ts.map +1 -1
- package/out/symbol/traverse/concepts/logic/expression/member-expression.js.map +1 -1
- package/out/typer/collectGlobalDefs.d.ts +8 -0
- package/out/typer/collectGlobalDefs.d.ts.map +1 -1
- package/out/typer/collectGlobalDefs.js +74 -49
- package/out/typer/collectGlobalDefs.js.map +1 -1
- package/out/typer/dispatch-all.d.ts.map +1 -1
- package/out/typer/dispatch-all.js +3 -1
- package/out/typer/dispatch-all.js.map +1 -1
- package/out/typer/dispatch-call.d.ts.map +1 -1
- package/out/typer/dispatch-call.js +4 -0
- package/out/typer/dispatch-call.js.map +1 -1
- package/out/typer/dispatch-def.d.ts.map +1 -1
- package/out/typer/dispatch-def.js +45 -19
- package/out/typer/dispatch-def.js.map +1 -1
- package/out/typer/dispatch-expr.d.ts.map +1 -1
- package/out/typer/dispatch-expr.js +69 -60
- package/out/typer/dispatch-expr.js.map +1 -1
- package/out/typer/dispatch-process.d.ts +8 -1
- package/out/typer/dispatch-process.d.ts.map +1 -1
- package/out/typer/dispatch-process.js +34 -1
- package/out/typer/dispatch-process.js.map +1 -1
- package/out/typer/dispatch-stmt.js.map +1 -1
- package/out/typer/dispatch-view.d.ts.map +1 -1
- package/out/typer/dispatch-view.js +56 -20
- package/out/typer/dispatch-view.js.map +1 -1
- package/out/typer/fix-use-before-assign.js.map +1 -1
- package/out/typer/get-oql-files.d.ts.map +1 -1
- package/out/typer/get-oql-files.js +2 -8
- package/out/typer/get-oql-files.js.map +1 -1
- package/out/typer/incremental-update.d.ts +2 -5
- package/out/typer/incremental-update.d.ts.map +1 -1
- package/out/typer/incremental-update.js +95 -19
- package/out/typer/incremental-update.js.map +1 -1
- package/out/typer/oql-checker/ts-parser.d.ts.map +1 -1
- package/out/typer/oql-checker/ts-parser.js +99 -20
- package/out/typer/oql-checker/ts-parser.js.map +1 -1
- package/out/typer/overload-helper.d.ts.map +1 -1
- package/out/typer/overload-helper.js +185 -23
- package/out/typer/overload-helper.js.map +1 -1
- package/out/typer/solver.d.ts +1 -1
- package/out/typer/solver.d.ts.map +1 -1
- package/out/typer/solver.js +16 -4
- package/out/typer/solver.js.map +1 -1
- package/out/typer/subster.d.ts.map +1 -1
- package/out/typer/subster.js +32 -5
- package/out/typer/subster.js.map +1 -1
- package/out/typer/topo-sort.d.ts +1 -0
- package/out/typer/topo-sort.d.ts.map +1 -1
- package/out/typer/topo-sort.js +15 -5
- package/out/typer/topo-sort.js.map +1 -1
- package/out/typer/type-predicate.d.ts.map +1 -1
- package/out/typer/type-predicate.js +11 -3
- package/out/typer/type-predicate.js.map +1 -1
- package/out/typer/typer.d.ts +1 -1
- package/out/typer/typer.d.ts.map +1 -1
- package/out/typer/typer.js +14 -3
- package/out/typer/typer.js.map +1 -1
- package/out/typer/unifier.d.ts.map +1 -1
- package/out/typer/unifier.js +9 -7
- package/out/typer/unifier.js.map +1 -1
- package/out/utils/debug.js.map +1 -1
- package/out/utils/type-operator.d.ts +15 -0
- package/out/utils/type-operator.d.ts.map +1 -1
- package/out/utils/type-operator.js +65 -3
- package/out/utils/type-operator.js.map +1 -1
- 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 =
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
302
|
-
const
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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] ??
|
|
511
|
+
p = p.typeArguments?.[0] ?? type_manager_2.naslAnyTy;
|
|
352
512
|
}
|
|
353
513
|
env.unifier.unify(a, p);
|
|
354
514
|
}
|
|
355
|
-
|
|
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(
|
|
401
|
-
returnType: [
|
|
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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"}
|
package/out/typer/solver.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/out/typer/solver.js
CHANGED
|
@@ -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
|
}
|
package/out/typer/solver.js.map
CHANGED
|
@@ -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,
|
|
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"}
|