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 significant 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: