@typespec/compiler 0.43.0-dev.4 → 0.43.0-dev.6
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/dist/core/checker.d.ts.map +1 -1
- package/dist/core/checker.js +39 -27
- package/dist/core/checker.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/projection-members.d.ts.map +1 -1
- package/dist/core/projection-members.js +12 -19
- package/dist/core/projection-members.js.map +1 -1
- package/dist/core/projector.js +12 -12
- package/dist/core/projector.js.map +1 -1
- package/dist/core/types.d.ts +92 -4
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/util.d.ts +2 -1
- package/dist/core/util.d.ts.map +1 -1
- package/dist/core/util.js +87 -9
- package/dist/core/util.js.map +1 -1
- package/dist/manifest.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../core/checker.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../core/checker.ts"],"names":[],"mappings":"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"}
|
package/dist/core/checker.js
CHANGED
|
@@ -8,7 +8,7 @@ import { getIdentifierContext, hasParseError, visitChildren } from "./parser.js"
|
|
|
8
8
|
import { createProjectionMembers } from "./projection-members.js";
|
|
9
9
|
import { getParentTemplateNode, isNeverType, isTemplateInstance, isUnknownType, isVoidType, } from "./type-utils.js";
|
|
10
10
|
import { IdentifierKind, SyntaxKind, } from "./types.js";
|
|
11
|
-
import { isArray, MultiKeyMap, mutate } from "./util.js";
|
|
11
|
+
import { createRekeyableMap, isArray, MultiKeyMap, mutate } from "./util.js";
|
|
12
12
|
/**
|
|
13
13
|
* Maps type arguments to type instantiation.
|
|
14
14
|
*/
|
|
@@ -367,16 +367,22 @@ export function createChecker(program) {
|
|
|
367
367
|
// bubbles out somewhere its not supposed to be.
|
|
368
368
|
return errorType;
|
|
369
369
|
}
|
|
370
|
-
function getFullyQualifiedSymbolName(sym) {
|
|
370
|
+
function getFullyQualifiedSymbolName(sym, options) {
|
|
371
371
|
if (!sym)
|
|
372
372
|
return "";
|
|
373
373
|
if (sym.symbolSource)
|
|
374
374
|
sym = sym.symbolSource;
|
|
375
|
-
const parent = sym.parent;
|
|
375
|
+
const parent = sym.parent && !(sym.parent.flags & 2097152 /* SymbolFlags.SourceFile */) ? sym.parent : undefined;
|
|
376
376
|
const name = sym.flags & 16384 /* SymbolFlags.Decorator */ ? sym.name.slice(1) : sym.name;
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
377
|
+
if (parent === null || parent === void 0 ? void 0 : parent.name) {
|
|
378
|
+
return `${getFullyQualifiedSymbolName(parent)}.${name}`;
|
|
379
|
+
}
|
|
380
|
+
else if (options === null || options === void 0 ? void 0 : options.useGlobalPrefixAtTopLevel) {
|
|
381
|
+
return `global.${name}`;
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
return name;
|
|
385
|
+
}
|
|
380
386
|
}
|
|
381
387
|
/**
|
|
382
388
|
* Return a fully qualified id of node
|
|
@@ -748,7 +754,7 @@ export function createChecker(program) {
|
|
|
748
754
|
return Array.from(this.variants.values()).map((v) => v.type);
|
|
749
755
|
},
|
|
750
756
|
expression: true,
|
|
751
|
-
variants:
|
|
757
|
+
variants: createRekeyableMap(),
|
|
752
758
|
decorators: [],
|
|
753
759
|
});
|
|
754
760
|
for (const o of node.options) {
|
|
@@ -867,7 +873,7 @@ export function createChecker(program) {
|
|
|
867
873
|
return parameterType;
|
|
868
874
|
}
|
|
869
875
|
function mergeModelTypes(node, options, mapper) {
|
|
870
|
-
const properties =
|
|
876
|
+
const properties = createRekeyableMap();
|
|
871
877
|
const intersection = createType({
|
|
872
878
|
kind: "Model",
|
|
873
879
|
node,
|
|
@@ -1188,10 +1194,10 @@ export function createChecker(program) {
|
|
|
1188
1194
|
return getMergedSymbol(sym);
|
|
1189
1195
|
}
|
|
1190
1196
|
function reportAmbiguousIdentifier(node, symbols) {
|
|
1191
|
-
const duplicateNames = symbols.map(getFullyQualifiedSymbolName
|
|
1197
|
+
const duplicateNames = symbols.map((s) => getFullyQualifiedSymbolName(s, { useGlobalPrefixAtTopLevel: true }));
|
|
1192
1198
|
reportCheckerDiagnostic(createDiagnostic({
|
|
1193
1199
|
code: "ambiguous-symbol",
|
|
1194
|
-
format: { name: node.sv, duplicateNames },
|
|
1200
|
+
format: { name: node.sv, duplicateNames: duplicateNames.join(", ") },
|
|
1195
1201
|
target: node,
|
|
1196
1202
|
}));
|
|
1197
1203
|
}
|
|
@@ -1391,13 +1397,19 @@ export function createChecker(program) {
|
|
|
1391
1397
|
return binding;
|
|
1392
1398
|
}
|
|
1393
1399
|
// check "global scope" declarations
|
|
1394
|
-
|
|
1395
|
-
if (binding)
|
|
1396
|
-
return binding;
|
|
1400
|
+
const globalBinding = resolveIdentifierInTable(node, globalNamespaceNode.symbol.exports, resolveDecorator);
|
|
1397
1401
|
// check using types
|
|
1398
|
-
|
|
1399
|
-
if (
|
|
1400
|
-
|
|
1402
|
+
const usingBinding = resolveIdentifierInTable(node, scope.locals, resolveDecorator);
|
|
1403
|
+
if (globalBinding && usingBinding) {
|
|
1404
|
+
reportAmbiguousIdentifier(node, [globalBinding, usingBinding]);
|
|
1405
|
+
return globalBinding;
|
|
1406
|
+
}
|
|
1407
|
+
else if (globalBinding) {
|
|
1408
|
+
return globalBinding;
|
|
1409
|
+
}
|
|
1410
|
+
else if (usingBinding) {
|
|
1411
|
+
return usingBinding.flags & 1048576 /* SymbolFlags.DuplicateUsing */ ? undefined : usingBinding;
|
|
1412
|
+
}
|
|
1401
1413
|
}
|
|
1402
1414
|
if (mapper === undefined) {
|
|
1403
1415
|
reportCheckerDiagnostic(createDiagnostic({ code: "unknown-identifier", format: { id: node.sv }, target: node }));
|
|
@@ -1625,7 +1637,7 @@ export function createChecker(program) {
|
|
|
1625
1637
|
kind: "Model",
|
|
1626
1638
|
name: node.id.sv,
|
|
1627
1639
|
node: node,
|
|
1628
|
-
properties:
|
|
1640
|
+
properties: createRekeyableMap(),
|
|
1629
1641
|
namespace: getParentNamespaceType(node),
|
|
1630
1642
|
decorators,
|
|
1631
1643
|
derivedModels: [],
|
|
@@ -1705,7 +1717,7 @@ export function createChecker(program) {
|
|
|
1705
1717
|
return mapper.args.every((t) => t.kind !== "TemplateParameter");
|
|
1706
1718
|
}
|
|
1707
1719
|
function checkModelExpression(node, mapper) {
|
|
1708
|
-
const properties =
|
|
1720
|
+
const properties = createRekeyableMap();
|
|
1709
1721
|
const type = createType({
|
|
1710
1722
|
kind: "Model",
|
|
1711
1723
|
name: "",
|
|
@@ -2365,7 +2377,7 @@ export function createChecker(program) {
|
|
|
2365
2377
|
kind: "Enum",
|
|
2366
2378
|
name: node.id.sv,
|
|
2367
2379
|
node,
|
|
2368
|
-
members:
|
|
2380
|
+
members: createRekeyableMap(),
|
|
2369
2381
|
decorators: [],
|
|
2370
2382
|
}));
|
|
2371
2383
|
const memberNames = new Set();
|
|
@@ -2411,7 +2423,7 @@ export function createChecker(program) {
|
|
|
2411
2423
|
decorators: [],
|
|
2412
2424
|
node,
|
|
2413
2425
|
namespace: getParentNamespaceType(node),
|
|
2414
|
-
operations:
|
|
2426
|
+
operations: createRekeyableMap(),
|
|
2415
2427
|
name: node.id.sv,
|
|
2416
2428
|
});
|
|
2417
2429
|
interfaceType.decorators = checkDecorators(interfaceType, node, mapper);
|
|
@@ -2475,7 +2487,7 @@ export function createChecker(program) {
|
|
|
2475
2487
|
// we're not instantiating this union and we've already checked it
|
|
2476
2488
|
return links.declaredType;
|
|
2477
2489
|
}
|
|
2478
|
-
const variants =
|
|
2490
|
+
const variants = createRekeyableMap();
|
|
2479
2491
|
const unionType = createType({
|
|
2480
2492
|
kind: "Union",
|
|
2481
2493
|
decorators: [],
|
|
@@ -2781,7 +2793,7 @@ export function createChecker(program) {
|
|
|
2781
2793
|
...additionalProps,
|
|
2782
2794
|
});
|
|
2783
2795
|
if (!("properties" in additionalProps)) {
|
|
2784
|
-
newModel.properties =
|
|
2796
|
+
newModel.properties = createRekeyableMap(Array.from(type.properties.entries()).map(([key, prop]) => [
|
|
2785
2797
|
key,
|
|
2786
2798
|
cloneType(prop, { model: newModel }),
|
|
2787
2799
|
]));
|
|
@@ -2799,7 +2811,7 @@ export function createChecker(program) {
|
|
|
2799
2811
|
...additionalProps,
|
|
2800
2812
|
});
|
|
2801
2813
|
if (!("variants" in additionalProps)) {
|
|
2802
|
-
newUnion.variants =
|
|
2814
|
+
newUnion.variants = createRekeyableMap(Array.from(type.variants.entries()).map(([key, prop]) => [
|
|
2803
2815
|
key,
|
|
2804
2816
|
cloneType(prop, { union: newUnion }),
|
|
2805
2817
|
]));
|
|
@@ -2814,7 +2826,7 @@ export function createChecker(program) {
|
|
|
2814
2826
|
...additionalProps,
|
|
2815
2827
|
});
|
|
2816
2828
|
if (!("operations" in additionalProps)) {
|
|
2817
|
-
newInterface.operations =
|
|
2829
|
+
newInterface.operations = createRekeyableMap(Array.from(type.operations.entries()).map(([key, prop]) => [
|
|
2818
2830
|
key,
|
|
2819
2831
|
cloneType(prop, { interface: newInterface }),
|
|
2820
2832
|
]));
|
|
@@ -2829,7 +2841,7 @@ export function createChecker(program) {
|
|
|
2829
2841
|
...additionalProps,
|
|
2830
2842
|
});
|
|
2831
2843
|
if (!("members" in additionalProps)) {
|
|
2832
|
-
newEnum.members =
|
|
2844
|
+
newEnum.members = createRekeyableMap(Array.from(type.members.entries()).map(([key, prop]) => [
|
|
2833
2845
|
key,
|
|
2834
2846
|
cloneType(prop, { enum: newEnum }),
|
|
2835
2847
|
]));
|
|
@@ -2970,7 +2982,7 @@ export function createChecker(program) {
|
|
|
2970
2982
|
name: "",
|
|
2971
2983
|
node: node,
|
|
2972
2984
|
decorators: [],
|
|
2973
|
-
properties:
|
|
2985
|
+
properties: createRekeyableMap(),
|
|
2974
2986
|
derivedModels: [],
|
|
2975
2987
|
});
|
|
2976
2988
|
for (const propNode of node.properties) {
|
|
@@ -3889,7 +3901,7 @@ export function filterModelProperties(program, model, filter) {
|
|
|
3889
3901
|
if (!filtered) {
|
|
3890
3902
|
return model;
|
|
3891
3903
|
}
|
|
3892
|
-
const properties =
|
|
3904
|
+
const properties = createRekeyableMap();
|
|
3893
3905
|
const newModel = program.checker.createType({
|
|
3894
3906
|
kind: "Model",
|
|
3895
3907
|
node: undefined,
|