Skip to content

Commit 5b81528

Browse files
committed
UPDATE - move SessionDiagnostic from rustc_session to rustc_errors
1 parent b79b7d8 commit 5b81528

File tree

16 files changed

+33
-30
lines changed

16 files changed

+33
-30
lines changed

compiler/rustc_attr/src/session_diagnostics.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
use std::num::IntErrorKind;
22

33
use rustc_ast as ast;
4+
use rustc_errors::SessionDiagnostic;
45
use rustc_errors::{
56
error_code, fluent, Applicability, DiagnosticBuilder, ErrorGuaranteed, Handler,
67
};
78
use rustc_macros::SessionDiagnostic;
8-
use rustc_session::SessionDiagnostic;
99
use rustc_span::{Span, Symbol};
1010

1111
use crate::UnsupportedLiteralReason;

compiler/rustc_errors/src/diagnostic_builder.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,15 @@ use std::marker::PhantomData;
1313
use std::ops::{Deref, DerefMut};
1414
use std::thread::panicking;
1515

16+
/// Trait implemented by error types. This should not be implemented manually. Instead, use
17+
/// `#[derive(SessionDiagnostic)]` -- see [rustc_macros::SessionDiagnostic].
18+
#[rustc_diagnostic_item = "SessionDiagnostic"]
19+
pub trait SessionDiagnostic<'a, T: EmissionGuarantee = ErrorGuaranteed> {
20+
/// Write out as a diagnostic out of `Handler`.
21+
#[must_use]
22+
fn into_diagnostic(self, handler: &'a Handler) -> DiagnosticBuilder<'a, T>;
23+
}
24+
1625
/// Used for emitting structured error messages and other diagnostic information.
1726
///
1827
/// If there is some state in a downstream crate you would like to

compiler/rustc_errors/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ mod snippet;
6060
mod styled_buffer;
6161
pub mod translation;
6262

63+
pub use diagnostic_builder::SessionDiagnostic;
6364
pub use snippet::Style;
6465

6566
pub type PResult<'a, T> = Result<T, DiagnosticBuilder<'a, ErrorGuaranteed>>;

compiler/rustc_expand/src/base.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@ use rustc_ast::{self as ast, AttrVec, Attribute, HasAttrs, Item, NodeId, PatKind
1010
use rustc_attr::{self as attr, Deprecation, Stability};
1111
use rustc_data_structures::fx::{FxHashSet, FxIndexMap};
1212
use rustc_data_structures::sync::{self, Lrc};
13-
use rustc_errors::{Applicability, DiagnosticBuilder, ErrorGuaranteed, MultiSpan, PResult};
13+
use rustc_errors::{
14+
Applicability, DiagnosticBuilder, ErrorGuaranteed, MultiSpan, PResult, SessionDiagnostic,
15+
};
1416
use rustc_lint_defs::builtin::PROC_MACRO_BACK_COMPAT;
1517
use rustc_lint_defs::{BufferedEarlyLint, BuiltinLintDiagnostics};
1618
use rustc_parse::{self, parser, MACRO_ARGUMENTS};
17-
use rustc_session::{parse::ParseSess, Limit, Session, SessionDiagnostic};
19+
use rustc_session::{parse::ParseSess, Limit, Session};
1820
use rustc_span::def_id::{CrateNum, DefId, LocalDefId};
1921
use rustc_span::edition::Edition;
2022
use rustc_span::hygiene::{AstPass, ExpnData, ExpnKind, LocalExpnId};

compiler/rustc_infer/src/infer/error_reporting/need_type_info.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use crate::errors::{
44
};
55
use crate::infer::type_variable::{TypeVariableOrigin, TypeVariableOriginKind};
66
use crate::infer::InferCtxt;
7+
use rustc_errors::SessionDiagnostic;
78
use rustc_errors::{DiagnosticBuilder, ErrorGuaranteed, IntoDiagnosticArg};
89
use rustc_hir as hir;
910
use rustc_hir::def::Res;
@@ -18,7 +19,6 @@ use rustc_middle::ty::print::{FmtPrinter, PrettyPrinter, Print, Printer};
1819
use rustc_middle::ty::{self, DefIdTree, InferConst};
1920
use rustc_middle::ty::{GenericArg, GenericArgKind, SubstsRef};
2021
use rustc_middle::ty::{IsSuggestable, Ty, TyCtxt, TypeckResults};
21-
use rustc_session::SessionDiagnostic;
2222
use rustc_span::symbol::{kw, Ident};
2323
use rustc_span::{BytePos, Span};
2424
use std::borrow::Cow;

compiler/rustc_lint/src/errors.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use rustc_errors::{fluent, AddSubdiagnostic, ErrorGuaranteed, Handler};
1+
use rustc_errors::{fluent, AddSubdiagnostic, ErrorGuaranteed, Handler, SessionDiagnostic};
22
use rustc_macros::{SessionDiagnostic, SessionSubdiagnostic};
3-
use rustc_session::{lint::Level, SessionDiagnostic};
3+
use rustc_session::lint::Level;
44
use rustc_span::{Span, Symbol};
55

66
#[derive(SessionDiagnostic)]

compiler/rustc_macros/src/diagnostics/diagnostic.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ impl<'a> SessionDiagnosticDerive<'a> {
8282

8383
structure.gen_impl(quote! {
8484
gen impl<'__session_diagnostic_sess, G>
85-
rustc_session::SessionDiagnostic<'__session_diagnostic_sess, G>
85+
rustc_errors::SessionDiagnostic<'__session_diagnostic_sess, G>
8686
for @Self
8787
where G: rustc_errors::EmissionGuarantee
8888
{

compiler/rustc_metadata/src/errors.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ use std::{
33
path::{Path, PathBuf},
44
};
55

6-
use rustc_errors::{error_code, ErrorGuaranteed};
6+
use rustc_errors::{error_code, ErrorGuaranteed, SessionDiagnostic};
77
use rustc_macros::SessionDiagnostic;
8-
use rustc_session::{config, SessionDiagnostic};
8+
use rustc_session::config;
99
use rustc_span::{sym, Span, Symbol};
1010
use rustc_target::spec::{PanicStrategy, TargetTriple};
1111

compiler/rustc_monomorphize/src/errors.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use std::path::PathBuf;
22

33
use rustc_errors::ErrorGuaranteed;
4+
use rustc_errors::SessionDiagnostic;
45
use rustc_macros::{LintDiagnostic, SessionDiagnostic};
5-
use rustc_session::SessionDiagnostic;
66
use rustc_span::Span;
77

88
#[derive(SessionDiagnostic)]

compiler/rustc_parse/src/parser/expr.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ use rustc_ast::{AnonConst, BinOp, BinOpKind, FnDecl, FnRetTy, MacCall, Param, Ty
3636
use rustc_ast::{Arm, Async, BlockCheckMode, Expr, ExprKind, Label, Movability, RangeLimits};
3737
use rustc_ast::{ClosureBinder, StmtKind};
3838
use rustc_ast_pretty::pprust;
39+
use rustc_errors::SessionDiagnostic;
3940
use rustc_errors::{Applicability, Diagnostic, PResult};
4041
use rustc_session::lint::builtin::BREAK_WITH_LABEL_AND_LOOP;
4142
use rustc_session::lint::BuiltinLintDiagnostics;
42-
use rustc_session::SessionDiagnostic;
4343
use rustc_span::source_map::{self, Span, Spanned};
4444
use rustc_span::symbol::{kw, sym, Ident, Symbol};
4545
use rustc_span::{BytePos, Pos};

0 commit comments

Comments
 (0)