Skip to content

Fix TCGC crash when a merged service omits a version for a depended library#4501

Merged
tadelesh merged 3 commits into
release/may-2026from
copilot/tcgc-cannot-read-properties
May 27, 2026
Merged

Fix TCGC crash when a merged service omits a version for a depended library#4501
tadelesh merged 3 commits into
release/may-2026from
copilot/tcgc-cannot-read-properties

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 27, 2026

validateMultipleServiceDependencyVersions (added with the inconsistent-multiple-service-dependency warning) crashed with TypeError: Cannot read properties of undefined (reading 'value') whenever resolveVersions returned an entry mapping a dependency namespace to undefined — which happens when the merged service's latest version has no @useDependency mapping for that library.

Changes

  • packages/typespec-client-generator-core/src/decorators.ts: when the resolved depVersion is undefined, fall back to the latest version of the depended library via getVersion(program, depNs).getVersions(), matching what downstream emitters pick. Skip the entry only if the dependency namespace itself has no versions.
  • Test: regression test in test/clients/structure.test.ts covering a service whose latest enum member lacks @useDependency; reproduces the crash on main and verifies the fallback resolves to the same version as the sibling service (no spurious warning).

Repro

@versioned(LibVersions)
namespace SharedLib {
  enum LibVersions { v1, v2 }
}

@service @versioned(VersionsA)
namespace ServiceA {
  enum VersionsA { @useDependency(SharedLib.LibVersions.v2) av1 }
  op a(): void;
}

@service @versioned(VersionsB)
namespace ServiceB {
  enum VersionsB {
    @useDependency(SharedLib.LibVersions.v2) bv1,
    bv2,   // latest, no @useDependency -> SharedLib resolves to undefined
  }
  op b(): void;
}

@client({ name: "CombineClient", service: [ServiceA, ServiceB], autoMergeService: true })
namespace CombineClient {}

Copilot AI linked an issue May 27, 2026 that may be closed by this pull request
Co-authored-by: tadelesh <1726438+tadelesh@users.noreply.github.com>
@microsoft-github-policy-service microsoft-github-policy-service Bot added the lib:tcgc Issues for @azure-tools/typespec-client-generator-core library label May 27, 2026
Copilot AI changed the title [WIP] Fix cannot read properties of undefined issue Fix TCGC crash when a merged service omits a version for a depended library May 27, 2026
Copilot AI requested a review from tadelesh May 27, 2026 03:42
@tadelesh tadelesh marked this pull request as ready for review May 27, 2026 05:16
@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 "Cannot read properties of undefined" crash in the inconsistent-multiple-service-dependency validation when a service merged into a multi-service client does not specify a version for a depended library (e.g. its latest service version has no matching @useDependency entry). The validation now falls back to the latest version of the depended library, matching the behavior of downstream emitters.

@github-actions
Copy link
Copy Markdown
Contributor

⚡ Benchmark Results

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

Metric Baseline Current Change
total 🔴 714.1ms 🔴 826.6ms +15.8% 🔴
loader 🟢 138.4ms 🟢 162.5ms +17.4% 🔴
resolver 🟢 16.1ms 🟢 17.1ms +5.7% 🔴
checker 🟢 167.8ms 🟢 199.5ms +18.9% 🔴
validation 🟢 38.9ms 🟢 42.6ms +9.5% 🔴
 ↳ validation/@azure-tools/typespec-azure-core 🟢 5.5ms 🟢 6.5ms +18.3% 🔴
 ↳ validation/@typespec/http 🟢 5.1ms 🟢 5.6ms +9.8% 🔴
 ↳ validation/@typespec/versioning 🔴 26.1ms 🔴 28.2ms +7.9% 🔴
 ↳ validation/compiler 🟢 1.4ms 🟢 1.9ms +34.5% 🔴
