mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 14:55:26 +00:00
use ParseSess
instead of Session
in into_diagnostic
This commit is contained in:
parent
fedbe5dabc
commit
eb55cdce4b
@ -119,7 +119,9 @@ fn span_err(span: impl proc_macro::MultiSpan, msg: &str) -> proc_macro::Diagnost
|
|||||||
/// Emit a diagnostic on span `$span` with msg `$msg` (optionally performing additional decoration
|
/// Emit a diagnostic on span `$span` with msg `$msg` (optionally performing additional decoration
|
||||||
/// using the `FnOnce` passed in `diag`) and return `Err(ErrorHandled)`.
|
/// using the `FnOnce` passed in `diag`) and return `Err(ErrorHandled)`.
|
||||||
macro_rules! throw_span_err {
|
macro_rules! throw_span_err {
|
||||||
($span:expr, $msg:expr) => {{ throw_span_err!($span, $msg, |diag| diag) }};
|
($span:expr, $msg:expr) => {{
|
||||||
|
throw_span_err!($span, $msg, |diag| diag)
|
||||||
|
}};
|
||||||
($span:expr, $msg:expr, $f:expr) => {{
|
($span:expr, $msg:expr, $f:expr) => {{
|
||||||
return Err(_throw_span_err($span, $msg, $f));
|
return Err(_throw_span_err($span, $msg, $f));
|
||||||
}};
|
}};
|
||||||
@ -308,7 +310,7 @@ impl<'a> SessionDiagnosticDerive<'a> {
|
|||||||
{
|
{
|
||||||
fn into_diagnostic(
|
fn into_diagnostic(
|
||||||
self,
|
self,
|
||||||
#sess: &'__session_diagnostic_sess rustc_session::Session
|
#sess: &'__session_diagnostic_sess rustc_session::parse::ParseSess
|
||||||
) -> rustc_errors::DiagnosticBuilder<'__session_diagnostic_sess, #param_ty> {
|
) -> rustc_errors::DiagnosticBuilder<'__session_diagnostic_sess, #param_ty> {
|
||||||
use rustc_errors::IntoDiagnosticArg;
|
use rustc_errors::IntoDiagnosticArg;
|
||||||
#implementation
|
#implementation
|
||||||
|
@ -3,13 +3,14 @@
|
|||||||
|
|
||||||
use crate::config::CheckCfg;
|
use crate::config::CheckCfg;
|
||||||
use crate::lint::{BufferedEarlyLint, BuiltinLintDiagnostics, Lint, LintId};
|
use crate::lint::{BufferedEarlyLint, BuiltinLintDiagnostics, Lint, LintId};
|
||||||
|
use crate::SessionDiagnostic;
|
||||||
use rustc_ast::node_id::NodeId;
|
use rustc_ast::node_id::NodeId;
|
||||||
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
|
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
|
||||||
use rustc_data_structures::sync::{Lock, Lrc};
|
use rustc_data_structures::sync::{Lock, Lrc};
|
||||||
use rustc_errors::{emitter::SilentEmitter, ColorConfig, Handler};
|
use rustc_errors::{emitter::SilentEmitter, ColorConfig, Handler};
|
||||||
use rustc_errors::{
|
use rustc_errors::{
|
||||||
error_code, fallback_fluent_bundle, Applicability, Diagnostic, DiagnosticBuilder,
|
error_code, fallback_fluent_bundle, Applicability, Diagnostic, DiagnosticBuilder,
|
||||||
ErrorGuaranteed, MultiSpan,
|
DiagnosticMessage, ErrorGuaranteed, MultiSpan,
|
||||||
};
|
};
|
||||||
use rustc_feature::{find_feature_issue, GateIssue, UnstableFeatures};
|
use rustc_feature::{find_feature_issue, GateIssue, UnstableFeatures};
|
||||||
use rustc_span::edition::Edition;
|
use rustc_span::edition::Edition;
|
||||||
@ -287,4 +288,19 @@ impl ParseSess {
|
|||||||
pub fn proc_macro_quoted_spans(&self) -> Vec<Span> {
|
pub fn proc_macro_quoted_spans(&self) -> Vec<Span> {
|
||||||
self.proc_macro_quoted_spans.lock().clone()
|
self.proc_macro_quoted_spans.lock().clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn emit_err<'a>(&'a self, err: impl SessionDiagnostic<'a>) -> ErrorGuaranteed {
|
||||||
|
err.into_diagnostic(self).emit()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn emit_warning<'a>(&'a self, warning: impl SessionDiagnostic<'a, ()>) {
|
||||||
|
warning.into_diagnostic(self).emit()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn struct_err(
|
||||||
|
&self,
|
||||||
|
msg: impl Into<DiagnosticMessage>,
|
||||||
|
) -> DiagnosticBuilder<'_, ErrorGuaranteed> {
|
||||||
|
self.span_diagnostic.struct_err(msg)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -212,7 +212,7 @@ pub struct PerfStats {
|
|||||||
pub trait SessionDiagnostic<'a, T: EmissionGuarantee = ErrorGuaranteed> {
|
pub trait SessionDiagnostic<'a, T: EmissionGuarantee = ErrorGuaranteed> {
|
||||||
/// Write out as a diagnostic out of `sess`.
|
/// Write out as a diagnostic out of `sess`.
|
||||||
#[must_use]
|
#[must_use]
|
||||||
fn into_diagnostic(self, sess: &'a Session) -> DiagnosticBuilder<'a, T>;
|
fn into_diagnostic(self, sess: &'a ParseSess) -> DiagnosticBuilder<'a, T>;
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Session {
|
impl Session {
|
||||||
@ -334,7 +334,7 @@ impl Session {
|
|||||||
&self,
|
&self,
|
||||||
msg: impl Into<DiagnosticMessage>,
|
msg: impl Into<DiagnosticMessage>,
|
||||||
) -> DiagnosticBuilder<'_, ErrorGuaranteed> {
|
) -> DiagnosticBuilder<'_, ErrorGuaranteed> {
|
||||||
self.diagnostic().struct_err(msg)
|
self.parse_sess.struct_err(msg)
|
||||||
}
|
}
|
||||||
pub fn struct_err_with_code(
|
pub fn struct_err_with_code(
|
||||||
&self,
|
&self,
|
||||||
@ -414,10 +414,10 @@ impl Session {
|
|||||||
self.diagnostic().err(msg)
|
self.diagnostic().err(msg)
|
||||||
}
|
}
|
||||||
pub fn emit_err<'a>(&'a self, err: impl SessionDiagnostic<'a>) -> ErrorGuaranteed {
|
pub fn emit_err<'a>(&'a self, err: impl SessionDiagnostic<'a>) -> ErrorGuaranteed {
|
||||||
err.into_diagnostic(self).emit()
|
self.parse_sess.emit_err(err)
|
||||||
}
|
}
|
||||||
pub fn emit_warning<'a>(&'a self, warning: impl SessionDiagnostic<'a, ()>) {
|
pub fn emit_warning<'a>(&'a self, warning: impl SessionDiagnostic<'a, ()>) {
|
||||||
warning.into_diagnostic(self).emit()
|
self.parse_sess.emit_warning(warning)
|
||||||
}
|
}
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn err_count(&self) -> usize {
|
pub fn err_count(&self) -> usize {
|
||||||
@ -783,7 +783,11 @@ impl Session {
|
|||||||
Path::new(&rustlib_path),
|
Path::new(&rustlib_path),
|
||||||
Path::new("bin"),
|
Path::new("bin"),
|
||||||
]);
|
]);
|
||||||
if self_contained { vec![p.clone(), p.join("self-contained")] } else { vec![p] }
|
if self_contained {
|
||||||
|
vec![p.clone(), p.join("self-contained")]
|
||||||
|
} else {
|
||||||
|
vec![p]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn init_incr_comp_session(
|
pub fn init_incr_comp_session(
|
||||||
|
Loading…
Reference in New Issue
Block a user