@typespec/compiler 1.1.0-dev.1 → 1.1.0-dev.10
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/manifest.js +2 -2
- package/dist/src/core/checker.d.ts +6 -0
- package/dist/src/core/checker.d.ts.map +1 -1
- package/dist/src/core/checker.js +28 -8
- package/dist/src/core/checker.js.map +1 -1
- package/dist/src/core/cli/actions/compile/args.d.ts +2 -0
- package/dist/src/core/cli/actions/compile/args.d.ts.map +1 -1
- package/dist/src/core/cli/actions/compile/args.js.map +1 -1
- package/dist/src/core/cli/actions/compile/compile.d.ts.map +1 -1
- package/dist/src/core/cli/actions/compile/compile.js +54 -0
- package/dist/src/core/cli/actions/compile/compile.js.map +1 -1
- package/dist/src/core/cli/cli.js +5 -0
- package/dist/src/core/cli/cli.js.map +1 -1
- package/dist/src/core/linter.d.ts +11 -1
- package/dist/src/core/linter.d.ts.map +1 -1
- package/dist/src/core/linter.js +17 -2
- package/dist/src/core/linter.js.map +1 -1
- package/dist/src/core/name-resolver.js +1 -1
- package/dist/src/core/name-resolver.js.map +1 -1
- package/dist/src/core/program.d.ts.map +1 -1
- package/dist/src/core/program.js +40 -8
- package/dist/src/core/program.js.map +1 -1
- package/dist/src/core/stats.d.ts +39 -0
- package/dist/src/core/stats.d.ts.map +1 -0
- package/dist/src/core/stats.js +19 -0
- package/dist/src/core/stats.js.map +1 -0
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/core/types.js.map +1 -1
- package/dist/src/core/visibility/core.d.ts +7 -0
- package/dist/src/core/visibility/core.d.ts.map +1 -1
- package/dist/src/core/visibility/core.js +60 -0
- package/dist/src/core/visibility/core.js.map +1 -1
- package/dist/src/internals/index.d.ts +1 -0
- package/dist/src/internals/index.d.ts.map +1 -1
- package/dist/src/lib/visibility.d.ts.map +1 -1
- package/dist/src/lib/visibility.js +18 -79
- package/dist/src/lib/visibility.js.map +1 -1
- package/dist/src/server/compile-service.d.ts +5 -1
- package/dist/src/server/compile-service.d.ts.map +1 -1
- package/dist/src/server/compile-service.js +16 -3
- package/dist/src/server/compile-service.js.map +1 -1
- package/dist/src/server/index.d.ts +1 -1
- package/dist/src/server/index.d.ts.map +1 -1
- package/dist/src/server/server-track-action-task.d.ts +18 -0
- package/dist/src/server/server-track-action-task.d.ts.map +1 -0
- package/dist/src/server/server-track-action-task.js +70 -0
- package/dist/src/server/server-track-action-task.js.map +1 -0
- package/dist/src/server/server.js +2 -0
- package/dist/src/server/server.js.map +1 -1
- package/dist/src/server/serverlib.d.ts.map +1 -1
- package/dist/src/server/serverlib.js +52 -0
- package/dist/src/server/serverlib.js.map +1 -1
- package/dist/src/server/types.d.ts +21 -2
- package/dist/src/server/types.d.ts.map +1 -1
- package/dist/src/server/types.js.map +1 -1
- package/package.json +2 -2
package/dist/manifest.js
CHANGED
|
@@ -49,6 +49,12 @@ export interface Checker {
|
|
|
49
49
|
*/
|
|
50
50
|
getValueExactType(value: Value): Type | undefined;
|
|
51
51
|
}
|
|
52
|
+
export interface CheckerStats {
|
|
53
|
+
/** Number of types created */
|
|
54
|
+
createdTypes: number;
|
|
55
|
+
/** Number of types finished */
|
|
56
|
+
finishedTypes: number;
|
|
57
|
+
}
|
|
52
58
|
interface TypePrototype {
|
|
53
59
|
}
|
|
54
60
|
export interface TypeSpecCompletionItem {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/core/checker.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASlD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAY5C,OAAO,EAML,cAAc,EACd,kBAAkB,EA+BlB,mBAAmB,EAWnB,KAAK,EAGL,aAAa,EAOb,IAAI,EAGJ,cAAc,EACd,kBAAkB,EASlB,MAAM,EAMN,WAAW,EACX,QAAQ,EACR,aAAa,EACb,iBAAiB,EAUjB,GAAG,EAaH,IAAI,EAaJ,KAAK,
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/core/checker.ts"],"names":[],"mappings":"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"}
|
package/dist/src/core/checker.js
CHANGED
|
@@ -25,6 +25,10 @@ import { IdentifierKind, ResolutionResultFlags, SyntaxKind, } from "./types.js";
|
|
|
25
25
|
const TypeInstantiationMap = class extends MultiKeyMap {
|
|
26
26
|
};
|
|
27
27
|
export function createChecker(program, resolver) {
|
|
28
|
+
const stats = {
|
|
29
|
+
createdTypes: 0,
|
|
30
|
+
finishedTypes: 0,
|
|
31
|
+
};
|
|
28
32
|
const stdTypes = {};
|
|
29
33
|
const indeterminateEntities = new WeakMap();
|
|
30
34
|
const docFromCommentForSym = new Map();
|
|
@@ -83,6 +87,7 @@ export function createChecker(program, resolver) {
|
|
|
83
87
|
getValueExactType,
|
|
84
88
|
getTemplateParameterUsageMap,
|
|
85
89
|
isTypeAssignableTo: undefined,
|
|
90
|
+
stats,
|
|
86
91
|
};
|
|
87
92
|
const relation = createTypeRelationChecker(program, checker);
|
|
88
93
|
checker.isTypeAssignableTo = relation.isTypeAssignableTo;
|
|
@@ -233,7 +238,7 @@ export function createChecker(program, resolver) {
|
|
|
233
238
|
}
|
|
234
239
|
return entity;
|
|
235
240
|
}
|
|
236
|
-
function getValueForNode(node, mapper, constraint
|
|
241
|
+
function getValueForNode(node, mapper, constraint) {
|
|
237
242
|
const initial = checkNode(node, mapper, constraint);
|
|
238
243
|
if (initial === null) {
|
|
239
244
|
return null;
|
|
@@ -245,15 +250,23 @@ export function createChecker(program, resolver) {
|
|
|
245
250
|
else {
|
|
246
251
|
entity = initial;
|
|
247
252
|
}
|
|
248
|
-
// if (options.legacyTupleAndModelCast && entity !== null && isType(entity)) {
|
|
249
|
-
// entity = legacy_tryTypeToValueCast(entity, constraint, node);
|
|
250
|
-
// }
|
|
251
253
|
if (entity === null) {
|
|
252
254
|
return null;
|
|
253
255
|
}
|
|
254
256
|
if (isValue(entity)) {
|
|
255
257
|
return constraint ? inferScalarsFromConstraints(entity, constraint.type) : entity;
|
|
256
258
|
}
|
|
259
|
+
// If a template parameter that can be a value is used in a template declaration then we allow it but we return null because we don't have an actual value.
|
|
260
|
+
if (entity.kind === "TemplateParameter" &&
|
|
261
|
+
entity.constraint?.valueType &&
|
|
262
|
+
entity.constraint.type === undefined &&
|
|
263
|
+
mapper === undefined) {
|
|
264
|
+
return createValue({
|
|
265
|
+
entityKind: "Value",
|
|
266
|
+
valueKind: "TemplateValue",
|
|
267
|
+
type: entity.constraint.valueType,
|
|
268
|
+
}, entity.constraint.valueType);
|
|
269
|
+
}
|
|
257
270
|
reportExpectedValue(node, entity);
|
|
258
271
|
return null;
|
|
259
272
|
}
|
|
@@ -3396,7 +3409,7 @@ export function createChecker(program, resolver) {
|
|
|
3396
3409
|
pendingResolutions.start(sym, ResolutionKind.Type);
|
|
3397
3410
|
type.type = getTypeForNode(prop.value, mapper);
|
|
3398
3411
|
if (prop.default) {
|
|
3399
|
-
const defaultValue = checkDefaultValue(prop.default, type.type);
|
|
3412
|
+
const defaultValue = checkDefaultValue(prop.default, type.type, mapper);
|
|
3400
3413
|
if (defaultValue !== null) {
|
|
3401
3414
|
type.defaultValue = defaultValue;
|
|
3402
3415
|
}
|
|
@@ -3427,15 +3440,15 @@ export function createChecker(program, resolver) {
|
|
|
3427
3440
|
],
|
|
3428
3441
|
};
|
|
3429
3442
|
}
|
|
3430
|
-
function checkDefaultValue(defaultNode, type) {
|
|
3443
|
+
function checkDefaultValue(defaultNode, type, mapper) {
|
|
3431
3444
|
if (isErrorType(type)) {
|
|
3432
3445
|
// if the prop type is an error we don't need to validate again.
|
|
3433
3446
|
return null;
|
|
3434
3447
|
}
|
|
3435
|
-
const defaultValue = getValueForNode(defaultNode,
|
|
3448
|
+
const defaultValue = getValueForNode(defaultNode, mapper, {
|
|
3436
3449
|
kind: "assignment",
|
|
3437
3450
|
type,
|
|
3438
|
-
}
|
|
3451
|
+
});
|
|
3439
3452
|
if (defaultValue === null) {
|
|
3440
3453
|
return null;
|
|
3441
3454
|
}
|
|
@@ -3444,6 +3457,11 @@ export function createChecker(program, resolver) {
|
|
|
3444
3457
|
reportCheckerDiagnostics(diagnostics);
|
|
3445
3458
|
return null;
|
|
3446
3459
|
}
|
|
3460
|
+
else if (defaultValue.valueKind === "TemplateValue") {
|
|
3461
|
+
// Right now we don't want to expose `TemplateValue` in the type graph.
|
|
3462
|
+
// And as interating with the template declaration is not a supported feature we can just drop it.
|
|
3463
|
+
return null;
|
|
3464
|
+
}
|
|
3447
3465
|
else {
|
|
3448
3466
|
return { ...defaultValue, type };
|
|
3449
3467
|
}
|
|
@@ -4253,6 +4271,7 @@ export function createChecker(program, resolver) {
|
|
|
4253
4271
|
* Given the own-properties of a type, returns a fully-initialized type.
|
|
4254
4272
|
*/
|
|
4255
4273
|
function createType(typeDef) {
|
|
4274
|
+
stats.createdTypes++;
|
|
4256
4275
|
Object.setPrototypeOf(typeDef, typePrototype);
|
|
4257
4276
|
typeDef.isFinished = false;
|
|
4258
4277
|
// If the type has an associated syntax node, check any directives that
|
|
@@ -4265,6 +4284,7 @@ export function createChecker(program, resolver) {
|
|
|
4265
4284
|
return createdType;
|
|
4266
4285
|
}
|
|
4267
4286
|
function finishType(typeDef) {
|
|
4287
|
+
stats.finishedTypes++;
|
|
4268
4288
|
return finishTypeForProgramAndChecker(program, typePrototype, typeDef);
|
|
4269
4289
|
}
|
|
4270
4290
|
function getLiteralType(node) {
|