linter 🟢 116.4ms 🟢 153.9ms +32.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/bad-record-type 🟢 0.2ms 🟢 0.2ms +8.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/byos 🟢 5.1ms 🟢 6.3ms +23.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/casing-style 🟢 0.5ms 🟢 0.6ms +22.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/composition-over-inheritance 🟢 0.1ms 🟢 0.1ms +12.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/friendly-name 🟢 0.5ms 🟢 0.7ms +20.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/key-visibility-required 🟢 0.1ms 🟢 0.2ms +17.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/known-encoding 🟢 0.2ms 🟢 0.2ms +8.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/long-running-polling-operation-required 🟢 0.3ms 🟢 0.3ms +23.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-case-mismatch 🟢 0.2ms 🟢 0.2ms +17.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-closed-literal-union 🟢 0.2ms 🟢 0.3ms +21.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-enum 🟢 0.0ms 🟢 0.0ms +6.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-error-status-codes 🟢 0.1ms 🟢 0.1ms +14.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-format 🟢 0.4ms 🟢 0.5ms +17.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-header-explode 🟡 16.0ms 🔴 21.3ms +33.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-legacy-usage 🟢 1.0ms 🟢 1.4ms +34.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-multiple-discriminator 🟢 0.1ms 🟢 0.1ms +20.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-offsetdatetime 🟢 1.1ms 🟢 1.3ms +13.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-openapi 🟢 1.7ms 🟢 1.9ms +10.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-private-usage 🟢 1.7ms 🟢 1.8ms +6.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-query-explode 🟡 16.8ms 🔴 21.9ms +30.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-response-body 🔴 21.4ms 🔴 24.0ms +12.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-route-parameter-name-mismatch 🟢 4.4ms 🟢 5.9ms +36.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-rpc-path-params 🟢 0.2ms 🟢 0.2ms +31.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-string-discriminator 🟢 0.0ms 🟢 0.1ms +36.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-unknown 🟢 0.1ms 🟢 0.2ms +17.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-unnamed-union 🟢 0.3ms 🟢 0.3ms +12.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/response-schema-problem 🟡 19.0ms 🔴 24.5ms +28.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/rpc-operation-request-body 🟢 0.3ms 🟢 0.4ms +34.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/spread-discriminated-model 🟢 0.2ms 🟢 0.3ms +21.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/use-standard-names 🟢 4.2ms 🟢 5.4ms +27.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/use-standard-operations 🟢 0.1ms 🟢 0.1ms +18.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-common-types-version 🟢 3.6ms 🟢 5.7ms +59.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key 🟢 0.1ms 🟢 0.1ms +30.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage 🟢 0.1ms 🟢 0.1ms +33.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes 🟢 4.6ms 🟢 7.3ms +58.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts 🟢 4.1ms 🟢 6.7ms +62.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-record 🟢 0.3ms 🟢 0.4ms +18.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes 🟢 0.4ms 🟢 0.7ms +61.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes 🟢 0.0ms 🟢 0.0ms +87.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment 🟢 0.2ms 🟢 0.3ms +15.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property 🟢 0.1ms 🟢 0.2ms +40.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator 🟢 0.0ms 🟢 0.0ms +28.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb 🟢 0.1ms 🟢 0.1ms +59.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property 🟢 0.1ms 🟢 0.1ms +30.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format 🟢 0.0ms 🟢 0.1ms +60.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars 🟢 0.2ms 🟢 0.3ms +46.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern 🟢 0.0ms 🟢 0.0ms +44.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation 🟢 0.1ms 🟢 0.2ms +38.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response 🟢 4.1ms 🟢 6.1ms +49.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-patch 🟢 0.3ms 🟢 0.4ms +38.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars 🟢 0.2ms 🟢 0.2ms +30.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state 🟢 0.1ms 🟢 0.1ms +24.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels 🟢 0.1ms 🟢 0.1ms +31.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/empty-updateable-properties 🟢 0.1ms 🟢 0.2ms +53.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation 🟢 0.0ms 🟢 0.0ms +87.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/lro-location-header 🟡 12.7ms 🟡 18.7ms +47.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint 🟢 0.0ms 🟢 0.0ms +20.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers 🟢 0.3ms 🟢 0.3ms +21.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-empty-model 🟢 0.1ms 🟢 0.1ms +45.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation 🟢 0.2ms 🟢 0.2ms +33.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-response-body 🟡 18.8ms 🔴 46.4ms +146.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/patch-envelope 🟢 0.1ms 🟢 0.2ms +36.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/resource-name 🟢 0.1ms 🟢 0.2ms +36.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/secret-prop 🟢 2.2ms 🟢 2.3ms +8.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/unsupported-type 🟢 0.3ms 🟢 0.5ms +30.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/version-progression 🟢 0.0ms 🟢 0.0ms +25.2% 🔴
 ↳ linter/@azure-tools/typespec-client-generator-core/property-name-conflict 🟢 0.9ms 🟢 1.1ms +16.8% 🔴
emit 🟡 232.2ms 🟡 251.1ms +8.1% 🔴
 ↳ emit/@azure-tools/typespec-autorest 🟢 144.4ms 🟢 158.2ms +9.6% 🔴
 ↳ emit/@typespec/openapi3 🟢 129.9ms 🟢 139.1ms +7.1% 🔴
 ↳ emit/@typespec/openapi3/compute 🟢 115.7ms 🟢 124.4ms +7.6% 🔴
 ↳ emit/@typespec/openapi3/write 🟢 13.6ms 🟢 14.7ms +8.1% 🔴
Full details – comparing 53f3405 vs baseline a16a6ea
Metric Baseline Current Change
total 🔴 714.1ms 🔴 826.6ms +15.8% 🔴
loader 🟢 138.4ms 🟢 162.5ms +17.4% 🔴
resolver 🟢 16.1ms 🟢 17.1ms +5.7% 🔴
checker 🟢 167.8ms 🟢 199.5ms +18.9% 🔴
validation 🟢 38.9ms 🟢 42.6ms +9.5% 🔴
 ↳ validation/@azure-tools/typespec-azure-core 🟢 5.5ms 🟢 6.5ms +18.3% 🔴
 ↳ validation/@typespec/http 🟢 5.1ms 🟢 5.6ms +9.8% 🔴
 ↳ validation/@typespec/rest 🟢 0.5ms 🟢 0.5ms -3.9%
 ↳ validation/@typespec/versioning 🔴 26.1ms 🔴 28.2ms +7.9% 🔴
 ↳ validation/compiler 🟢 1.4ms 🟢 1.9ms +34.5% 🔴
linter 🟢 116.4ms 🟢 153.9ms +32.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/auth-required 🟢 0.0ms 🟢 0.0ms +1.8%
 ↳ linter/@azure-tools/typespec-azure-core/bad-record-type 🟢 0.2ms 🟢 0.2ms +8.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/byos 🟢 5.1ms 🟢 6.3ms +23.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/casing-style 🟢 0.5ms 🟢 0.6ms +22.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/composition-over-inheritance 🟢 0.1ms 🟢 0.1ms +12.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/documentation-required 🟢 0.7ms 🟢 0.8ms +3.4%
 ↳ linter/@azure-tools/typespec-azure-core/friendly-name 🟢 0.5ms 🟢 0.7ms +20.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/key-visibility-required 🟢 0.1ms 🟢 0.2ms +17.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/known-encoding 🟢 0.2ms 🟢 0.2ms +8.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/long-running-polling-operation-required 🟢 0.3ms 🟢 0.3ms +23.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-case-mismatch 🟢 0.2ms 🟢 0.2ms +17.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-closed-literal-union 🟢 0.2ms 🟢 0.3ms +21.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-enum 🟢 0.0ms 🟢 0.0ms +6.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-error-status-codes 🟢 0.1ms 🟢 0.1ms +14.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-explicit-routes-resource-ops 🟢 0.1ms 🟢 0.1ms +4.7%
 ↳ linter/@azure-tools/typespec-azure-core/no-format 🟢 0.4ms 🟢 0.5ms +17.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-generic-numeric 🟢 0.4ms 🟢 0.4ms +4.9%
 ↳ linter/@azure-tools/typespec-azure-core/no-header-explode 🟡 16.0ms 🔴 21.3ms +33.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-legacy-usage 🟢 1.0ms 🟢 1.4ms +34.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-multiple-discriminator 🟢 0.1ms 🟢 0.1ms +20.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-nullable 🟢 0.2ms 🟢 0.2ms +1.3%
 ↳ linter/@azure-tools/typespec-azure-core/no-offsetdatetime 🟢 1.1ms 🟢 1.3ms +13.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-openapi 🟢 1.7ms 🟢 1.9ms +10.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-private-usage 🟢 1.7ms 🟢 1.8ms +6.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-query-explode 🟡 16.8ms 🔴 21.9ms +30.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-response-body 🔴 21.4ms 🔴 24.0ms +12.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-rest-library-interfaces 🟢 0.0ms 🟢 0.0ms +1.9%
 ↳ linter/@azure-tools/typespec-azure-core/no-route-parameter-name-mismatch 🟢 4.4ms 🟢 5.9ms +36.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-rpc-path-params 🟢 0.2ms 🟢 0.2ms +31.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-string-discriminator 🟢 0.0ms 🟢 0.1ms +36.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-unknown 🟢 0.1ms 🟢 0.2ms +17.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-unnamed-union 🟢 0.3ms 🟢 0.3ms +12.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/operation-missing-api-version 🟢 0.2ms 🟢 0.2ms +2.0%
 ↳ linter/@azure-tools/typespec-azure-core/request-body-problem 🟢 0.2ms 🟢 0.2ms +3.0%
 ↳ linter/@azure-tools/typespec-azure-core/require-versioned 🟢 0.0ms 🟢 0.0ms -2.9%
 ↳ linter/@azure-tools/typespec-azure-core/response-schema-problem 🟡 19.0ms 🔴 24.5ms +28.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/rpc-operation-request-body 🟢 0.3ms 🟢 0.4ms +34.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/spread-discriminated-model 🟢 0.2ms 🟢 0.3ms +21.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/use-standard-names 🟢 4.2ms 🟢 5.4ms +27.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/use-standard-operations 🟢 0.1ms 🟢 0.1ms +18.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-common-types-version 🟢 3.6ms 🟢 5.7ms +59.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key 🟢 0.1ms 🟢 0.1ms +30.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage 🟢 0.1ms 🟢 0.1ms +33.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes 🟢 4.6ms 🟢 7.3ms +58.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts 🟢 4.1ms 🟢 6.7ms +62.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-record 🟢 0.3ms 🟢 0.4ms +18.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes 🟢 0.4ms 🟢 0.7ms +61.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes 🟢 0.0ms 🟢 0.0ms +87.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment 🟢 0.2ms 🟢 0.3ms +15.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property 🟢 0.1ms 🟢 0.2ms +40.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator 🟢 0.0ms 🟢 0.0ms +28.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb 🟢 0.1ms 🟢 0.1ms +59.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property 🟢 0.1ms 🟢 0.1ms +30.1% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format 🟢 0.0ms 🟢 0.1ms +60.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars 🟢 0.2ms 🟢 0.3ms +46.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern 🟢 0.0ms 🟢 0.0ms +44.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation 🟢 0.1ms 🟢 0.2ms +38.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response 🟢 4.1ms 🟢 6.1ms +49.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-patch 🟢 0.3ms 🟢 0.4ms +38.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars 🟢 0.2ms 🟢 0.2ms +30.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state 🟢 0.1ms 🟢 0.1ms +24.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels 🟢 0.1ms 🟢 0.1ms +31.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/empty-updateable-properties 🟢 0.1ms 🟢 0.2ms +53.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation 🟢 0.0ms 🟢 0.0ms +87.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/lro-location-header 🟡 12.7ms 🟡 18.7ms +47.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint 🟢 0.0ms 🟢 0.0ms +20.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers 🟢 0.3ms 🟢 0.3ms +21.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-empty-model 🟢 0.1ms 🟢 0.1ms +45.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation 🟢 0.2ms 🟢 0.2ms +33.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-response-body 🟡 18.8ms 🔴 46.4ms +146.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/patch-envelope 🟢 0.1ms 🟢 0.2ms +36.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/resource-name 🟢 0.1ms 🟢 0.2ms +36.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/secret-prop 🟢 2.2ms 🟢 2.3ms +8.4% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/unsupported-type 🟢 0.3ms 🟢 0.5ms +30.5% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/version-progression 🟢 0.0ms 🟢 0.0ms +25.2% 🔴
 ↳ linter/@azure-tools/typespec-client-generator-core/property-name-conflict 🟢 0.9ms 🟢 1.1ms +16.8% 🔴
 ↳ linter/@azure-tools/typespec-client-generator-core/require-client-suffix 🟢 0.2ms 🟢 0.2ms +1.5%
emit 🟡 232.2ms 🟡 251.1ms +8.1% 🔴
 ↳ emit/@azure-tools/typespec-autorest 🟢 144.4ms 🟢 158.2ms +9.6% 🔴
 ↳ emit/@typespec/openapi3 🟢 129.9ms 🟢 139.1ms +7.1% 🔴
 ↳ emit/@typespec/openapi3/compute 🟢 115.7ms 🟢 124.4ms +7.6% 🔴
 ↳ emit/@typespec/openapi3/write 🟢 13.6ms 🟢 14.7ms +8.1% 🔴

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)

@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented May 27, 2026

Open in StackBlitz

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

commit: 21dbe07

@azure-sdk
Copy link
Copy Markdown
Collaborator

You can try these changes here

🛝 Playground 🌐 Website

@tadelesh tadelesh enabled auto-merge (squash) May 27, 2026 05:31
@tadelesh tadelesh merged commit d46b663 into release/may-2026 May 27, 2026
28 checks passed
@tadelesh tadelesh deleted the copilot/tcgc-cannot-read-properties branch May 27, 2026 06:02
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] Cannot read properties of undefined

4 participants