Tracking Issue for rustc's translatable diagnostics infrastructure #132181
Labels
A-diagnostics
Area: Messages for errors, warnings, and lints
A-translation
Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic
C-tracking-issue
Category: An issue tracking the progress of sth. like the implementation of an RFC
D-diagnostic-infra
Diagnostics: Issues that affect all diagnostics, or relate to the diagnostic machinery itself.
E-hard
Call for participation: Hard difficulty. Experience needed to fix: A lot.
E-needs-design
This issue needs exploration and design to see how and if we can fix/implement it
S-tracking-needs-deep-research
Status: This feature needs deep research to solve design or implementation issues.
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
WG-diagnostics
Working group: Diagnostics
This is a tracking issue for rustc's translatable diagnostics infrastructure, which is related to #100717 but reflects the current status.
Current status
Unfortunately, we have found that the current implementation of diagnostic translation infrastructure causes non-insignificant friction for compiler contributors when trying to work on diagnostics, including but not limited to:
errors.rs
and the emission site, etc.)rustc_const_eval
or other not-migrated examples.Important
Based on these friction points, we want to downgrade the internal lints
untranslatable_diagnostic
/diagnostic_outside_of_impl
requiring usage of current translatable diagnostic infra fromdeny
toallow
.If someone wants to continue the translatable diagnostics effort, then they will need to come up with a better redesign that causes less friction for compiler contributors.
Related discussions
InterpError
: error enum variants vsthrow_ub_custom!
#112618Implementation steps
Relaxing the current restrictions
untranslatable_diagnostic
anddiagnostic_outside_of_impl
fromdeny
toallow
.untranslatable_diagnostic
anddiagnostic_outside_of_impl
toallow
#132182Come up with a redesign
Note: this is not currently being actively worked on AFAICT, please speak with wg-diagnostics and T-compiler if you wish to pursue this. See specifically https://rust-lang.zulipchat.com/#narrow/channel/336883-i18n/topic/.23100717.20diag.20translation/near/472701978.
Further steps are presently unclear.
Unresolved questions
Implementation / experimentation history
This listing is moreso focused on diagnostic infra itself, not migration efforts. Please see the closed PRs for what concrete issues they have ran into.
More discussions
cc @rust-lang/wg-diagnostics
The text was updated successfully, but these errors were encountered: