Skip to content

[TCGC] Extend isExactName to clients, methods, and enum values#4480

Merged
tadelesh merged 6 commits into
release/may-2026from
copilot/tcgc-extend-isexactname
May 22, 2026
Merged

[TCGC] Extend isExactName to clients, methods, and enum values#4480
tadelesh merged 6 commits into
release/may-2026from
copilot/tcgc-extend-isexactname

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 21, 2026

@clientName can be applied to any type, but isExactName was only tracked on a subset of TCGC types — leaving emitters unable to detect exact() overrides on clients, service methods, and enum values.

Interface additions

Added isExactName: boolean to:

  • SdkClientType
  • SdkServiceMethodBase (inherited by basic / paging / lro / lropaging methods)
  • SdkEnumValueType

Population

  • createSdkClientType (clients.ts): populates isExactName via isExactClientName(...) and normalizes the override so the internal _exact_: marker no longer leaks into SdkClientType.name.
  • getSdkBasicServiceMethod (methods.ts): populates isExactName; spread by all method variants.
  • getSdkEnumValueWithDiagnostics and getSdkUnionEnumValues (types.ts): populate isExactName for both enum and union-as-enum members.

Example

#suppress "experimental-feature" "using exact"
@@clientName(MyService, exact("my_exact_client"));
@@clientName(MyService.testOp, exact("my_exact_op"));
@@clientName(MyService.Status.Active, exact("my_active_value"));

All three resulting SDK types now expose isExactName: true with their name returned verbatim (no _exact_: prefix).

Tests

Extended test/functions/exact.test.ts with cases covering clients, methods, and enum values; existing method test now also asserts isExactName.

Copilot AI linked an issue May 21, 2026 that may be closed by this pull request
@microsoft-github-policy-service microsoft-github-policy-service Bot added the lib:tcgc Issues for @azure-tools/typespec-client-generator-core library label May 21, 2026
Copilot AI changed the title [WIP] Add isExactName support for all TCGC types [TCGC] Extend isExactName to clients, methods, and enum values May 21, 2026
Copilot AI requested a review from tadelesh May 21, 2026 08:08
Comment thread packages/typespec-client-generator-core/src/clients.ts Outdated
Copilot AI requested a review from tadelesh May 21, 2026 09:10
@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented May 21, 2026

Open in StackBlitz

npm i https://pkg.pr.new/@azure-tools/typespec-client-generator-core@4480

commit: 97de972

Copy link
Copy Markdown
Member

@tadelesh tadelesh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot Resolve the comments.

Comment thread packages/typespec-client-generator-core/src/clients.ts Outdated
Comment thread packages/typespec-client-generator-core/src/clients.ts Outdated
Co-authored-by: tadelesh <1726438+tadelesh@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor

⚡ Benchmark Results

⚠️ 86 metric(s) regressed above the +5% threshold:

Metric Baseline Current Change
total 🔴 700.9ms 🔴 784.9ms +12.0% 🔴
loader 🟢 128.6ms 🟢 145.0ms +12.7% 🔴
resolver 🟢 14.4ms 🟢 20.0ms +38.8% 🔴
checker 🟢 165.8ms 🟢 183.4ms +10.6% 🔴
validation 🟢 39.3ms 🟢 43.0ms +9.3% 🔴
 ↳ validation/@typespec/http 🟢 4.8ms 🟢 5.5ms +14.7% 🔴
 ↳ validation/@typespec/rest 🟢 0.5ms 🟢 0.7ms +41.8% 🔴
 ↳ validation/@typespec/versioning 🔴 26.2ms 🔴 28.7ms +9.5% 🔴
 ↳ validation/compiler 🟢 1.3ms 🟢 2.3ms +72.5% 🔴
linter 🟢 118.7ms 🟢 142.2ms +19.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/auth-required 🟢 0.0ms 🟢 0.0ms +21.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/byos 🟢 5.1ms 🟢 6.0ms +16.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/casing-style 🟢 0.5ms 🟢 0.6ms +23.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/composition-over-inheritance 🟢 0.0ms 🟢 0.1ms +44.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/documentation-required 🟢 0.6ms 🟢 0.8ms +31.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/friendly-name 🟢 0.6ms 🟢 0.6ms +8.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/key-visibility-required 🟢 0.1ms 🟢 0.2ms +26.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/known-encoding 🟢 0.2ms 🟢 0.3ms +15.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/long-running-polling-operation-required 🟢 0.3ms 🟢 0.4ms +73.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-case-mismatch 🟢 0.2ms 🟢 0.2ms +22.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-closed-literal-union 🟢 0.2ms 🟢 0.3ms +35.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-enum 🟢 0.0ms 🟢 0.0ms +26.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-error-status-codes 🟢 0.1ms 🟢 0.1ms +10.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-explicit-routes-resource-ops 🟢 0.1ms 🟢 0.1ms +10.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-generic-numeric 🟢 0.3ms 🟢 0.4ms +56.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-header-explode 🟡 17.4ms 🟡 18.7ms +7.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-legacy-usage 🟢 1.0ms 🟢 1.1ms +13.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-multiple-discriminator 🟢 0.0ms 🟢 0.1ms +46.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-nullable 🟢 0.2ms 🟢 0.2ms +13.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-offsetdatetime 🟢 1.1ms 🟢 1.3ms +19.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-openapi 🟢 1.7ms 🟢 2.3ms +30.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-private-usage 🟢 1.6ms 🟢 2.0ms +24.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-query-explode 🟡 16.8ms 🟡 19.2ms +14.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-response-body 🔴 20.7ms 🔴 22.5ms +8.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-rest-library-interfaces 🟢 0.0ms 🟢 0.0ms +52.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-rpc-path-params 🟢 0.2ms 🟢 0.2ms +25.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-string-discriminator 🟢 0.0ms 🟢 0.1ms +44.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-unnamed-union 🟢 0.3ms 🟢 0.3ms +11.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/operation-missing-api-version 🟢 0.2ms 🟢 0.2ms +17.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/request-body-problem 🟢 0.2ms 🟢 0.3ms +50.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/require-versioned 🟢 0.0ms 🟢 0.0ms +38.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/response-schema-problem 🔴 20.4ms 🔴 29.3ms +43.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/spread-discriminated-model 🟢 0.2ms 🟢 0.3ms +21.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/use-standard-operations 🟢 0.1ms 🟢 0.1ms +5.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-common-types-version 🟢 3.7ms 🟢 4.8ms +29.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key 🟢 0.1ms 🟢 0.1ms +36.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage 🟢 0.1ms 🟢 0.1ms +22.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes 🟢 4.9ms 🟢 6.2ms +27.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts 🟢 4.3ms 🟢 5.3ms +24.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-record 🟢 0.3ms 🟢 0.4ms +14.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes 🟢 0.4ms 🟢 0.6ms +32.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes 🟢 0.0ms 🟢 0.0ms +75.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment 🟢 0.2ms 🟢 0.3ms +16.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property 🟢 0.1ms 🟢 0.1ms +47.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator 🟢 0.0ms 🟢 0.0ms +62.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb 🟢 0.1ms 🟢 0.1ms +36.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property 🟢 0.1ms 🟢 0.1ms +32.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format 🟢 0.0ms 🟢 0.1ms +60.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars 🟢 0.2ms 🟢 0.2ms +25.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern 🟢 0.0ms 🟢 0.0ms +67.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation 🟢 0.2ms 🟢 0.2ms +44.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response 🟢 4.4ms 🟢 5.4ms +23.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-patch 🟢 0.3ms 🟢 0.4ms +31.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars 🟢 0.2ms 🟢 0.2ms +14.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state 🟢 0.1ms 🟢 0.1ms +14.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels 🟢 0.1ms 🟢 0.1ms +24.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/empty-updateable-properties 🟢 0.1ms 🟢 0.2ms +37.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation 🟢 0.0ms 🟢 0.0ms +177.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/lro-location-header 🟡 12.8ms 🟡 17.2ms +34.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint 🟢 0.0ms 🟢 0.0ms +31.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers 🟢 0.3ms 🟢 0.3ms +25.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-empty-model 🟢 0.1ms 🟢 0.1ms +54.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation 🟢 0.1ms 🟢 0.2ms +38.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-response-body 🟡 19.0ms 🔴 24.6ms +29.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/patch-envelope 🟢 0.1ms 🟢 0.1ms +23.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/resource-name 🟢 0.1ms 🟢 0.2ms +36.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/secret-prop 🟢 2.1ms 🟢 2.9ms +38.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/unsupported-type 🟢 0.4ms 🟢 0.4ms +22.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/version-progression 🟢 0.0ms 🟢 0.0ms +26.4% 🔴
 ↳ linter/@azure-tools/typespec-client-generator-core/property-name-conflict 🟢 0.9ms 🟢 1.1ms +15.7% 🔴
 ↳ linter/@azure-tools/typespec-client-generator-core/require-client-suffix 🟢 0.2ms 🟢 0.2ms +46.2% 🔴
emit 🟡 230.0ms 🟡 251.3ms +9.2% 🔴
 ↳ emit/@azure-tools/typespec-autorest 🟢 144.1ms 🟢 157.1ms +9.0% 🔴
 ↳ emit/@typespec/openapi3 🟢 127.9ms 🟢 141.2ms +10.4% 🔴
 ↳ emit/@typespec/openapi3/compute 🟢 115.6ms 🟢 126.4ms +9.3% 🔴
 ↳ emit/@typespec/openapi3/write 🟢 12.2ms 🟢 14.7ms +20.6% 🔴
