Rust: Add expressions with known type metric#20670
Merged
geoffw0 merged 3 commits intogithub:mainfrom Oct 22, 2025
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull Request Overview
This PR adds a new metric tracking expressions with known types to Rust's telemetry and diagnostic queries. The metric addresses missing data expected by DCA summaries and aligns Rust with other languages like Java by including type inference quality in the tool status page diagnostics.
- Adds expression type statistics to track successful type inference
- Integrates the new metric into extraction information telemetry
- Extends database quality diagnostics with a low threshold (20%) to avoid overwhelming existing issues
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| rust/ql/src/queries/telemetry/DatabaseQuality.qll | Implements ExprTypeStats module to count expressions with known/unknown types |
| rust/ql/src/queries/telemetry/ExtractorInformation.ql | Adds ExprTypeStatsReport metrics to extraction telemetry output |
| rust/ql/src/queries/telemetry/DatabaseQualityDiagnostics.ql | Includes ExprTypeStatsReport with 20% threshold in diagnostic checks |
| rust/ql/src/change-notes/2025-10-21-database-quality-diagnostic.md | Documents the extension of database quality query with type inference measure |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add missing metric "expressions with known type" to
rust/telemetry/extraction-information. I say missing because this metric is expected by the default DCA summaries and we've been getting warnings in Rust runs because it was missing.Perhaps more controversially, I've also added the same metric to
rust/diagnostic/database-quality(i.e. the query which feeds tool status page), since that's easy to do and aligns Rust more closely to other languages such as Java. I have set a very low threshold for the new metric here, for the time being, as I don't want to draw too much attention from the existing issues identified by the tool status page (that are being worked on). With the low threshold, 15 projects on the MRVA-1000 trigger the new condition, but only 1 of those wasn't already triggering another condition of the query anyway.