1 use rustc_errors::AddSubdiagnostic;
4 pub struct CycleStack {
9 impl AddSubdiagnostic for CycleStack {
10 fn add_to_diagnostic(self, diag: &mut rustc_errors::Diagnostic) {
11 diag.span_note(self.span, &format!("...which requires {}...", self.desc));
15 #[derive(SessionSubdiagnostic)]
17 #[note(query_system::cycle_stack_single)]
19 #[note(query_system::cycle_stack_multiple)]
23 #[derive(SessionSubdiagnostic)]
25 #[note(query_system::cycle_recursive_ty_alias)]
26 #[help(query_system::cycle_recursive_ty_alias_help1)]
27 #[help(query_system::cycle_recursive_ty_alias_help2)]
29 #[note(query_system::cycle_recursive_trait_alias)]
33 #[derive(SessionSubdiagnostic)]
34 #[note(query_system::cycle_usage)]
35 pub struct CycleUsage {
41 #[derive(SessionDiagnostic)]
42 #[diag(query_system::cycle, code = "E0391")]
46 pub stack_bottom: String,
48 pub cycle_stack: Vec<CycleStack>,
50 pub stack_count: StackCount,
52 pub alias: Option<Alias>,
54 pub cycle_usage: Option<CycleUsage>,
57 #[derive(SessionDiagnostic)]
58 #[diag(query_system::reentrant)]
61 #[derive(SessionDiagnostic)]
62 #[diag(query_system::increment_compilation)]
64 #[note(query_system::increment_compilation_note1)]
65 #[note(query_system::increment_compilation_note2)]
66 pub struct IncrementCompilation {
71 #[derive(SessionDiagnostic)]
72 #[diag(query_system::query_overflow)]
73 pub struct QueryOverflow;