Full details – comparing 23ba56b vs baseline 0f6fadd
Metric Baseline Current Change
total 🔴 700.9ms 🔴 784.9ms +12.0% 🔴
loader 🟢 128.6ms 🟢 145.0ms +12.7% 🔴
resolver 🟢 14.4ms 🟢 20.0ms +38.8% 🔴
checker 🟢 165.8ms 🟢 183.4ms +10.6% 🔴
validation 🟢 39.3ms 🟢 43.0ms +9.3% 🔴
 ↳ validation/@azure-tools/typespec-azure-core 🟢 5.6ms 🟢 5.8ms +4.4%
 ↳ validation/@typespec/http 🟢 4.8ms 🟢 5.5ms +14.7% 🔴
 ↳ validation/@typespec/rest 🟢 0.5ms 🟢 0.7ms +41.8% 🔴
 ↳ validation/@typespec/versioning 🔴 26.2ms 🔴 28.7ms +9.5% 🔴
 ↳ validation/compiler 🟢 1.3ms 🟢 2.3ms +72.5% 🔴
linter 🟢 118.7ms 🟢 142.2ms +19.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/auth-required 🟢 0.0ms 🟢 0.0ms +21.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/bad-record-type 🟢 0.2ms 🟢 0.2ms +1.5%
 ↳ linter/@azure-tools/typespec-azure-core/byos 🟢 5.1ms 🟢 6.0ms +16.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/casing-style 🟢 0.5ms 🟢 0.6ms +23.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/composition-over-inheritance 🟢 0.0ms 🟢 0.1ms +44.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/documentation-required 🟢 0.6ms 🟢 0.8ms +31.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/friendly-name 🟢 0.6ms 🟢 0.6ms +8.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/key-visibility-required 🟢 0.1ms 🟢 0.2ms +26.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/known-encoding 🟢 0.2ms 🟢 0.3ms +15.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/long-running-polling-operation-required 🟢 0.3ms 🟢 0.4ms +73.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-case-mismatch 🟢 0.2ms 🟢 0.2ms +22.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-closed-literal-union 🟢 0.2ms 🟢 0.3ms +35.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-enum 🟢 0.0ms 🟢 0.0ms +26.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-error-status-codes 🟢 0.1ms 🟢 0.1ms +10.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-explicit-routes-resource-ops 🟢 0.1ms 🟢 0.1ms +10.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-format 🟢 0.5ms 🟢 0.5ms +4.4%
 ↳ linter/@azure-tools/typespec-azure-core/no-generic-numeric 🟢 0.3ms 🟢 0.4ms +56.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-header-explode 🟡 17.4ms 🟡 18.7ms +7.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-legacy-usage 🟢 1.0ms 🟢 1.1ms +13.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-multiple-discriminator 🟢 0.0ms 🟢 0.1ms +46.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-nullable 🟢 0.2ms 🟢 0.2ms +13.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-offsetdatetime 🟢 1.1ms 🟢 1.3ms +19.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-openapi 🟢 1.7ms 🟢 2.3ms +30.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-private-usage 🟢 1.6ms 🟢 2.0ms +24.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-query-explode 🟡 16.8ms 🟡 19.2ms +14.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-response-body 🔴 20.7ms 🔴 22.5ms +8.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-rest-library-interfaces 🟢 0.0ms 🟢 0.0ms +52.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-route-parameter-name-mismatch 🟢 4.7ms 🟢 4.8ms +2.5%
 ↳ linter/@azure-tools/typespec-azure-core/no-rpc-path-params 🟢 0.2ms 🟢 0.2ms +25.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-string-discriminator 🟢 0.0ms 🟢 0.1ms +44.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-unknown 🟢 0.2ms 🟢 0.2ms -7.9% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/no-unnamed-union 🟢 0.3ms 🟢 0.3ms +11.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/operation-missing-api-version 🟢 0.2ms 🟢 0.2ms +17.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/request-body-problem 🟢 0.2ms 🟢 0.3ms +50.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/require-versioned 🟢 0.0ms 🟢 0.0ms +38.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/response-schema-problem 🔴 20.4ms 🔴 29.3ms +43.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/rpc-operation-request-body 🟢 0.3ms 🟢 0.3ms +4.9%
 ↳ linter/@azure-tools/typespec-azure-core/spread-discriminated-model 🟢 0.2ms 🟢 0.3ms +21.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/use-standard-names 🟢 4.4ms 🟢 4.5ms +2.3%
 ↳ linter/@azure-tools/typespec-azure-core/use-standard-operations 🟢 0.1ms 🟢 0.1ms +5.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-common-types-version 🟢 3.7ms 🟢 4.8ms +29.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key 🟢 0.1ms 🟢 0.1ms +36.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage 🟢 0.1ms 🟢 0.1ms +22.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes 🟢 4.9ms 🟢 6.2ms +27.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts 🟢 4.3ms 🟢 5.3ms +24.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-record 🟢 0.3ms 🟢 0.4ms +14.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes 🟢 0.4ms 🟢 0.6ms +32.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes 🟢 0.0ms 🟢 0.0ms +75.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment 🟢 0.2ms 🟢 0.3ms +16.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property 🟢 0.1ms 🟢 0.1ms +47.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator 🟢 0.0ms 🟢 0.0ms +62.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb 🟢 0.1ms 🟢 0.1ms +36.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property 🟢 0.1ms 🟢 0.1ms +32.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format 🟢 0.0ms 🟢 0.1ms +60.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars 🟢 0.2ms 🟢 0.2ms +25.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern 🟢 0.0ms 🟢 0.0ms +67.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation 🟢 0.2ms 🟢 0.2ms +44.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response 🟢 4.4ms 🟢 5.4ms +23.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-patch 🟢 0.3ms 🟢 0.4ms +31.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars 🟢 0.2ms 🟢 0.2ms +14.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state 🟢 0.1ms 🟢 0.1ms +14.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels 🟢 0.1ms 🟢 0.1ms +24.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/empty-updateable-properties 🟢 0.1ms 🟢 0.2ms +37.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation 🟢 0.0ms 🟢 0.0ms +177.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/lro-location-header 🟡 12.8ms 🟡 17.2ms +34.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint 🟢 0.0ms 🟢 0.0ms +31.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers 🟢 0.3ms 🟢 0.3ms +25.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-empty-model 🟢 0.1ms 🟢 0.1ms +54.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation 🟢 0.1ms 🟢 0.2ms +38.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-response-body 🟡 19.0ms 🔴 24.6ms +29.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/patch-envelope 🟢 0.1ms 🟢 0.1ms +23.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/resource-name 🟢 0.1ms 🟢 0.2ms +36.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/secret-prop 🟢 2.1ms 🟢 2.9ms +38.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/unsupported-type 🟢 0.4ms 🟢 0.4ms +22.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/version-progression 🟢 0.0ms 🟢 0.0ms +26.4% 🔴
 ↳ linter/@azure-tools/typespec-client-generator-core/property-name-conflict 🟢 0.9ms 🟢 1.1ms +15.7% 🔴
 ↳ linter/@azure-tools/typespec-client-generator-core/require-client-suffix 🟢 0.2ms 🟢 0.2ms +46.2% 🔴
