From 2277abc7f0fbe42d441ef4ba58684e83d7fedb63 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Fri, 15 Mar 2024 14:09:01 -0700 Subject: [PATCH 01/28] Uptake new object literals --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index 6d42ca6e65..8f3296486d 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 6d42ca6e65f137ced52d203a4b6fe8f073f75d28 +Subproject commit 8f3296486d469eb8c1fceb6e57ff6c74f3519981 From c19bd6e2ceab0dcb5b15bd711cfe172a532c16d9 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Fri, 15 Mar 2024 14:38:49 -0700 Subject: [PATCH 02/28] . --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index 8f3296486d..a1cc33febc 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 8f3296486d469eb8c1fceb6e57ff6c74f3519981 +Subproject commit a1cc33febc3f4bd6981a4e7ab7da7fe920a101dd From 48a230d9e4f9a1de27946dcf76bc23c53d375112 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Fri, 15 Mar 2024 15:46:06 -0700 Subject: [PATCH 03/28] Fix --- core | 2 +- packages/typespec-autorest/src/openapi.ts | 1 + packages/typespec-azure-resource-manager/lib/models.tsp | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/core b/core index a1cc33febc..377f8b66fe 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit a1cc33febc3f4bd6981a4e7ab7da7fe920a101dd +Subproject commit 377f8b66fe117421b491d87869ee767be175c665 diff --git a/packages/typespec-autorest/src/openapi.ts b/packages/typespec-autorest/src/openapi.ts index b03e7354ac..0adff9cbf6 100644 --- a/packages/typespec-autorest/src/openapi.ts +++ b/packages/typespec-autorest/src/openapi.ts @@ -1603,6 +1603,7 @@ function createOAPIEmitter( case "Boolean": return type.value; case "Tuple": + case "TupleLiteral": return type.values.map(getDefaultValue); case "EnumMember": return type.value ?? type.name; diff --git a/packages/typespec-azure-resource-manager/lib/models.tsp b/packages/typespec-azure-resource-manager/lib/models.tsp index 73cd9da3d6..0b9320787c 100644 --- a/packages/typespec-azure-resource-manager/lib/models.tsp +++ b/packages/typespec-azure-resource-manager/lib/models.tsp @@ -122,7 +122,7 @@ model ResourceIdentifierAllowedResource { An array of scopes. If not specified, the default scope is ["ResourceGroup"]. See [Allowed Scopes](https://github.com/Azure/autorest/tree/main/docs/extensions#allowed-scopes). """) - scopes?: string[] = []; + scopes?: string[] = #[]; } /** From 1c603bda55e8c49737359574d824c03669d4026b Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Mon, 18 Mar 2024 19:40:50 -0700 Subject: [PATCH 04/28] update --- core | 2 +- packages/typespec-azure-core/lib/models.tsp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core b/core index bc24b0e8a5..b6979cfde5 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit bc24b0e8a5852a47a9e8412a65dc25fe75360dbe +Subproject commit b6979cfde589b609f8a55ff7c892a3ec3fb389d4 diff --git a/packages/typespec-azure-core/lib/models.tsp b/packages/typespec-azure-core/lib/models.tsp index 53ee6507c5..e3dabf8e4a 100644 --- a/packages/typespec-azure-core/lib/models.tsp +++ b/packages/typespec-azure-core/lib/models.tsp @@ -243,7 +243,7 @@ model EmbeddingVector is Array; model StatusMonitorPollingOptions< PollingModel extends TypeSpec.Reflection.Model | void = never, FinalResult extends TypeSpec.Reflection.Model | void = never, - FinalProperty extends TypeSpec.Reflection.ModelProperty | (valueof string) = never + FinalProperty extends TypeSpec.Reflection.ModelProperty | string = never > extends StatusMonitorOptions { /** The kind of polling options */ kind: PollingOptionKind.statusMonitor; @@ -264,7 +264,7 @@ model StatusMonitorOptions extends PollingOptions { kind: PollingOptionKind.statusMonitor; /** A reference to or name of the property of the status monitor that contains the response */ - finalProperty?: TypeSpec.Reflection.ModelProperty | (valueof string); + finalProperty?: TypeSpec.Reflection.ModelProperty | string; } /** Generic polling options for LRO operations. */ From ad3487580414934462f2d31cebe258c5f56d4c8d Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Mon, 18 Mar 2024 19:46:22 -0700 Subject: [PATCH 05/28] Create uptake-object-literals-2024-2-19-2-42-4.md --- .../changes/uptake-object-literals-2024-2-19-2-42-4.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .chronus/changes/uptake-object-literals-2024-2-19-2-42-4.md diff --git a/.chronus/changes/uptake-object-literals-2024-2-19-2-42-4.md b/.chronus/changes/uptake-object-literals-2024-2-19-2-42-4.md new file mode 100644 index 0000000000..7cdba67a7d --- /dev/null +++ b/.chronus/changes/uptake-object-literals-2024-2-19-2-42-4.md @@ -0,0 +1,8 @@ +--- +# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking +changeKind: fix +packages: + - "@azure-tools/typespec-autorest" +--- + +Add support for tuple literals as default values From 627f216ccbf58babddd014dbe5d505b70828de30 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Mon, 18 Mar 2024 19:48:11 -0700 Subject: [PATCH 06/28] Create uptake-object-literals-2024-2-19-2-47-33.md --- .../changes/uptake-object-literals-2024-2-19-2-47-33.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 .chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md diff --git a/.chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md b/.chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md new file mode 100644 index 0000000000..51022d995e --- /dev/null +++ b/.chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md @@ -0,0 +1,9 @@ +--- +# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking +changeKind: fix +packages: + - "@azure-tools/typespec-azure-core" + - "@azure-tools/typespec-azure-resource-manager" +--- + +Update to support new tuple literals From be2fa18a5b6cbca3162818f6152cfe2b0a348723 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Mon, 18 Mar 2024 20:22:10 -0700 Subject: [PATCH 07/28] Fix --- core | 2 +- packages/typespec-client-generator-core/src/types.ts | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/core b/core index b6979cfde5..f7eb99a76a 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit b6979cfde589b609f8a55ff7c892a3ec3fb389d4 +Subproject commit f7eb99a76a29f7579929e340c1d9e9cc85a972f5 diff --git a/packages/typespec-client-generator-core/src/types.ts b/packages/typespec-client-generator-core/src/types.ts index e468551aca..22d825dc2f 100644 --- a/packages/typespec-client-generator-core/src/types.ts +++ b/packages/typespec-client-generator-core/src/types.ts @@ -34,6 +34,7 @@ import { isErrorModel, isNeverType, isNullType, + isValueType, } from "@typespec/compiler"; import { Authentication, @@ -1165,6 +1166,7 @@ function checkAndGetClientType( if (effectivePayloadType.templateMapper && effectivePayloadType.name) { effectivePayloadType.templateMapper.args .filter((arg) => arg.kind === "Model" && arg.name) + .filter((x): x is Type => !isValueType(x)) .forEach((arg) => { retval.push(...diagnostics.pipe(checkAndGetClientType(context, arg, operation))); }); From ca2b83cfb2efc3a8ca67c06cbd7be0d6e2ed340e Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Mon, 18 Mar 2024 20:26:42 -0700 Subject: [PATCH 08/28] Create uptake-object-literals-2024-2-19-3-23-18.md --- .../changes/uptake-object-literals-2024-2-19-3-23-18.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .chronus/changes/uptake-object-literals-2024-2-19-3-23-18.md diff --git a/.chronus/changes/uptake-object-literals-2024-2-19-3-23-18.md b/.chronus/changes/uptake-object-literals-2024-2-19-3-23-18.md new file mode 100644 index 0000000000..a06b275c88 --- /dev/null +++ b/.chronus/changes/uptake-object-literals-2024-2-19-3-23-18.md @@ -0,0 +1,8 @@ +--- +# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking +changeKind: fix +packages: + - "@azure-tools/typespec-client-generator-core" +--- + +Added support for new tuple literals From e62a8defea993c7efe1f5c1fdcee3be6be86919a Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Tue, 19 Mar 2024 08:39:42 -0700 Subject: [PATCH 09/28] Fix --- packages/typespec-autorest/src/openapi.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/typespec-autorest/src/openapi.ts b/packages/typespec-autorest/src/openapi.ts index 0adff9cbf6..791da5350a 100644 --- a/packages/typespec-autorest/src/openapi.ts +++ b/packages/typespec-autorest/src/openapi.ts @@ -41,6 +41,7 @@ import { TypeNameOptions, Union, UnionVariant, + Value, compilerAssert, createProjectedNameProgram, emitFile, @@ -1594,7 +1595,7 @@ function createOAPIEmitter( return getSchemaForType(variant.type, visibility)!; } - function getDefaultValue(type: Type): any { + function getDefaultValue(type: Type | Value): any { switch (type.kind) { case "String": return type.value; From d827fbcb37ab005adc6281896fcbf9a74713dff4 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Tue, 19 Mar 2024 08:54:54 -0700 Subject: [PATCH 10/28] Fix up --- .../src/rules/unsupported-type.ts | 6 ++++-- packages/typespec-service-csharp/src/service.ts | 17 +++++++++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/typespec-azure-resource-manager/src/rules/unsupported-type.ts b/packages/typespec-azure-resource-manager/src/rules/unsupported-type.ts index 97e46317fb..197986bb0f 100644 --- a/packages/typespec-azure-resource-manager/src/rules/unsupported-type.ts +++ b/packages/typespec-azure-resource-manager/src/rules/unsupported-type.ts @@ -1,4 +1,4 @@ -import { DiagnosticTarget, Type, createRule, paramMessage } from "@typespec/compiler"; +import { DiagnosticTarget, Type, createRule, isValueOnly, paramMessage } from "@typespec/compiler"; const UnsupportedIntrinsicModel = new Set(["int8", "int16", "uint8", "uint16", "uint32", "uint64"]); /** @@ -36,7 +36,9 @@ export const unsupportedTypeRule = createRule({ } if (type.templateMapper) { for (const templateArg of type.templateMapper.args) { - checkUnsupportedType(templateArg, target); + if (!isValueOnly(templateArg)) { + checkUnsupportedType(templateArg, target); + } } } } diff --git a/packages/typespec-service-csharp/src/service.ts b/packages/typespec-service-csharp/src/service.ts index 74b4ed5be7..59ae340321 100644 --- a/packages/typespec-service-csharp/src/service.ts +++ b/packages/typespec-service-csharp/src/service.ts @@ -18,6 +18,7 @@ import { getNamespaceFullName, getService, isErrorModel, + isValueOnly, } from "@typespec/compiler"; import { CodeTypeEmitter, @@ -300,9 +301,10 @@ export async function $onEmit(context: EmitContext) const [typeName, typeDefault] = this.#findPropertyType(property); const doc = getDoc(this.emitter.getProgram(), property); //const attributes = getAttributes(this.emitter.getProgram(), property); - const defaultValue = property.default - ? code`${this.emitter.emitType(property.default)}` - : typeDefault; + const defaultValue = + property.default && !isValueOnly(property.default) + ? code`${this.emitter.emitType(property.default)}` + : typeDefault; return this.emitter.result.rawCode(code` ${doc ? `${formatComment(doc)}` : ""} [JsonProperty("${property.name}")] @@ -466,6 +468,7 @@ export async function $onEmit(context: EmitContext) for (const arg of model.templateMapper!.args) { if ( arg.kind !== "Intrinsic" && + !isValueOnly(arg) && (arg.kind !== "Model" || (arg.name !== "" && arg.name !== "Error" && arg.name !== "AcceptedResponse")) ) { @@ -526,9 +529,10 @@ export async function $onEmit(context: EmitContext) NameCasingType.Parameter ); const [emittedType, emittedDefault] = this.#findPropertyType(parameter); - const defaultValue = parameter.default - ? code`${this.emitter.emitType(parameter.default)}` - : emittedDefault; + const defaultValue = + parameter.default && !isValueOnly(parameter.default) + ? code`${this.emitter.emitType(parameter.default)}` + : emittedDefault; return this.emitter.result.rawCode( code`${emittedType} ${emittedName}${defaultValue === undefined ? "" : ` = ${defaultValue}`}` ); @@ -738,6 +742,7 @@ export async function $onEmit(context: EmitContext) parameter.kind !== "Tuple" ); for (const parameter of args) { + if (isValueOnly(parameter)) continue; i++; params.push(code`${this.emitter.emitTypeReference(parameter)}`); if (i < args.length) { From 7068bcee3028bddba180562173098276b0ed239e Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Tue, 19 Mar 2024 08:56:15 -0700 Subject: [PATCH 11/28] Fix --- docs/libraries/azure-core/reference/data-types.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/libraries/azure-core/reference/data-types.md b/docs/libraries/azure-core/reference/data-types.md index 4584478617..68fba8a7b0 100644 --- a/docs/libraries/azure-core/reference/data-types.md +++ b/docs/libraries/azure-core/reference/data-types.md @@ -414,10 +414,10 @@ model Azure.Core.StatusMonitorOptions #### Properties -| Name | Type | Description | -| -------------- | ---------------------------- | --------------------------------------------------------------------------------------- | -| kind | `"statusMonitor"` | The kind of polling options | -| finalProperty? | `ModelProperty \| ErrorType` | A reference to or name of the property of the status monitor that contains the response | +| Name | Type | Description | +| -------------- | ------------------------- | --------------------------------------------------------------------------------------- | +| kind | `"statusMonitor"` | The kind of polling options | +| finalProperty? | `ModelProperty \| string` | A reference to or name of the property of the status monitor that contains the response | ### `StatusMonitorPollingOptions` {#Azure.Core.StatusMonitorPollingOptions} From 257a39f8e36933ddc610b016570b7deb20996a65 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Tue, 19 Mar 2024 09:38:02 -0700 Subject: [PATCH 12/28] ., --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index f7eb99a76a..07f461e403 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit f7eb99a76a29f7579929e340c1d9e9cc85a972f5 +Subproject commit 07f461e403f8214d9cae155d5c36e26f47c45992 From d1e5eafd7b6fb0cab7171be80dd922f22ce8344f Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Mon, 6 May 2024 16:49:55 -0700 Subject: [PATCH 13/28] Apply changes --- packages/typespec-autorest/src/openapi.ts | 49 ++++++++----------- packages/typespec-azure-core/src/lro-info.ts | 3 ++ .../rules/arm-resource-operation-response.ts | 5 +- .../src/rules/arm-resource-patch.ts | 3 +- .../src/rules/unsupported-type.ts | 4 +- .../src/public-utils.ts | 3 +- .../src/types.ts | 4 +- 7 files changed, 34 insertions(+), 37 deletions(-) diff --git a/packages/typespec-autorest/src/openapi.ts b/packages/typespec-autorest/src/openapi.ts index c22a4b74be..551d992085 100644 --- a/packages/typespec-autorest/src/openapi.ts +++ b/packages/typespec-autorest/src/openapi.ts @@ -1085,8 +1085,8 @@ export async function getOpenAPIForService( if (param.name !== ph.name) { ph["x-ms-client-name"] = param.name; } - if (param.default) { - ph.default = getDefaultValue(param.default); + if (param.defaultValue) { + ph.default = getDefaultValue(param.defaultValue); } if (ph.in === "body") { @@ -1445,34 +1445,25 @@ export async function getOpenAPIForService( return getSchemaForType(variant.type, schemaContext)!; } - function getDefaultValue(type: Type | Value): any { - switch (type.kind) { - case "String": - return type.value; - case "Number": - return type.value; - case "Boolean": - return type.value; - case "Tuple": - case "TupleLiteral": - return type.values.map(getDefaultValue); - case "EnumMember": - return type.value ?? type.name; - case "Intrinsic": - return isNullType(type) - ? null - : reportDiagnostic(program, { - code: "invalid-default", - format: { type: type.kind }, - target: type, - }); - case "UnionVariant": - return getDefaultValue(type.type); + function getDefaultValue(defaultType: Value): any { + switch (defaultType.valueKind) { + case "StringValue": + return defaultType.value; + case "NumericValue": + return defaultType.value.asNumber() ?? undefined; + case "BooleanValue": + return defaultType.value; + case "ArrayValue": + return defaultType.values.map((x) => getDefaultValue(x)); + case "NullValue": + return null; + case "EnumValue": + return defaultType.value.value ?? defaultType.value.name; default: reportDiagnostic(program, { code: "invalid-default", - format: { type: type.kind }, - target: type, + format: { type: defaultType.valueKind }, + target: defaultType, }); } } @@ -1609,8 +1600,8 @@ export async function getOpenAPIForService( property.description = description; } - if (prop.default && !("$ref" in property)) { - property.default = getDefaultValue(prop.default); + if (prop.defaultValue && !("$ref" in property)) { + property.default = getDefaultValue(prop.defaultValue); } if (isReadonlyProperty(program, prop)) { diff --git a/packages/typespec-azure-core/src/lro-info.ts b/packages/typespec-azure-core/src/lro-info.ts index 65183c2391..6f15cdea29 100644 --- a/packages/typespec-azure-core/src/lro-info.ts +++ b/packages/typespec-azure-core/src/lro-info.ts @@ -7,9 +7,11 @@ import { Program, Union, UnionVariant, + compilerAssert, createDiagnosticCollector, getEffectiveModelType, isErrorType, + isType, } from "@typespec/compiler"; import { HttpOperationResponse, @@ -356,6 +358,7 @@ export function getLroOperationInfo( return; } const sourceProperty = propMap.templateMapper!.args[0]; + compilerAssert(isType(sourceProperty), "Lro Template Arg should be a Type", sourceProperty); switch (sourceProperty.kind) { case "String": const sourcePropertyName = sourceProperty.value; diff --git a/packages/typespec-azure-resource-manager/src/rules/arm-resource-operation-response.ts b/packages/typespec-azure-resource-manager/src/rules/arm-resource-operation-response.ts index efca777372..a53aa78aaf 100644 --- a/packages/typespec-azure-resource-manager/src/rules/arm-resource-operation-response.ts +++ b/packages/typespec-azure-resource-manager/src/rules/arm-resource-operation-response.ts @@ -6,6 +6,7 @@ import { createRule, getEffectiveModelType, isErrorType, + isType, } from "@typespec/compiler"; import { ArmLifecycleOperationKind, resolveResourceOperations } from "../operations.js"; @@ -60,12 +61,12 @@ function checkArmResourceOperationReturnType( if (modelCandidate.templateMapper !== undefined) { // ArmResponse for (const arg of modelCandidate.templateMapper.args) { - if (arg.kind === "Model") { + if (isType(arg) && arg.kind === "Model") { checkIfArmModel(context, operation, model, arg); if (arg.templateMapper !== undefined) { // ArmResponse> for (const type of arg.templateMapper.args) { - if (type.kind === "Model") { + if (isType(type) && type.kind === "Model") { checkIfArmModel(context, operation, model, type); } } diff --git a/packages/typespec-azure-resource-manager/src/rules/arm-resource-patch.ts b/packages/typespec-azure-resource-manager/src/rules/arm-resource-patch.ts index f7023782d6..0ba0541a58 100644 --- a/packages/typespec-azure-resource-manager/src/rules/arm-resource-patch.ts +++ b/packages/typespec-azure-resource-manager/src/rules/arm-resource-patch.ts @@ -9,6 +9,7 @@ import { getEffectiveModelType, getProperty, isErrorType, + isType, paramMessage, } from "@typespec/compiler"; import { @@ -106,7 +107,7 @@ function getResourceModel(program: Program, operation: Operation): Model | undef } if (modelCandidate.templateMapper !== undefined) { for (const arg of modelCandidate.templateMapper.args) { - if (arg.kind === "Model" && getArmResource(program, arg)) { + if (isType(arg) && arg.kind === "Model" && getArmResource(program, arg)) { return arg; } } diff --git a/packages/typespec-azure-resource-manager/src/rules/unsupported-type.ts b/packages/typespec-azure-resource-manager/src/rules/unsupported-type.ts index 197986bb0f..2414070c4a 100644 --- a/packages/typespec-azure-resource-manager/src/rules/unsupported-type.ts +++ b/packages/typespec-azure-resource-manager/src/rules/unsupported-type.ts @@ -1,4 +1,4 @@ -import { DiagnosticTarget, Type, createRule, isValueOnly, paramMessage } from "@typespec/compiler"; +import { DiagnosticTarget, Type, createRule, isType, paramMessage } from "@typespec/compiler"; const UnsupportedIntrinsicModel = new Set(["int8", "int16", "uint8", "uint16", "uint32", "uint64"]); /** @@ -36,7 +36,7 @@ export const unsupportedTypeRule = createRule({ } if (type.templateMapper) { for (const templateArg of type.templateMapper.args) { - if (!isValueOnly(templateArg)) { + if (isType(templateArg)) { checkUnsupportedType(templateArg, target); } } diff --git a/packages/typespec-client-generator-core/src/public-utils.ts b/packages/typespec-client-generator-core/src/public-utils.ts index 88729d1088..8425c05e86 100644 --- a/packages/typespec-client-generator-core/src/public-utils.ts +++ b/packages/typespec-client-generator-core/src/public-utils.ts @@ -15,6 +15,7 @@ import { getProjectedName, ignoreDiagnostics, isErrorModel, + isType, listServices, resolveEncodedName, } from "@typespec/compiler"; @@ -179,7 +180,7 @@ export function getLibraryName( type.templateMapper.args .filter( (arg): arg is Model | Enum => - (arg.kind === "Model" || arg.kind === "Enum") && arg.name.length > 0 + isType(arg) && (arg.kind === "Model" || arg.kind === "Enum") && arg.name.length > 0 ) .map((arg) => pascalCase(arg.name)) .join("") diff --git a/packages/typespec-client-generator-core/src/types.ts b/packages/typespec-client-generator-core/src/types.ts index f4124a5d08..56a2f93094 100644 --- a/packages/typespec-client-generator-core/src/types.ts +++ b/packages/typespec-client-generator-core/src/types.ts @@ -28,7 +28,7 @@ import { ignoreDiagnostics, isErrorModel, isNeverType, - isValueType, + isType, } from "@typespec/compiler"; import { Authentication, @@ -1140,8 +1140,8 @@ function checkAndGetClientType( if (context.filterOutCoreModels && isAzureCoreModel(effectivePayloadType)) { if (effectivePayloadType.templateMapper && effectivePayloadType.name) { effectivePayloadType.templateMapper.args + .filter(isType) .filter((arg) => arg.kind === "Model" && arg.name) - .filter((x): x is Type => !isValueType(x)) .forEach((arg) => { retval.push(...diagnostics.pipe(checkAndGetClientType(context, arg, operation))); }); From 9d55cc261d786add329e7cc4017dd2fc0eca89c0 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Mon, 6 May 2024 16:53:51 -0700 Subject: [PATCH 14/28] update changelog --- .chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md | 2 +- .chronus/changes/uptake-object-literals-2024-2-19-3-23-18.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md b/.chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md index 51022d995e..e5dc29fe91 100644 --- a/.chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md +++ b/.chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md @@ -6,4 +6,4 @@ packages: - "@azure-tools/typespec-azure-resource-manager" --- -Update to support new tuple literals +Add support for values diff --git a/.chronus/changes/uptake-object-literals-2024-2-19-3-23-18.md b/.chronus/changes/uptake-object-literals-2024-2-19-3-23-18.md index a06b275c88..ae7f47347f 100644 --- a/.chronus/changes/uptake-object-literals-2024-2-19-3-23-18.md +++ b/.chronus/changes/uptake-object-literals-2024-2-19-3-23-18.md @@ -1,8 +1,8 @@ --- # Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: fix +changeKind: feature packages: - "@azure-tools/typespec-client-generator-core" --- -Added support for new tuple literals +Add support for values From c941a8ccbbd81e62919e7692fc8e1632fe98b3e7 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Mon, 6 May 2024 17:10:32 -0700 Subject: [PATCH 15/28] regen docs --- .../azure-core/reference/interfaces.md | 52 +++++++++---------- .../reference/interfaces.md | 20 +++---- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/docs/libraries/azure-core/reference/interfaces.md b/docs/libraries/azure-core/reference/interfaces.md index 8e615e7167..7ed271e946 100644 --- a/docs/libraries/azure-core/reference/interfaces.md +++ b/docs/libraries/azure-core/reference/interfaces.md @@ -28,7 +28,7 @@ interface Azure.Core.ResourceOperations Create or replace operation template. ```typespec -op Azure.Core.ResourceOperations.ResourceCreateOrReplace(apiVersion: string, resource: Resource): (anonymous model) | (anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.ResourceCreateOrReplace(apiVersion: string, resource: Resource): { statusCode: 201 } | { statusCode: 200 } | ErrorResponse ``` ##### Template Parameters @@ -43,7 +43,7 @@ op Azure.Core.ResourceOperations.ResourceCreateOrReplace(apiVersion: string, res Long-running resource create or replace operation template. ```typespec -op Azure.Core.ResourceOperations.LongRunningResourceCreateOrReplace(apiVersion: string, resource: Resource): (anonymous model) | (anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.LongRunningResourceCreateOrReplace(apiVersion: string, resource: Resource): { statusCode: 201, operationLocation: TypeSpec.Rest.ResourceLocation } | { statusCode: 200, operationLocation: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` ##### Template Parameters @@ -58,7 +58,7 @@ op Azure.Core.ResourceOperations.LongRunningResourceCreateOrReplace(apiVersion: Create or update operation template. ```typespec -op Azure.Core.ResourceOperations.ResourceCreateOrUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): (anonymous model) | (anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.ResourceCreateOrUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): { statusCode: 201 } | { statusCode: 200 } | ErrorResponse ``` ##### Template Parameters @@ -73,7 +73,7 @@ op Azure.Core.ResourceOperations.ResourceCreateOrUpdate(apiVersion: string, cont Long-running resource create or update operation template. ```typespec -op Azure.Core.ResourceOperations.LongRunningResourceCreateOrUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): (anonymous model) | (anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.LongRunningResourceCreateOrUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): { statusCode: 201, operationLocation: TypeSpec.Rest.ResourceLocation } | { statusCode: 200, operationLocation: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` ##### Template Parameters @@ -88,7 +88,7 @@ op Azure.Core.ResourceOperations.LongRunningResourceCreateOrUpdate(apiVersion: s Resource update operation template. ```typespec -op Azure.Core.ResourceOperations.ResourceUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): (anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.ResourceUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): { statusCode: 200 } | ErrorResponse ``` ##### Template Parameters @@ -103,7 +103,7 @@ op Azure.Core.ResourceOperations.ResourceUpdate(apiVersion: string, contentType: Resource create with service-provided name operation template. ```typespec -op Azure.Core.ResourceOperations.ResourceCreateWithServiceProvidedName(apiVersion: string, resource: Resource): Azure.Core.(anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.ResourceCreateWithServiceProvidedName(apiVersion: string, resource: Resource): Azure.Core.{ statusCode: 201, location: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` ##### Template Parameters @@ -118,7 +118,7 @@ op Azure.Core.ResourceOperations.ResourceCreateWithServiceProvidedName(apiVersio Long-running resource create with service-provided name operation template. ```typespec -op Azure.Core.ResourceOperations.LongRunningResourceCreateWithServiceProvidedName(apiVersion: string, resource: Resource): Azure.Core.(anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.LongRunningResourceCreateWithServiceProvidedName(apiVersion: string, resource: Resource): Azure.Core.{ statusCode: 202, location: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` ##### Template Parameters @@ -148,7 +148,7 @@ op Azure.Core.ResourceOperations.ResourceRead(apiVersion: string): {} | ErrorRes Resource delete operation template. ```typespec -op Azure.Core.ResourceOperations.ResourceDelete(apiVersion: string): Azure.Core.(anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.ResourceDelete(apiVersion: string): Azure.Core.{ statusCode: 204 } | ErrorResponse ``` ##### Template Parameters @@ -163,7 +163,7 @@ op Azure.Core.ResourceOperations.ResourceDelete(apiVersion: string): Azure.Core. Long-running resource delete operation template. ```typespec -op Azure.Core.ResourceOperations.LongRunningResourceDelete(apiVersion: string): (anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.LongRunningResourceDelete(apiVersion: string): { statusCode: 202, id: string, status: Azure.Core.Foundations.OperationState, error: Azure.Core.Foundations.Error, result: never, operationLocation: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` ##### Template Parameters @@ -227,7 +227,7 @@ op Azure.Core.ResourceOperations.ResourceCollectionAction(apiVersion: string): { Long-running resource action operation template. ```typespec -op Azure.Core.ResourceOperations.LongRunningResourceAction(apiVersion: string): Azure.Core.(anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.LongRunningResourceAction(apiVersion: string): Azure.Core.{ statusCode: 202, id: string, status: Azure.Core.Foundations.OperationState, error: StatusError, result: StatusResult, operationLocation: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` ##### Template Parameters @@ -245,7 +245,7 @@ op Azure.Core.ResourceOperations.LongRunningResourceAction(apiVersion: string): Long-running resource collection action operation template. ```typespec -op Azure.Core.ResourceOperations.LongRunningResourceCollectionAction(apiVersion: string): Azure.Core.(anonymous model) | ErrorResponse +op Azure.Core.ResourceOperations.LongRunningResourceCollectionAction(apiVersion: string): Azure.Core.{ statusCode: 202, id: string, status: Azure.Core.Foundations.OperationState, error: StatusError, result: StatusResult, operationLocation: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` ##### Template Parameters @@ -301,7 +301,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Long-running operation signature for a resource action. ```typespec -op Azure.Core.LongRunningResourceAction(apiVersion: string): Azure.Core.(anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.LongRunningResourceAction(apiVersion: string): Azure.Core.{ statusCode: 202, id: string, status: Azure.Core.Foundations.OperationState, error: StatusError, result: StatusResult, operationLocation: TypeSpec.Rest.ResourceLocation } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -323,7 +323,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Long-running operation signature for an action that applies to a collection of resources. ```typespec -op Azure.Core.LongRunningResourceCollectionAction(apiVersion: string): Azure.Core.(anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.LongRunningResourceCollectionAction(apiVersion: string): Azure.Core.{ statusCode: 202, id: string, status: Azure.Core.Foundations.OperationState, error: StatusError, result: StatusResult, operationLocation: TypeSpec.Rest.ResourceLocation } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -345,7 +345,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Long-running operation signature to create or replace a resource. ```typespec -op Azure.Core.LongRunningResourceCreateOrReplace(apiVersion: string, resource: Resource): (anonymous model) | (anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.LongRunningResourceCreateOrReplace(apiVersion: string, resource: Resource): { statusCode: 201, operationLocation: TypeSpec.Rest.ResourceLocation } | { statusCode: 200, operationLocation: TypeSpec.Rest.ResourceLocation } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -364,7 +364,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Long-running operation signature to create or update a resource. ```typespec -op Azure.Core.LongRunningResourceCreateOrUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): (anonymous model) | (anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.LongRunningResourceCreateOrUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): { statusCode: 201, operationLocation: TypeSpec.Rest.ResourceLocation } | { statusCode: 200, operationLocation: TypeSpec.Rest.ResourceLocation } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -383,7 +383,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Long-running operation signature to create a resource with a service-provided name. ```typespec -op Azure.Core.LongRunningResourceCreateWithServiceProvidedName(apiVersion: string, resource: Resource): Azure.Core.(anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.LongRunningResourceCreateWithServiceProvidedName(apiVersion: string, resource: Resource): Azure.Core.{ statusCode: 202, location: TypeSpec.Rest.ResourceLocation } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -402,7 +402,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Long-running operation signature to delete a resource. ```typespec -op Azure.Core.LongRunningResourceDelete(apiVersion: string): (anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.LongRunningResourceDelete(apiVersion: string): { statusCode: 202, id: string, status: Azure.Core.Foundations.OperationState, error: Azure.Core.Foundations.Error, result: never, operationLocation: TypeSpec.Rest.ResourceLocation } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -417,7 +417,7 @@ op Azure.Core.LongRunningResourceDelete(apiVersion: string): (anonymous model) | A long-running remote procedure call (RPC) operation. ```typespec -op Azure.Core.LongRunningRpcOperation(apiVersion: string): Azure.Core.(anonymous model) | ErrorResponse +op Azure.Core.LongRunningRpcOperation(apiVersion: string): Azure.Core.{ statusCode: 202, id: string, status: Azure.Core.Foundations.OperationState, error: StatusError, result: StatusResult, operationLocation: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` #### Template Parameters @@ -483,7 +483,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Operation signature to create or replace a resource. ```typespec -op Azure.Core.ResourceCreateOrReplace(apiVersion: string, resource: Resource): (anonymous model) | (anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.ResourceCreateOrReplace(apiVersion: string, resource: Resource): { statusCode: 201 } | { statusCode: 200 } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -502,7 +502,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Operation signature to create or update a resource. ```typespec -op Azure.Core.ResourceCreateOrUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): (anonymous model) | (anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.ResourceCreateOrUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): { statusCode: 201 } | { statusCode: 200 } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -521,7 +521,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Operation signature to synchronously create a resource with a service-provided name. ```typespec -op Azure.Core.ResourceCreateWithServiceProvidedName(apiVersion: string, resource: Resource): Azure.Core.(anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.ResourceCreateWithServiceProvidedName(apiVersion: string, resource: Resource): Azure.Core.{ statusCode: 201, location: TypeSpec.Rest.ResourceLocation } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -540,7 +540,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Operation signature to delete a resource. ```typespec -op Azure.Core.ResourceDelete(apiVersion: string): Azure.Core.(anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.ResourceDelete(apiVersion: string): Azure.Core.{ statusCode: 204 } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -596,7 +596,7 @@ See https://azure.github.io/typespec-azure/docs/getstarted/azure-core/step05#def Operation signature to update a resource. ```typespec -op Azure.Core.ResourceUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): (anonymous model) | Azure.Core.Foundations.ErrorResponse +op Azure.Core.ResourceUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): { statusCode: 200 } | Azure.Core.Foundations.ErrorResponse ``` #### Template Parameters @@ -649,7 +649,7 @@ op Azure.Core.Foundations.GetOperationStatus(apiVersion: string, operationId: st Long-running operation. ```typespec -op Azure.Core.Foundations.LongRunningOperation(apiVersion: string): Azure.Core.Foundations.(anonymous model) | ErrorResponse +op Azure.Core.Foundations.LongRunningOperation(apiVersion: string): Azure.Core.Foundations.{ operationLocation: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` #### Template Parameters @@ -666,7 +666,7 @@ op Azure.Core.Foundations.LongRunningOperation(apiVersion: string): Azure.Core.F Long-running operation that updates a resource. ```typespec -op Azure.Core.Foundations.LongRunningResourceUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): (anonymous model) | ErrorResponse +op Azure.Core.Foundations.LongRunningResourceUpdate(apiVersion: string, contentType: "application/merge-patch+json", resource: Resource): { statusCode: 200, operationLocation: TypeSpec.Rest.ResourceLocation } | ErrorResponse ``` #### Template Parameters @@ -682,7 +682,7 @@ op Azure.Core.Foundations.LongRunningResourceUpdate(apiVersion: string, contentT Operation that lists resources in a non-paginated way. ```typespec -op Azure.Core.Foundations.NonPagedResourceList(apiVersion: string): Azure.Core.Foundations.(anonymous model) | ErrorResponse +op Azure.Core.Foundations.NonPagedResourceList(apiVersion: string): Azure.Core.Foundations.{ body: Array } | ErrorResponse ``` #### Template Parameters diff --git a/docs/libraries/azure-resource-manager/reference/interfaces.md b/docs/libraries/azure-resource-manager/reference/interfaces.md index 13ef0e088b..e9faafed8d 100644 --- a/docs/libraries/azure-resource-manager/reference/interfaces.md +++ b/docs/libraries/azure-resource-manager/reference/interfaces.md @@ -64,7 +64,7 @@ op Azure.ResourceManager.ExtensionResourceInstanceOperations.update(apiVersion: #### `ExtensionResourceInstanceOperations.delete` {#Azure.ResourceManager.ExtensionResourceInstanceOperations.delete} ```typespec -op Azure.ResourceManager.ExtensionResourceInstanceOperations.delete(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceInstanceOperations.delete(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse ``` ### `ExtensionResourceOperations` {#Azure.ResourceManager.ExtensionResourceOperations} @@ -103,7 +103,7 @@ op Azure.ResourceManager.ExtensionResourceOperations.update(apiVersion: string, #### `ExtensionResourceOperations.delete` {#Azure.ResourceManager.ExtensionResourceOperations.delete} ```typespec -op Azure.ResourceManager.ExtensionResourceOperations.delete(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ExtensionResourceOperations.delete(apiVersion: string, resourceUri: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse ``` #### `ExtensionResourceOperations.listByParent` {#Azure.ResourceManager.ExtensionResourceOperations.listByParent} @@ -167,7 +167,7 @@ op Azure.ResourceManager.ProxyResourceOperations.createOrUpdate(provider: "Micro #### `ProxyResourceOperations.delete` {#Azure.ResourceManager.ProxyResourceOperations.delete} ```typespec -op Azure.ResourceManager.ProxyResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ProxyResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse ``` #### `ProxyResourceOperations.listByParent` {#Azure.ResourceManager.ProxyResourceOperations.listByParent} @@ -261,7 +261,7 @@ interface Azure.ResourceManager.ResourceDeleteAsync #### `ResourceDeleteAsync.delete` {#Azure.ResourceManager.ResourceDeleteAsync.delete} ```typespec -op Azure.ResourceManager.ResourceDeleteAsync.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceDeleteAsync.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse ``` ### `ResourceDeleteSync` {#Azure.ResourceManager.ResourceDeleteSync} @@ -301,7 +301,7 @@ interface Azure.ResourceManager.ResourceDeleteWithoutOkAsync | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceDeleteWithoutOkAsync.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse ``` ### `ResourceInstanceOperations` {#Azure.ResourceManager.ResourceInstanceOperations} @@ -342,7 +342,7 @@ op Azure.ResourceManager.ResourceInstanceOperations.update(provider: "Microsoft. #### `ResourceInstanceOperations.delete` {#Azure.ResourceManager.ResourceInstanceOperations.delete} ```typespec -op Azure.ResourceManager.ResourceInstanceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceInstanceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse ``` ### `ResourceListByParent` {#Azure.ResourceManager.ResourceListByParent} @@ -423,7 +423,7 @@ op Azure.ResourceManager.ResourceOperations.update(provider: "Microsoft.ThisWill #### `ResourceOperations.delete` {#Azure.ResourceManager.ResourceOperations.delete} ```typespec -op Azure.ResourceManager.ResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse ``` #### `ResourceOperations.listByParent` {#Azure.ResourceManager.ResourceOperations.listByParent} @@ -476,7 +476,7 @@ interface Azure.ResourceManager.ResourceUpdateAsync): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ArmAcceptedLroResponse<"Resource update request accepted.", Azure.ResourceManager.(anonymous model)> | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.ResourceUpdateAsync.update(provider: "Microsoft.ThisWillBeReplaced", properties: Azure.ResourceManager.Foundations.ResourceUpdateModel): Azure.ResourceManager.ArmResponse | Azure.ResourceManager.ArmAcceptedLroResponse<"Resource update request accepted.", Azure.ResourceManager.{ location: string, retryAfter: int32 }> | Azure.ResourceManager.ErrorResponse ``` ### `ResourceUpdateSync` {#Azure.ResourceManager.ResourceUpdateSync} @@ -543,7 +543,7 @@ op Azure.ResourceManager.TenantResourceOperations.update(apiVersion: string, pro #### `TenantResourceOperations.delete` {#Azure.ResourceManager.TenantResourceOperations.delete} ```typespec -op Azure.ResourceManager.TenantResourceOperations.delete(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TenantResourceOperations.delete(apiVersion: string, provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse ``` #### `TenantResourceOperations.listByParent` {#Azure.ResourceManager.TenantResourceOperations.listByParent} @@ -592,7 +592,7 @@ op Azure.ResourceManager.TrackedResourceOperations.update(provider: "Microsoft.T #### `TrackedResourceOperations.delete` {#Azure.ResourceManager.TrackedResourceOperations.delete} ```typespec -op Azure.ResourceManager.TrackedResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse +op Azure.ResourceManager.TrackedResourceOperations.delete(provider: "Microsoft.ThisWillBeReplaced"): Azure.ResourceManager.ArmDeletedResponse | Azure.ResourceManager.ArmDeleteAcceptedLroResponse | Azure.ResourceManager.ArmDeletedNoContentResponse | Azure.ResourceManager.ErrorResponse ``` #### `TrackedResourceOperations.listByParent` {#Azure.ResourceManager.TrackedResourceOperations.listByParent} From a64f8b1fd57e5ef8f645560688d8e71b32e1bbaf Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Mon, 6 May 2024 17:12:40 -0700 Subject: [PATCH 16/28] fix --- .../typespec-service-csharp/src/service.ts | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/packages/typespec-service-csharp/src/service.ts b/packages/typespec-service-csharp/src/service.ts index 59ae340321..0e2836b616 100644 --- a/packages/typespec-service-csharp/src/service.ts +++ b/packages/typespec-service-csharp/src/service.ts @@ -18,7 +18,7 @@ import { getNamespaceFullName, getService, isErrorModel, - isValueOnly, + isType, } from "@typespec/compiler"; import { CodeTypeEmitter, @@ -301,10 +301,9 @@ export async function $onEmit(context: EmitContext) const [typeName, typeDefault] = this.#findPropertyType(property); const doc = getDoc(this.emitter.getProgram(), property); //const attributes = getAttributes(this.emitter.getProgram(), property); - const defaultValue = - property.default && !isValueOnly(property.default) - ? code`${this.emitter.emitType(property.default)}` - : typeDefault; + const defaultValue = property.default + ? code`${this.emitter.emitType(property.default)}` + : typeDefault; return this.emitter.result.rawCode(code` ${doc ? `${formatComment(doc)}` : ""} [JsonProperty("${property.name}")] @@ -467,8 +466,8 @@ export async function $onEmit(context: EmitContext) let pushed = 0; for (const arg of model.templateMapper!.args) { if ( + isType(arg) && arg.kind !== "Intrinsic" && - !isValueOnly(arg) && (arg.kind !== "Model" || (arg.name !== "" && arg.name !== "Error" && arg.name !== "AcceptedResponse")) ) { @@ -529,10 +528,9 @@ export async function $onEmit(context: EmitContext) NameCasingType.Parameter ); const [emittedType, emittedDefault] = this.#findPropertyType(parameter); - const defaultValue = - parameter.default && !isValueOnly(parameter.default) - ? code`${this.emitter.emitType(parameter.default)}` - : emittedDefault; + const defaultValue = parameter.default + ? code`${this.emitter.emitType(parameter.default)}` + : emittedDefault; return this.emitter.result.rawCode( code`${emittedType} ${emittedName}${defaultValue === undefined ? "" : ` = ${defaultValue}`}` ); @@ -734,7 +732,8 @@ export async function $onEmit(context: EmitContext) let i = 0; const params = new StringBuilder(); const args = model.templateMapper.args.filter( - (parameter) => + (parameter): parameter is Type => + isType(parameter) && parameter.kind !== "Boolean" && parameter.kind !== "Intrinsic" && parameter.kind !== "Number" && @@ -742,7 +741,6 @@ export async function $onEmit(context: EmitContext) parameter.kind !== "Tuple" ); for (const parameter of args) { - if (isValueOnly(parameter)) continue; i++; params.push(code`${this.emitter.emitTypeReference(parameter)}`); if (i < args.length) { From 827ac102d7e144caf4fdc74dfba9ceb67925f130 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Tue, 7 May 2024 08:16:55 -0700 Subject: [PATCH 17/28] merge with main --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index 9c1bca5874..94ce40a3f5 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 9c1bca5874a0dc41e23fb2122c668c87cd15d772 +Subproject commit 94ce40a3f589cc42aafdb01ee0ac2cb7fa967b59 From 9ce3fb8a94177778d8f0967f079a17e49687593d Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Tue, 7 May 2024 09:38:22 -0700 Subject: [PATCH 18/28] Migrate private decorator to valueof --- core | 2 +- .../lib/common-types/managed-identity.tsp | 4 ++-- .../lib/common-types/private-links.tsp | 10 +++++----- .../lib/private.decorators.tsp | 4 ++-- .../src/private.decorators.ts | 20 ++++++++++++------- 5 files changed, 23 insertions(+), 17 deletions(-) diff --git a/core b/core index 94ce40a3f5..1b5948477f 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 94ce40a3f589cc42aafdb01ee0ac2cb7fa967b59 +Subproject commit 1b5948477f27e78a7d9a6700892d105a7e5eeaed diff --git a/packages/typespec-azure-resource-manager/lib/common-types/managed-identity.tsp b/packages/typespec-azure-resource-manager/lib/common-types/managed-identity.tsp index 7588e3f1d0..c56e5db348 100644 --- a/packages/typespec-azure-resource-manager/lib/common-types/managed-identity.tsp +++ b/packages/typespec-azure-resource-manager/lib/common-types/managed-identity.tsp @@ -7,7 +7,7 @@ namespace Azure.ResourceManager.Foundations; */ @armCommonDefinition( "ManagedServiceIdentity", - { + #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true, }, @@ -40,7 +40,7 @@ model ManagedIdentityProperties { */ @armCommonDefinition( "SystemAssignedServiceIdentity", - { + #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true, }, diff --git a/packages/typespec-azure-resource-manager/lib/common-types/private-links.tsp b/packages/typespec-azure-resource-manager/lib/common-types/private-links.tsp index 1bf17a3007..717aee18e9 100644 --- a/packages/typespec-azure-resource-manager/lib/common-types/private-links.tsp +++ b/packages/typespec-azure-resource-manager/lib/common-types/private-links.tsp @@ -15,7 +15,7 @@ namespace Azure.ResourceManager; /** The private endpoint resource */ @armCommonDefinition( "PrivateEndpoint", - { + #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true, }, @@ -44,7 +44,7 @@ model PrivateEndpointConnection extends Azure.ResourceManager.Foundations.ProxyR /** Properties of he private endpoint connection resource */ @armCommonDefinition( "PrivateEndpointConnectionProperties", - { + #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true, }, @@ -73,7 +73,7 @@ model PrivateEndpointConnectionProperties { /** A collection of information about the state of the connection between service consumer and provider. */ @armCommonDefinition( "PrivateLinkServiceConnectionState", - { + #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true, }, @@ -129,7 +129,7 @@ model PrivateLinkResource extends Azure.ResourceManager.Foundations.ProxyResourc #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "Matches current common code" @armCommonDefinition( "PrivateLinkResourceProperties", - { + #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true, }, @@ -174,7 +174,7 @@ model PrivateEndpointConnectionParameter Date: Tue, 7 May 2024 10:05:59 -0700 Subject: [PATCH 19/28] Fix up issues --- .../@azure-tools/typespec-autorest/openapi.json | 12 +++--------- packages/typespec-azure-core/src/lro-info.ts | 8 ++++++-- .../src/common-types.ts | 5 +++-- .../typespec-azure-resource-manager/src/index.ts | 6 ++++++ .../test/resource.test.ts | 4 ++-- 5 files changed, 20 insertions(+), 15 deletions(-) diff --git a/packages/samples/test/output/core/string-template/@azure-tools/typespec-autorest/openapi.json b/packages/samples/test/output/core/string-template/@azure-tools/typespec-autorest/openapi.json index 426b6fd74d..944bca3535 100644 --- a/packages/samples/test/output/core/string-template/@azure-tools/typespec-autorest/openapi.json +++ b/packages/samples/test/output/core/string-template/@azure-tools/typespec-autorest/openapi.json @@ -25,18 +25,12 @@ "type": "object", "description": "Animal named: Cat", "properties": { - "kind": { - "type": "string", - "enum": [ - "Cat" - ], - "x-ms-enum": { - "modelAsString": false - } + "named": { + "type": "string" } }, "required": [ - "kind" + "named" ] }, "Person": { diff --git a/packages/typespec-azure-core/src/lro-info.ts b/packages/typespec-azure-core/src/lro-info.ts index 6f15cdea29..754617c720 100644 --- a/packages/typespec-azure-core/src/lro-info.ts +++ b/packages/typespec-azure-core/src/lro-info.ts @@ -357,8 +357,12 @@ export function getLroOperationInfo( ); return; } - const sourceProperty = propMap.templateMapper!.args[0]; - compilerAssert(isType(sourceProperty), "Lro Template Arg should be a Type", sourceProperty); + let sourceProperty = propMap.templateMapper!.args[0]; + if ("metaKind" in sourceProperty && sourceProperty.metaKind === "Indeterminate") { + sourceProperty = sourceProperty.type; + } else if (!isType(sourceProperty)) { + compilerAssert(false, "Lro Template Arg should be a Type", propMap); + } switch (sourceProperty.kind) { case "String": const sourcePropertyName = sourceProperty.value; diff --git a/packages/typespec-azure-resource-manager/src/common-types.ts b/packages/typespec-azure-resource-manager/src/common-types.ts index 0aad4719ca..2e0e4b225d 100644 --- a/packages/typespec-azure-resource-manager/src/common-types.ts +++ b/packages/typespec-azure-resource-manager/src/common-types.ts @@ -2,6 +2,7 @@ import { DecoratorContext, Enum, EnumMember, + EnumValue, Namespace, Program, Type, @@ -44,11 +45,11 @@ export function isArmCommonType(entity: Type): boolean { export function $armCommonTypesVersion( context: DecoratorContext, entity: Namespace | EnumMember, - version: string | EnumMember + version: string | EnumValue ) { context.program .stateMap(ArmStateKeys.armCommonTypesVersion) - .set(entity, typeof version === "string" ? version : version.name); + .set(entity, typeof version === "string" ? version : version.value.name); } /** diff --git a/packages/typespec-azure-resource-manager/src/index.ts b/packages/typespec-azure-resource-manager/src/index.ts index af39c72184..62857dfd29 100644 --- a/packages/typespec-azure-resource-manager/src/index.ts +++ b/packages/typespec-azure-resource-manager/src/index.ts @@ -1,3 +1,5 @@ +import { definePackageFlags } from "@typespec/compiler"; + export const namespace = "Azure.ResourceManager"; export * from "./common-types.js"; @@ -7,3 +9,7 @@ export * from "./resource.js"; export { $lib } from "./lib.js"; export { $linter } from "./linter.js"; + +export const $flags = definePackageFlags({ + decoratorArgMarshalling: "new", +}); diff --git a/packages/typespec-azure-resource-manager/test/resource.test.ts b/packages/typespec-azure-resource-manager/test/resource.test.ts index 4d9be5f670..a06025c280 100644 --- a/packages/typespec-azure-resource-manager/test/resource.test.ts +++ b/packages/typespec-azure-resource-manager/test/resource.test.ts @@ -849,13 +849,13 @@ describe("typespec-azure-resource-manager: ARM resource model", () => { foo: string; } - @Azure.ResourceManager.Private.armCommonDefinition("Bar", { version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, "bar.json") + @Azure.ResourceManager.Private.armCommonDefinition("Bar", #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, "bar.json") @Azure.ResourceManager.Private.armCommonDefinition("Bar", Azure.ResourceManager.CommonTypes.Versions.v5, "bar-v5.json") model Bar {prop: string} model BarParam { @path - @Azure.ResourceManager.Private.armCommonParameter("BarParam", { version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, "bar.json") + @Azure.ResourceManager.Private.armCommonParameter("BarParam", #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, "bar.json") @Azure.ResourceManager.Private.armCommonParameter("BarParam", Azure.ResourceManager.CommonTypes.Versions.v5, "bar-v5.json") bar: string; } From 5d22b565eed4988a70ef6efd549c26b0cc9264f3 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Tue, 7 May 2024 10:19:38 -0700 Subject: [PATCH 20/28] Format --- .../lib/common-types/managed-identity.tsp | 10 ++------ .../lib/common-types/private-links.tsp | 25 ++++--------------- 2 files changed, 7 insertions(+), 28 deletions(-) diff --git a/packages/typespec-azure-resource-manager/lib/common-types/managed-identity.tsp b/packages/typespec-azure-resource-manager/lib/common-types/managed-identity.tsp index c56e5db348..1a8b172900 100644 --- a/packages/typespec-azure-resource-manager/lib/common-types/managed-identity.tsp +++ b/packages/typespec-azure-resource-manager/lib/common-types/managed-identity.tsp @@ -7,10 +7,7 @@ namespace Azure.ResourceManager.Foundations; */ @armCommonDefinition( "ManagedServiceIdentity", - #{ - version: Azure.ResourceManager.CommonTypes.Versions.v4, - isDefault: true, - }, + #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, "managedidentity.json" ) @armCommonDefinition( @@ -40,10 +37,7 @@ model ManagedIdentityProperties { */ @armCommonDefinition( "SystemAssignedServiceIdentity", - #{ - version: Azure.ResourceManager.CommonTypes.Versions.v4, - isDefault: true, - }, + #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, "managedidentity.json" ) @armCommonDefinition( diff --git a/packages/typespec-azure-resource-manager/lib/common-types/private-links.tsp b/packages/typespec-azure-resource-manager/lib/common-types/private-links.tsp index 717aee18e9..d76a1c4f95 100644 --- a/packages/typespec-azure-resource-manager/lib/common-types/private-links.tsp +++ b/packages/typespec-azure-resource-manager/lib/common-types/private-links.tsp @@ -15,10 +15,7 @@ namespace Azure.ResourceManager; /** The private endpoint resource */ @armCommonDefinition( "PrivateEndpoint", - #{ - version: Azure.ResourceManager.CommonTypes.Versions.v4, - isDefault: true, - }, + #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, "privatelinks.json" ) @armCommonDefinition( @@ -44,10 +41,7 @@ model PrivateEndpointConnection extends Azure.ResourceManager.Foundations.ProxyR /** Properties of he private endpoint connection resource */ @armCommonDefinition( "PrivateEndpointConnectionProperties", - #{ - version: Azure.ResourceManager.CommonTypes.Versions.v4, - isDefault: true, - }, + #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, "privatelinks.json" ) @armCommonDefinition( @@ -73,10 +67,7 @@ model PrivateEndpointConnectionProperties { /** A collection of information about the state of the connection between service consumer and provider. */ @armCommonDefinition( "PrivateLinkServiceConnectionState", - #{ - version: Azure.ResourceManager.CommonTypes.Versions.v4, - isDefault: true, - }, + #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, "privatelinks.json" ) @armCommonDefinition( @@ -129,10 +120,7 @@ model PrivateLinkResource extends Azure.ResourceManager.Foundations.ProxyResourc #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "Matches current common code" @armCommonDefinition( "PrivateLinkResourceProperties", - #{ - version: Azure.ResourceManager.CommonTypes.Versions.v4, - isDefault: true, - }, + #{ version: Azure.ResourceManager.CommonTypes.Versions.v4, isDefault: true }, "privatelinks.json" ) @armCommonDefinition( @@ -174,10 +162,7 @@ model PrivateEndpointConnectionParameter Date: Tue, 7 May 2024 10:27:02 -0700 Subject: [PATCH 21/28] Update uptake-object-literals-2024-2-19-2-47-33.md --- .chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md b/.chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md index e5dc29fe91..fbd98bdd8e 100644 --- a/.chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md +++ b/.chronus/changes/uptake-object-literals-2024-2-19-2-47-33.md @@ -1,6 +1,6 @@ --- # Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking -changeKind: fix +changeKind: feature packages: - "@azure-tools/typespec-azure-core" - "@azure-tools/typespec-azure-resource-manager" From 53df3f4eabb675c211def907afadb1b50b06623f Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Tue, 7 May 2024 11:06:23 -0700 Subject: [PATCH 22/28] fix some tests --- .../test/operations.test.ts | 26 +++++-------------- .../typespec-azure-core/test/traits.test.ts | 4 +-- 2 files changed, 9 insertions(+), 21 deletions(-) diff --git a/packages/typespec-azure-core/test/operations.test.ts b/packages/typespec-azure-core/test/operations.test.ts index d658278a44..fbd381ea2b 100644 --- a/packages/typespec-azure-core/test/operations.test.ts +++ b/packages/typespec-azure-core/test/operations.test.ts @@ -2865,34 +2865,22 @@ describe("typespec-azure-core: operation templates", () => { expectDiagnostics(diagnostics, [ { - code: "unassignable", - message: - "Type 'Azure.MyService.Foo | Azure.MyService.Bar' is not assignable to type 'Model'", + code: "invalid-argument", }, { - code: "unassignable", - message: - "Type 'Azure.MyService.Foo | Azure.MyService.Bar' is not assignable to type 'Model'", + code: "invalid-argument", }, { - code: "unassignable", - message: - "Type 'Azure.MyService.Foo | Azure.MyService.Bar' is not assignable to type 'Model'", + code: "invalid-argument", }, { - code: "unassignable", - message: - "Type 'Azure.MyService.Bar | Azure.MyService.Foo' is not assignable to type 'Model'", + code: "invalid-argument", }, { - code: "unassignable", - message: - "Type 'Azure.MyService.Bar | Azure.MyService.Foo' is not assignable to type 'Model'", + code: "invalid-argument", }, { - code: "unassignable", - message: - "Type 'Azure.MyService.Bar | Azure.MyService.Foo' is not assignable to type 'Model'", + code: "invalid-argument", }, ]); }); @@ -2911,7 +2899,7 @@ describe("typespec-azure-core: operation templates", () => { message: "Unknown identifier abc", }, { - code: "unassignable", + code: "invalid-argument", }, ] ); diff --git a/packages/typespec-azure-core/test/traits.test.ts b/packages/typespec-azure-core/test/traits.test.ts index 6180acf636..2ec9010a77 100644 --- a/packages/typespec-azure-core/test/traits.test.ts +++ b/packages/typespec-azure-core/test/traits.test.ts @@ -309,7 +309,7 @@ describe("typespec-azure-core: service traits", () => { `); expectDiagnostics(diagnostics, { - code: "unassignable", + code: "invalid-argument", }); }); }); @@ -342,7 +342,7 @@ describe("typespec-azure-core: service traits", () => { `); expectDiagnostics(diagnostics, { - code: "unassignable", + code: "invalid-argument", }); }); }); From c92b3345e58374ba51a0cdb6b58cc59928b0d2c5 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Tue, 7 May 2024 11:30:04 -0700 Subject: [PATCH 23/28] fix --- packages/typespec-autorest/test/decorators.test.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/typespec-autorest/test/decorators.test.ts b/packages/typespec-autorest/test/decorators.test.ts index f1a1fdfb02..f126796f8e 100644 --- a/packages/typespec-autorest/test/decorators.test.ts +++ b/packages/typespec-autorest/test/decorators.test.ts @@ -77,7 +77,6 @@ describe("typespec-autorest: decorators", () => { expectDiagnostics(ignoreUseStandardOps(diagnostics), { code: "invalid-argument", - message: "Argument '123' is not assignable to parameter of type 'valueof string'", }); }); From 1f7bd3da4057d8ef76d1b275f0fc102321c5ed61 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Tue, 7 May 2024 12:59:33 -0700 Subject: [PATCH 24/28] bump --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index 1b5948477f..feecb80e81 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 1b5948477f27e78a7d9a6700892d105a7e5eeaed +Subproject commit feecb80e819ec20a0affdfd165ea5b11707703cd From c281870abfe6dcc04a412f0133800df36479c654 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Tue, 7 May 2024 13:14:14 -0700 Subject: [PATCH 25/28] fix --- .../typespec-client-generator-core/reference/decorators.md | 6 +++--- packages/typespec-client-generator-core/README.md | 4 ++-- packages/typespec-client-generator-core/lib/decorators.tsp | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/libraries/typespec-client-generator-core/reference/decorators.md b/docs/libraries/typespec-client-generator-core/reference/decorators.md index 408d308352..da7bf4a5c0 100644 --- a/docs/libraries/typespec-client-generator-core/reference/decorators.md +++ b/docs/libraries/typespec-client-generator-core/reference/decorators.md @@ -45,7 +45,7 @@ the access result is undefined. // Access.internal @access(Access.internal) model ModelToHide { -prop: valueof string +prop: string; } // Access.internal @access(Access.internal) @@ -315,7 +315,7 @@ all models that are included in operations. ```typespec @exclude("python") model ModelToExclude { - prop: valueof string; + prop: string } ``` @@ -373,7 +373,7 @@ all models that are included in operations. ```typespec @include("python") model ModelToInclude { - prop: valueof string; +prop: string; } ``` diff --git a/packages/typespec-client-generator-core/README.md b/packages/typespec-client-generator-core/README.md index 45c0f8f59f..d2f1eb3d7f 100644 --- a/packages/typespec-client-generator-core/README.md +++ b/packages/typespec-client-generator-core/README.md @@ -332,7 +332,7 @@ all models that are included in operations. ```typespec @exclude("python") model ModelToExclude { - prop: valueof string; +prop: valueof string } ``` @@ -390,7 +390,7 @@ all models that are included in operations. ```typespec @include("python") model ModelToInclude { - prop: valueof string; + prop: string; } ``` diff --git a/packages/typespec-client-generator-core/lib/decorators.tsp b/packages/typespec-client-generator-core/lib/decorators.tsp index a0731d8d4e..b258f72761 100644 --- a/packages/typespec-client-generator-core/lib/decorators.tsp +++ b/packages/typespec-client-generator-core/lib/decorators.tsp @@ -102,7 +102,7 @@ extern dec operationGroup(target: Namespace | Interface, scope?: valueof string) * ```typespec * @exclude("python") * model ModelToExclude { - * prop: valueof string + * prop: string; * } * ``` */ @@ -120,7 +120,7 @@ extern dec exclude(target: Model, scope?: valueof string); * ```typespec * @include("python") * model ModelToInclude { - * prop: valueof string + * prop: string; * } * ``` */ @@ -278,7 +278,7 @@ enum Access { * // Access.internal * @access(Access.internal) * model ModelToHide { - * prop: valueof string + * prop: string; * } * // Access.internal * @access(Access.internal) From 110839d4782ead93f59be55e4c44f9b489365681 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Wed, 8 May 2024 13:28:51 -0700 Subject: [PATCH 26/28] Use main core --- core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core b/core index feecb80e81..7ec17161b7 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit feecb80e819ec20a0affdfd165ea5b11707703cd +Subproject commit 7ec17161b78117737660506b424b8a133e477cfc From a14cadf7e4a3fbd53cdb9784ea9a8098f480bb10 Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Wed, 8 May 2024 13:59:16 -0700 Subject: [PATCH 27/28] fix missing metaKind rename --- packages/typespec-azure-core/src/lro-info.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/typespec-azure-core/src/lro-info.ts b/packages/typespec-azure-core/src/lro-info.ts index 754617c720..7cbc9ef951 100644 --- a/packages/typespec-azure-core/src/lro-info.ts +++ b/packages/typespec-azure-core/src/lro-info.ts @@ -358,7 +358,7 @@ export function getLroOperationInfo( return; } let sourceProperty = propMap.templateMapper!.args[0]; - if ("metaKind" in sourceProperty && sourceProperty.metaKind === "Indeterminate") { + if (sourceProperty.entityKind === "Indeterminate") { sourceProperty = sourceProperty.type; } else if (!isType(sourceProperty)) { compilerAssert(false, "Lro Template Arg should be a Type", propMap); From c26677084067dbc39d2c5d9342dd9546e5a695fa Mon Sep 17 00:00:00 2001 From: Timothee Guerin Date: Wed, 8 May 2024 14:21:30 -0700 Subject: [PATCH 28/28] fix --- .../typespec-client-generator-core/reference/decorators.md | 4 ++-- packages/typespec-client-generator-core/README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/libraries/typespec-client-generator-core/reference/decorators.md b/docs/libraries/typespec-client-generator-core/reference/decorators.md index da7bf4a5c0..07a83c9e33 100644 --- a/docs/libraries/typespec-client-generator-core/reference/decorators.md +++ b/docs/libraries/typespec-client-generator-core/reference/decorators.md @@ -315,7 +315,7 @@ all models that are included in operations. ```typespec @exclude("python") model ModelToExclude { - prop: string + prop: string; } ``` @@ -373,7 +373,7 @@ all models that are included in operations. ```typespec @include("python") model ModelToInclude { -prop: string; + prop: string; } ``` diff --git a/packages/typespec-client-generator-core/README.md b/packages/typespec-client-generator-core/README.md index d2f1eb3d7f..615820b4c6 100644 --- a/packages/typespec-client-generator-core/README.md +++ b/packages/typespec-client-generator-core/README.md @@ -62,7 +62,7 @@ the access result is undefined. // Access.internal @access(Access.internal) model ModelToHide { -prop: valueof string +prop: string; } // Access.internal @access(Access.internal) @@ -332,7 +332,7 @@ all models that are included in operations. ```typespec @exclude("python") model ModelToExclude { -prop: valueof string + prop: string; } ```