@typespec/compiler 0.66.0-dev.13 → 0.66.0-dev.22
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/generated-defs/TypeSpec.d.ts +1 -1
- package/dist/manifest.js +2 -2
- package/dist/src/core/checker.d.ts.map +1 -1
- package/dist/src/core/checker.js +39 -0
- package/dist/src/core/checker.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 +3 -0
- package/dist/src/core/cli/actions/compile/compile.js.map +1 -1
- package/dist/src/core/cli/actions/info.js +2 -2
- package/dist/src/core/cli/actions/info.js.map +1 -1
- package/dist/src/core/cli/cli.js +0 -2
- package/dist/src/core/cli/cli.js.map +1 -1
- package/dist/src/core/compiler-code-fixes/remove-unused-template-parameter.codefix.d.ts +6 -0
- package/dist/src/core/compiler-code-fixes/remove-unused-template-parameter.codefix.d.ts.map +1 -0
- package/dist/src/core/compiler-code-fixes/remove-unused-template-parameter.codefix.js +45 -0
- package/dist/src/core/compiler-code-fixes/remove-unused-template-parameter.codefix.js.map +1 -0
- package/dist/src/core/helpers/index.d.ts +1 -1
- package/dist/src/core/helpers/index.d.ts.map +1 -1
- package/dist/src/core/helpers/index.js +1 -1
- package/dist/src/core/helpers/index.js.map +1 -1
- package/dist/src/core/install.d.ts +1 -1
- package/dist/src/core/install.d.ts.map +1 -1
- package/dist/src/core/install.js +22 -6
- package/dist/src/core/install.js.map +1 -1
- package/dist/src/core/linter-rules/unused-template-parameter.rule.d.ts +2 -0
- package/dist/src/core/linter-rules/unused-template-parameter.rule.d.ts.map +1 -0
- package/dist/src/core/linter-rules/unused-template-parameter.rule.js +36 -0
- package/dist/src/core/linter-rules/unused-template-parameter.rule.js.map +1 -0
- package/dist/src/core/linter-rules/unused-using.rule.d.ts +2 -0
- package/dist/src/core/linter-rules/unused-using.rule.d.ts.map +1 -0
- package/dist/src/core/linter-rules/unused-using.rule.js +38 -0
- package/dist/src/core/linter-rules/unused-using.rule.js.map +1 -0
- package/dist/src/core/linter.d.ts +0 -1
- package/dist/src/core/linter.d.ts.map +1 -1
- package/dist/src/core/linter.js +7 -39
- package/dist/src/core/linter.js.map +1 -1
- package/dist/src/core/messages.d.ts +15 -5
- package/dist/src/core/messages.d.ts.map +1 -1
- package/dist/src/core/messages.js +3 -1
- package/dist/src/core/messages.js.map +1 -1
- package/dist/src/init/file-templating.d.ts +2 -0
- package/dist/src/init/file-templating.d.ts.map +1 -1
- package/dist/src/init/file-templating.js +3 -0
- package/dist/src/init/file-templating.js.map +1 -1
- package/dist/src/init/init-template.d.ts +2 -0
- package/dist/src/init/init-template.d.ts.map +1 -1
- package/dist/src/init/init-template.js +1 -0
- package/dist/src/init/init-template.js.map +1 -1
- package/dist/src/init/init.d.ts +5 -2
- package/dist/src/init/init.d.ts.map +1 -1
- package/dist/src/init/init.js +158 -89
- package/dist/src/init/init.js.map +1 -1
- package/dist/src/init/prompts.d.ts +5 -0
- package/dist/src/init/prompts.d.ts.map +1 -0
- package/dist/src/init/prompts.js +16 -0
- package/dist/src/init/prompts.js.map +1 -0
- package/dist/src/init/scaffold.d.ts +1 -5
- package/dist/src/init/scaffold.d.ts.map +1 -1
- package/dist/src/init/scaffold.js +0 -1
- package/dist/src/init/scaffold.js.map +1 -1
- package/dist/src/server/compile-service.d.ts.map +1 -1
- package/dist/src/server/compile-service.js +11 -1
- package/dist/src/server/compile-service.js.map +1 -1
- package/dist/src/server/serverlib.d.ts.map +1 -1
- package/dist/src/server/serverlib.js +15 -1
- package/dist/src/server/serverlib.js.map +1 -1
- package/lib/std/decorators.tsp +1 -1
- package/package.json +4 -3
- package/templates/scaffolding.json +17 -19
|
@@ -44,7 +44,7 @@ export interface VisibilityFilter {
|
|
|
44
44
|
*/
|
|
45
45
|
export type EncodeDecorator = (context: DecoratorContext, target: Scalar | ModelProperty, encodingOrEncodeAs: Scalar | string | EnumValue, encodedAs?: Scalar) => void;
|
|
46
46
|
/**
|
|
47
|
-
* Attach a documentation string.
|
|
47
|
+
* Attach a documentation string. Content support CommonMark markdown formatting.
|
|
48
48
|
*
|
|
49
49
|
* @param doc Documentation string
|
|
50
50
|
* @param formatArgs Record with key value pair that can be interpolated in the doc.
|
package/dist/manifest.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/core/checker.ts"],"names":[],"mappings":"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
|
|
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
|
@@ -77,6 +77,10 @@ export function createChecker(program, resolver) {
|
|
|
77
77
|
initializeTypeSpecIntrinsics();
|
|
78
78
|
}
|
|
79
79
|
let evalContext = undefined;
|
|
80
|
+
/**
|
|
81
|
+
* Tracking the template parameters used or not.
|
|
82
|
+
*/
|
|
83
|
+
const templateParameterUsageMap = new Map();
|
|
80
84
|
const checker = {
|
|
81
85
|
getTypeForNode,
|
|
82
86
|
checkProgram,
|
|
@@ -109,12 +113,16 @@ export function createChecker(program, resolver) {
|
|
|
109
113
|
getValueForNode,
|
|
110
114
|
getTypeOrValueForNode,
|
|
111
115
|
getValueExactType,
|
|
116
|
+
getTemplateParameterUsageMap,
|
|
112
117
|
isTypeAssignableTo: undefined,
|
|
113
118
|
};
|
|
114
119
|
const relation = createTypeRelationChecker(program, checker);
|
|
115
120
|
checker.isTypeAssignableTo = relation.isTypeAssignableTo;
|
|
116
121
|
const projectionMembers = createProjectionMembers(checker);
|
|
117
122
|
return checker;
|
|
123
|
+
function getTemplateParameterUsageMap() {
|
|
124
|
+
return templateParameterUsageMap;
|
|
125
|
+
}
|
|
118
126
|
function wrapInstantiationDiagnostic(diagnostic, templateMapper) {
|
|
119
127
|
if (templateMapper === undefined || typeof diagnostic.target !== "object")
|
|
120
128
|
return diagnostic;
|
|
@@ -591,6 +599,9 @@ export function createChecker(program, resolver) {
|
|
|
591
599
|
const parentNode = node.parent;
|
|
592
600
|
const grandParentNode = parentNode.parent;
|
|
593
601
|
const links = getSymbolLinks(node.symbol);
|
|
602
|
+
if (!templateParameterUsageMap.has(node)) {
|
|
603
|
+
templateParameterUsageMap.set(node, false);
|
|
604
|
+
}
|
|
594
605
|
if (pendingResolutions.has(getNodeSym(node), ResolutionKind.Constraint)) {
|
|
595
606
|
if (mapper === undefined) {
|
|
596
607
|
reportCheckerDiagnostic(createDiagnostic({
|
|
@@ -918,6 +929,13 @@ export function createChecker(program, resolver) {
|
|
|
918
929
|
return result;
|
|
919
930
|
}
|
|
920
931
|
function checkTypeOrValueReferenceSymbol(sym, node, mapper, instantiateTemplates = true) {
|
|
932
|
+
const entity = checkTypeOrValueReferenceSymbolWorker(sym, node, mapper, instantiateTemplates);
|
|
933
|
+
if (entity !== null && isType(entity) && entity.kind === "TemplateParameter") {
|
|
934
|
+
templateParameterUsageMap.set(entity.node, true);
|
|
935
|
+
}
|
|
936
|
+
return entity;
|
|
937
|
+
}
|
|
938
|
+
function checkTypeOrValueReferenceSymbolWorker(sym, node, mapper, instantiateTemplates = true) {
|
|
921
939
|
if (sym.flags & 524288 /* SymbolFlags.Const */) {
|
|
922
940
|
return getValueForNode(sym.declarations[0], mapper);
|
|
923
941
|
}
|
|
@@ -3816,6 +3834,27 @@ export function createChecker(program, resolver) {
|
|
|
3816
3834
|
target: node.targetType,
|
|
3817
3835
|
}));
|
|
3818
3836
|
}
|
|
3837
|
+
else if (links.finalSymbol?.flags &&
|
|
3838
|
+
~links.finalSymbol.flags & 1048576 /* SymbolFlags.Declaration */ &&
|
|
3839
|
+
~links.finalSymbol.flags & 262144 /* SymbolFlags.Member */) {
|
|
3840
|
+
program.reportDiagnostic(createDiagnostic({
|
|
3841
|
+
code: "augment-decorator-target",
|
|
3842
|
+
messageId: links.finalSymbol.flags & 2 /* SymbolFlags.Model */
|
|
3843
|
+
? "noModelExpression"
|
|
3844
|
+
: links.finalSymbol.flags & 64 /* SymbolFlags.Union */
|
|
3845
|
+
? "noUnionExpression"
|
|
3846
|
+
: "default",
|
|
3847
|
+
target: node.targetType,
|
|
3848
|
+
}));
|
|
3849
|
+
}
|
|
3850
|
+
else if (links.finalSymbol?.flags && links.finalSymbol.flags & 128 /* SymbolFlags.Alias */) {
|
|
3851
|
+
const aliasNode = getSymNode(links.finalSymbol);
|
|
3852
|
+
program.reportDiagnostic(createDiagnostic({
|
|
3853
|
+
code: "augment-decorator-target",
|
|
3854
|
+
messageId: aliasNode.value.kind === SyntaxKind.UnionExpression ? "noUnionExpression" : "default",
|
|
3855
|
+
target: node.targetType,
|
|
3856
|
+
}));
|
|
3857
|
+
}
|
|
3819
3858
|
// If this was used to get a type this is invalid, only used for validation.
|
|
3820
3859
|
return errorType;
|
|
3821
3860
|
}
|