emit 🟡 230.0ms 🟡 251.3ms +9.2% 🔴
 ↳ emit/@azure-tools/typespec-autorest 🟢 144.1ms 🟢 157.1ms +9.0% 🔴
 ↳ emit/@typespec/openapi3 🟢 127.9ms 🟢 141.2ms +10.4% 🔴
 ↳ emit/@typespec/openapi3/compute 🟢 115.6ms 🟢 126.4ms +9.3% 🔴
 ↳ emit/@typespec/openapi3/write 🟢 12.2ms 🟢 14.7ms +20.6% 🔴

Averaged across 3 specs (azure-arm-resource-manager, azure-core-dataplane, azure-full).
Threshold: changes > ±5% are highlighted.
🟢 Fast · 🟡 Moderate (stages >200ms, rules >10ms) · 🔴 Slow (stages >400ms, rules >20ms)

@azure-sdk
Copy link
Copy Markdown
Collaborator

All changed packages have been documented.

  • @azure-tools/typespec-client-generator-core
Show changes

@azure-tools/typespec-client-generator-core - fix ✏️

Fix reorderParameters, addParameter, removeParameter, and replaceParameter so that decorators copied to cloned model properties and cloned operations are applied (by calling finishType after cloning). This fixes scenarios such as parameters with @typeChangedFrom under a @versioned service.

@azure-tools/typespec-client-generator-core - feature ✏️

Extend isExactName to additional SDK types whose names can be changed by @clientName: SdkClientType, SdkServiceMethodBase (and its derived method kinds), and SdkEnumValueType. Also fixed SdkClientType.name to strip the internal exact() marker.

@azure-sdk
Copy link
Copy Markdown
Collaborator

You can try these changes here

🛝 Playground 🌐 Website

@tadelesh tadelesh merged commit a69d0d1 into release/may-2026 May 22, 2026
28 checks passed
@tadelesh tadelesh deleted the copilot/tcgc-extend-isexactname branch May 22, 2026 07:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lib:tcgc Issues for @azure-tools/typespec-client-generator-core library

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[TCGC] Extend isExactName to more types

4 participants