diff --git a/editors/code/src/utils/diagnostics/rust.ts b/editors/code/src/utils/diagnostics/rust.ts index 1fb1f7b6dc89..a66b52313e9d 100644 --- a/editors/code/src/utils/diagnostics/rust.ts +++ b/editors/code/src/utils/diagnostics/rust.ts @@ -111,6 +111,19 @@ function isUnusedOrUnnecessary(rd: RustDiagnostic): boolean { ].includes(rd.code.code); } +/** + * Determines if diagnostic is related to deprecated code + */ +function isDeprecated(rd: RustDiagnostic): boolean { + if (!rd.code) { + return false; + } + + return [ + 'deprecated', + ].includes(rd.code.code); +} + /** * Converts a Rust child diagnostic to a VsCode related information * @@ -233,8 +246,14 @@ export function mapRustDiagnosticToVsCode( vd.message += `\n${primarySpanLabel}`; } + vd.tags = [] + if (isUnusedOrUnnecessary(rd)) { - vd.tags = [vscode.DiagnosticTag.Unnecessary]; + vd.tags.push(vscode.DiagnosticTag.Unnecessary); + } + + if (isDeprecated(rd)) { + vd.tags.push(vscode.DiagnosticTag.Deprecated); } return {