@artel/artc 0.6.26030 → 0.6.26032
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/build/Cli.js +3 -3
- package/build/api/Api.js +2 -2
- package/build/api/ApiNodeJS.js +3 -3
- package/build/api/ApiServices.js +1 -1
- package/build/{chunk-VD3HHVCM.js → chunk-ONUJ6R7X.js} +103 -55
- package/build/{chunk-HHCWDLSE.js → chunk-RTJ7RFEG.js} +1 -1
- package/build/{chunk-54PBDJ2W.js → chunk-YMWJL3GM.js} +2 -2
- package/build/types/analysis/a/ArgumentsToParametersMatcher.d.ts +1 -0
- package/build/types/analysis/a/OverloadResolver.d.ts +4 -0
- package/package.json +2 -2
package/build/Cli.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
CommandLineCompiler
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-YMWJL3GM.js";
|
|
5
|
+
import "./chunk-RTJ7RFEG.js";
|
|
6
6
|
import {
|
|
7
7
|
__async
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ONUJ6R7X.js";
|
|
9
9
|
|
|
10
10
|
// source/Cli.ts
|
|
11
11
|
function main() {
|
package/build/api/Api.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Compiler
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-RTJ7RFEG.js";
|
|
4
4
|
import {
|
|
5
5
|
AccessKind,
|
|
6
6
|
AccessedFunction_entity,
|
|
@@ -310,7 +310,7 @@ import {
|
|
|
310
310
|
withoutQuotes,
|
|
311
311
|
withoutTemplateQuotes,
|
|
312
312
|
yieldTask
|
|
313
|
-
} from "../chunk-
|
|
313
|
+
} from "../chunk-ONUJ6R7X.js";
|
|
314
314
|
export {
|
|
315
315
|
AccessKind,
|
|
316
316
|
AccessedFunction_entity,
|
package/build/api/ApiNodeJS.js
CHANGED
|
@@ -6,9 +6,9 @@ import {
|
|
|
6
6
|
PhysicalFileSystem,
|
|
7
7
|
PhysicalTypeScriptLibrariesProvider,
|
|
8
8
|
PrintingDiagnosticAcceptor
|
|
9
|
-
} from "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
9
|
+
} from "../chunk-YMWJL3GM.js";
|
|
10
|
+
import "../chunk-RTJ7RFEG.js";
|
|
11
|
+
import "../chunk-ONUJ6R7X.js";
|
|
12
12
|
export {
|
|
13
13
|
CommandLineCompiler,
|
|
14
14
|
FileSystemUri,
|
package/build/api/ApiServices.js
CHANGED
|
@@ -764,7 +764,7 @@ var UniqueWithComparatorQuery = class extends Query {
|
|
|
764
764
|
};
|
|
765
765
|
|
|
766
766
|
// source/common/Constants.ts
|
|
767
|
-
var ArtelVersion = true ? "0.6.
|
|
767
|
+
var ArtelVersion = true ? "0.6.26032" : "";
|
|
768
768
|
var ArtelSourceFileExtensions = [".\u0430\u0440\u0442", ".\u0430\u0440\u0442\u0435\u043B\u044C", ".art", ".artel", ".\u0430\u0440\u0442\u043C", ".\u0430\u0440\u0442\u0435\u043B\u044C\u043C", ".artm", ".artelm"];
|
|
769
769
|
var ArtelSourceFileExtensionSet = new Set(ArtelSourceFileExtensions);
|
|
770
770
|
var ArtelSourceAndConfigurationFileExtensionSet = new Set(ArtelSourceFileExtensionSet).add(".json");
|
|
@@ -49103,7 +49103,15 @@ var TsParameterEntity = class {
|
|
|
49103
49103
|
getType() {
|
|
49104
49104
|
return this.type.getOrInsertWith(() => {
|
|
49105
49105
|
const tsType = this.tsctx.tsChecker.getTypeOfSymbol(this.symbol);
|
|
49106
|
-
|
|
49106
|
+
let result = this.tsctx.type.ofTsType(tsType);
|
|
49107
|
+
if (this.isVariadic()) {
|
|
49108
|
+
const elementType = this.tsctx.analyzer.ifTypeArrayOrReadonlyArrayThenElementType(result);
|
|
49109
|
+
if (elementType !== void 0) {
|
|
49110
|
+
const entity = this.tsctx.analyzer.getLocalizedWellKnownDeclarations(this.getLocale()).parameterArray;
|
|
49111
|
+
result = this.tsctx.analyzer.instantiateType(entity, [elementType]);
|
|
49112
|
+
}
|
|
49113
|
+
}
|
|
49114
|
+
return result;
|
|
49107
49115
|
});
|
|
49108
49116
|
}
|
|
49109
49117
|
getDefinition() {
|
|
@@ -49135,7 +49143,7 @@ var TsParameterEntity = class {
|
|
|
49135
49143
|
}
|
|
49136
49144
|
isOptional() {
|
|
49137
49145
|
const decl = this.getDeclaration();
|
|
49138
|
-
return decl !== void 0 && this.tsctx.tsChecker.isOptionalParameter(decl);
|
|
49146
|
+
return decl !== void 0 && this.tsctx.tsChecker.isOptionalParameter(decl) || this.isVariadic();
|
|
49139
49147
|
}
|
|
49140
49148
|
isVariadic() {
|
|
49141
49149
|
return this.getDeclaration()?.dotDotDotToken !== void 0;
|
|
@@ -67590,6 +67598,9 @@ var Parameter2 = class {
|
|
|
67590
67598
|
isOptional() {
|
|
67591
67599
|
return this.entity.isOptional();
|
|
67592
67600
|
}
|
|
67601
|
+
isVariadic() {
|
|
67602
|
+
return this.entity.isVariadic();
|
|
67603
|
+
}
|
|
67593
67604
|
};
|
|
67594
67605
|
var FunctionTypeMatcherSignature = class {
|
|
67595
67606
|
constructor(analyzer, value) {
|
|
@@ -70846,62 +70857,48 @@ var OverloadResolver = class {
|
|
|
70846
70857
|
let bestSignature = matchingSignatures[0];
|
|
70847
70858
|
for (let i = 1; i < matchingSignatures.length && bestSignature !== void 0; i++) {
|
|
70848
70859
|
const currentSignature = matchingSignatures[i];
|
|
70849
|
-
const
|
|
70850
|
-
|
|
70851
|
-
const bestSignatureTargetParameter = bestSignature.matchResult.mapping.get(argument2);
|
|
70852
|
-
const currentSignatureTargetParameter = currentSignature.matchResult.mapping.get(argument2);
|
|
70853
|
-
if (bestSignatureTargetParameter === void 0 || currentSignatureTargetParameter === void 0) {
|
|
70854
|
-
bestSignature = void 0;
|
|
70855
|
-
break;
|
|
70856
|
-
}
|
|
70857
|
-
const bestSignatureTargetParameterType = bestSignature.substitutedParameterTypes[bestSignatureTargetParameter.getIndex()];
|
|
70858
|
-
const argumentTypeWithBestSignature = argument2.getType(
|
|
70859
|
-
this.analysisOptions.withTargetTypeAndAllowCaching(bestSignatureTargetParameterType, false)
|
|
70860
|
-
);
|
|
70861
|
-
const currentSignatureTargetParameterType = currentSignature.substitutedParameterTypes[currentSignatureTargetParameter.getIndex()];
|
|
70862
|
-
const argumentTypeWithCurrentSignature = argument2.getType(
|
|
70863
|
-
this.analysisOptions.withTargetTypeAndAllowCaching(currentSignatureTargetParameterType, false)
|
|
70864
|
-
);
|
|
70865
|
-
const checkResult = this.chooseBetterTargetType(
|
|
70866
|
-
bestSignatureTargetParameterType,
|
|
70867
|
-
argumentTypeWithBestSignature,
|
|
70868
|
-
currentSignatureTargetParameterType,
|
|
70869
|
-
argumentTypeWithCurrentSignature
|
|
70870
|
-
);
|
|
70871
|
-
betterTypeCheckResults.push(checkResult);
|
|
70872
|
-
}
|
|
70873
|
-
if (bestSignature === void 0) {
|
|
70874
|
-
break;
|
|
70875
|
-
}
|
|
70876
|
-
if (betterTypeCheckResults.every((c) => c === 1 /* TypeAIsBetter */ || c === 0 /* Equally */) && betterTypeCheckResults.some((c) => c === 1 /* TypeAIsBetter */)) {
|
|
70877
|
-
} else if (betterTypeCheckResults.every((c) => c === 2 /* TypeBIsBetter */ || c === 0 /* Equally */) && betterTypeCheckResults.some((c) => c === 2 /* TypeBIsBetter */)) {
|
|
70878
|
-
bestSignature = currentSignature;
|
|
70879
|
-
} else {
|
|
70860
|
+
const newBestSignature = this.tryChooseBetterSignatureBasedOnParameterTypes(bestSignature, currentSignature) ?? this.tryChooseBetterSignatureBasedOnVariadicParameters(bestSignature, currentSignature) ?? this.tryChooseBetterSignatureBasedOnPresenceOfTypeParameters(bestSignature, currentSignature) ?? this.tryChooseBetterSignatureBasedOnParameterCount(bestSignature, currentSignature);
|
|
70861
|
+
if (newBestSignature === void 0) {
|
|
70880
70862
|
bestSignature = void 0;
|
|
70863
|
+
break;
|
|
70881
70864
|
}
|
|
70865
|
+
bestSignature = newBestSignature;
|
|
70882
70866
|
}
|
|
70883
|
-
|
|
70884
|
-
|
|
70885
|
-
|
|
70886
|
-
const
|
|
70887
|
-
|
|
70888
|
-
|
|
70889
|
-
|
|
70890
|
-
|
|
70891
|
-
|
|
70892
|
-
}
|
|
70893
|
-
if (matchingSignatures.length === 1) {
|
|
70894
|
-
return matchingSignatures[0];
|
|
70895
|
-
}
|
|
70896
|
-
const signatureWithLeastParameterCount = Query.minByValue(matchingSignatures, (s) => s.value.getParameters().length);
|
|
70897
|
-
if (signatureWithLeastParameterCount !== void 0) {
|
|
70898
|
-
const parameterCount = signatureWithLeastParameterCount.value.getParameters().length;
|
|
70899
|
-
const isSingle = Query.from(matchingSignatures).count((s) => s.value.getParameters().length === parameterCount) === 1;
|
|
70900
|
-
if (isSingle) {
|
|
70901
|
-
return signatureWithLeastParameterCount;
|
|
70867
|
+
return bestSignature;
|
|
70868
|
+
}
|
|
70869
|
+
tryChooseBetterSignatureBasedOnParameterTypes(signature1, signature2) {
|
|
70870
|
+
const betterTypeCheckResults = new Array();
|
|
70871
|
+
for (const argument2 of this.arguments_) {
|
|
70872
|
+
const signature1TargetParameter = signature1.matchResult.mapping.get(argument2);
|
|
70873
|
+
const signature2TargetParameter = signature2.matchResult.mapping.get(argument2);
|
|
70874
|
+
if (signature1TargetParameter === void 0 || signature2TargetParameter === void 0) {
|
|
70875
|
+
return void 0;
|
|
70902
70876
|
}
|
|
70877
|
+
const signature1TargetParameterType = signature1.substitutedParameterTypes[signature1TargetParameter.getIndex()];
|
|
70878
|
+
const argumentTypeWithSignature1 = argument2.getType(
|
|
70879
|
+
this.analysisOptions.withTargetTypeAndAllowCaching(signature1TargetParameterType, false)
|
|
70880
|
+
);
|
|
70881
|
+
const signature2TargetParameterType = signature2.substitutedParameterTypes[signature2TargetParameter.getIndex()];
|
|
70882
|
+
const argumentTypeWithSignature2 = argument2.getType(
|
|
70883
|
+
this.analysisOptions.withTargetTypeAndAllowCaching(signature2TargetParameterType, false)
|
|
70884
|
+
);
|
|
70885
|
+
const checkResult = this.chooseBetterTargetType(
|
|
70886
|
+
signature1TargetParameterType,
|
|
70887
|
+
argumentTypeWithSignature1,
|
|
70888
|
+
signature2TargetParameterType,
|
|
70889
|
+
argumentTypeWithSignature2
|
|
70890
|
+
);
|
|
70891
|
+
betterTypeCheckResults.push(checkResult);
|
|
70903
70892
|
}
|
|
70904
|
-
|
|
70893
|
+
let result;
|
|
70894
|
+
if (betterTypeCheckResults.every((c) => c === 1 /* TypeAIsBetter */ || c === 0 /* Equally */) && betterTypeCheckResults.some((c) => c === 1 /* TypeAIsBetter */)) {
|
|
70895
|
+
result = signature1;
|
|
70896
|
+
} else if (betterTypeCheckResults.every((c) => c === 2 /* TypeBIsBetter */ || c === 0 /* Equally */) && betterTypeCheckResults.some((c) => c === 2 /* TypeBIsBetter */)) {
|
|
70897
|
+
result = signature2;
|
|
70898
|
+
} else {
|
|
70899
|
+
result = void 0;
|
|
70900
|
+
}
|
|
70901
|
+
return result;
|
|
70905
70902
|
}
|
|
70906
70903
|
chooseBetterTargetType(targetTypeA, typeWhenTargetTypeIsA, targetTypeB, typeWhenTargetTypeIsB) {
|
|
70907
70904
|
const targetTypeAAssignabilityFlags = this.analyzer.getTypeAssignabilityFlags(typeWhenTargetTypeIsA, targetTypeA);
|
|
@@ -70920,6 +70917,45 @@ var OverloadResolver = class {
|
|
|
70920
70917
|
}
|
|
70921
70918
|
return 0 /* Equally */;
|
|
70922
70919
|
}
|
|
70920
|
+
tryChooseBetterSignatureBasedOnVariadicParameters(signature1, signature2) {
|
|
70921
|
+
let result;
|
|
70922
|
+
const lastSignature1Parameter = signature1.value.getParameters().at(-1);
|
|
70923
|
+
const lastSignature2Parameter = signature2.value.getParameters().at(-1);
|
|
70924
|
+
if (lastSignature2Parameter !== void 0 && lastSignature2Parameter.isVariadic() && (lastSignature1Parameter === void 0 || !lastSignature1Parameter.isVariadic())) {
|
|
70925
|
+
result = signature1;
|
|
70926
|
+
} else if (lastSignature1Parameter !== void 0 && lastSignature1Parameter.isVariadic() && (lastSignature2Parameter === void 0 || !lastSignature2Parameter.isVariadic())) {
|
|
70927
|
+
result = signature2;
|
|
70928
|
+
} else {
|
|
70929
|
+
result = void 0;
|
|
70930
|
+
}
|
|
70931
|
+
return result;
|
|
70932
|
+
}
|
|
70933
|
+
tryChooseBetterSignatureBasedOnPresenceOfTypeParameters(signature1, signature2) {
|
|
70934
|
+
let result;
|
|
70935
|
+
const signature1HasTypeParameters = signature1.value.getTypeParameters().length > 0;
|
|
70936
|
+
const signature2HasTypeParameters = signature2.value.getTypeParameters().length > 0;
|
|
70937
|
+
if (!signature1HasTypeParameters && signature2HasTypeParameters) {
|
|
70938
|
+
result = signature1;
|
|
70939
|
+
} else if (!signature2HasTypeParameters && signature1HasTypeParameters) {
|
|
70940
|
+
result = signature2;
|
|
70941
|
+
} else {
|
|
70942
|
+
result = void 0;
|
|
70943
|
+
}
|
|
70944
|
+
return result;
|
|
70945
|
+
}
|
|
70946
|
+
tryChooseBetterSignatureBasedOnParameterCount(signature1, signature2) {
|
|
70947
|
+
let result;
|
|
70948
|
+
const signature1ParameterCount = signature1.value.getParameters().length;
|
|
70949
|
+
const signature2ParameterCount = signature2.value.getParameters().length;
|
|
70950
|
+
if (signature1ParameterCount === signature2ParameterCount) {
|
|
70951
|
+
result = void 0;
|
|
70952
|
+
} else if (signature1ParameterCount < signature2ParameterCount) {
|
|
70953
|
+
result = signature1;
|
|
70954
|
+
} else {
|
|
70955
|
+
result = signature2;
|
|
70956
|
+
}
|
|
70957
|
+
return result;
|
|
70958
|
+
}
|
|
70923
70959
|
functionLiteralCouldBeAssignableToType(type) {
|
|
70924
70960
|
type = type.unalias();
|
|
70925
70961
|
return type.getEntity()?.getOriginalEntity() === this.analyzer.originalWellKnownDeclarations.object || type.getEntity()?.getOriginalEntity() === this.analyzer.originalWellKnownDeclarations.func || type.kind === "function" || type.kind === "union" && type.originalTypes.some((t) => this.functionLiteralCouldBeAssignableToType(t));
|
|
@@ -71268,7 +71304,7 @@ var SignatureParameter = class {
|
|
|
71268
71304
|
return this.value.isOptional();
|
|
71269
71305
|
}
|
|
71270
71306
|
isVariadic() {
|
|
71271
|
-
return
|
|
71307
|
+
return this.value.isVariadic();
|
|
71272
71308
|
}
|
|
71273
71309
|
};
|
|
71274
71310
|
var SignatureWithTypeEntity = class {
|
|
@@ -71850,6 +71886,9 @@ var OverloadResolverSignatureParameter = class {
|
|
|
71850
71886
|
isOptional() {
|
|
71851
71887
|
return this.value.entity.isOptional();
|
|
71852
71888
|
}
|
|
71889
|
+
isVariadic() {
|
|
71890
|
+
return this.value.entity.isVariadic();
|
|
71891
|
+
}
|
|
71853
71892
|
getIndex() {
|
|
71854
71893
|
return this.index;
|
|
71855
71894
|
}
|
|
@@ -72061,6 +72100,9 @@ var MatcherParameter = class {
|
|
|
72061
72100
|
isOptional() {
|
|
72062
72101
|
return this.entity.isOptional();
|
|
72063
72102
|
}
|
|
72103
|
+
isVariadic() {
|
|
72104
|
+
return this.entity.isVariadic();
|
|
72105
|
+
}
|
|
72064
72106
|
};
|
|
72065
72107
|
|
|
72066
72108
|
// source/analysis/a/DeclarationsUsageCounter.ts
|
|
@@ -73148,6 +73190,9 @@ var OverloadResolverParameter = class {
|
|
|
73148
73190
|
isOptional() {
|
|
73149
73191
|
return this.parameter.getEntity().isOptional();
|
|
73150
73192
|
}
|
|
73193
|
+
isVariadic() {
|
|
73194
|
+
return this.parameter.getEntity().isVariadic();
|
|
73195
|
+
}
|
|
73151
73196
|
};
|
|
73152
73197
|
|
|
73153
73198
|
// source/analysis/a/MemberAccessExpressionMeaning.ts
|
|
@@ -74966,6 +75011,9 @@ var OverloadResolverParameterInfo = class {
|
|
|
74966
75011
|
isOptional() {
|
|
74967
75012
|
return false;
|
|
74968
75013
|
}
|
|
75014
|
+
isVariadic() {
|
|
75015
|
+
return false;
|
|
75016
|
+
}
|
|
74969
75017
|
};
|
|
74970
75018
|
|
|
74971
75019
|
// source/analysis/a/UserDefinableUnaryOperatorResolver.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Compiler
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RTJ7RFEG.js";
|
|
4
4
|
import {
|
|
5
5
|
ArtelVersion,
|
|
6
6
|
Cached,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
__async,
|
|
17
17
|
performanceMeasurementStageNames,
|
|
18
18
|
performanceMeasurementStages
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-ONUJ6R7X.js";
|
|
20
20
|
|
|
21
21
|
// source/executor/FileSystemUri.ts
|
|
22
22
|
import { platform } from "os";
|
|
@@ -25,6 +25,7 @@ export interface ISignature<TParameter extends ISignatureParameter> {
|
|
|
25
25
|
export interface ISignatureParameter {
|
|
26
26
|
getName(): Name | undefined;
|
|
27
27
|
isOptional(): boolean;
|
|
28
|
+
isVariadic(): boolean;
|
|
28
29
|
}
|
|
29
30
|
export interface IArgument {
|
|
30
31
|
readonly name: Name | undefined;
|
|
@@ -22,7 +22,11 @@ export declare class OverloadResolver<TSignature extends ISignature<TParameter>,
|
|
|
22
22
|
resolveOverload(): ProcessedSignature<TSignature, TParameter, TArgument>[];
|
|
23
23
|
private areArgumentTypesAssignableToParameterTypes;
|
|
24
24
|
private tryChooseBestSignature;
|
|
25
|
+
private tryChooseBetterSignatureBasedOnParameterTypes;
|
|
25
26
|
private chooseBetterTargetType;
|
|
27
|
+
private tryChooseBetterSignatureBasedOnVariadicParameters;
|
|
28
|
+
private tryChooseBetterSignatureBasedOnPresenceOfTypeParameters;
|
|
29
|
+
private tryChooseBetterSignatureBasedOnParameterCount;
|
|
26
30
|
private functionLiteralCouldBeAssignableToType;
|
|
27
31
|
private reportAmbiguousAccessDiagnostic;
|
|
28
32
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artel/artc",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.26032",
|
|
4
4
|
"description": "Артель Компилятор | Artel Compiler",
|
|
5
5
|
"author": "Nezaboodka Team <contact@nezaboodka.com>",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"@babel/types": "7.27.3",
|
|
45
45
|
"@vscode/l10n": "0.0.18",
|
|
46
46
|
"jsonc-parser": "3.3.1",
|
|
47
|
-
"reactronic": "^0.96.
|
|
47
|
+
"reactronic": "^0.96.26026",
|
|
48
48
|
"typescript": "5.9.3",
|
|
49
49
|
"vscode-json-languageservice": "5.4.2",
|
|
50
50
|
"vscode-languageserver": "9.0.1",
|