Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: fix new warnings in Rust 1.72.0 #2700

Merged
merged 6 commits into from
Aug 29, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions netlify.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
[build.environment]
RUSTDOCFLAGS="""
-D warnings \
--force-warn rustdoc::redundant-explicit-links \
--force-warn renamed-and-removed-lints \
--cfg docsrs \
--html-before-content /opt/build/repo/assets/warning.html \
Expand Down
8 changes: 8 additions & 0 deletions tracing-core/src/field.rs
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,10 @@ macro_rules! impl_one_value {
impl $crate::sealed::Sealed for $value_ty {}
impl $crate::field::Value for $value_ty {
fn record(&self, key: &$crate::field::Field, visitor: &mut dyn $crate::field::Visit) {
// `op` is always a function; the closure is used because
// sometimes there isn't a real function corresponding to that
// operation. the clippy warning is not that useful here.
#[allow(clippy::redundant_closure_call)]
visitor.$record(key, $op(*self))
}
}
Expand All @@ -388,6 +392,10 @@ macro_rules! impl_one_value {
impl $crate::sealed::Sealed for ty_to_nonzero!($value_ty) {}
impl $crate::field::Value for ty_to_nonzero!($value_ty) {
fn record(&self, key: &$crate::field::Field, visitor: &mut dyn $crate::field::Visit) {
// `op` is always a function; the closure is used because
// sometimes there isn't a real function corresponding to that
// operation. the clippy warning is not that useful here.
#[allow(clippy::redundant_closure_call)]
visitor.$record(key, $op(self.get()))
}
}
Expand Down
3 changes: 1 addition & 2 deletions tracing-subscriber/src/field/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ pub trait VisitOutput<Out>: Visit {
/// Extension trait implemented by types which can be recorded by a [visitor].
///
/// This allows writing code that is generic over `tracing_core`'s
/// [`span::Attributes`][attr], [`span::Record`][rec], and [`Event`][event]
/// [`span::Attributes`][attr], [`span::Record`][rec], and [`Event`]
/// types. These types all provide inherent `record` methods that allow a
/// visitor to record their fields, but there is no common trait representing this.
///
Expand Down Expand Up @@ -85,7 +85,6 @@ pub trait VisitOutput<Out>: Visit {
/// [visitor]: tracing_core::field::Visit
/// [attr]: tracing_core::span::Attributes
/// [rec]: tracing_core::span::Record
/// [event]: tracing_core::event::Event
pub trait RecordFields: crate::sealed::Sealed<RecordFieldsMarker> {
/// Record all the fields in `self` with the provided `visitor`.
fn record(&self, visitor: &mut dyn Visit);
Expand Down
5 changes: 3 additions & 2 deletions tracing-subscriber/src/filter/directive.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ enum ParseErrorKind {
// === impl DirectiveSet ===

impl<T> DirectiveSet<T> {
#[cfg(feature = "std")]
// this is only used by `env-filter`.
#[cfg(all(feature = "std", feature = "env-filter"))]
pub(crate) fn is_empty(&self) -> bool {
self.directives.is_empty()
}
Expand Down Expand Up @@ -388,7 +389,7 @@ impl FromStr for StaticDirective {
// === impl ParseError ===

impl ParseError {
#[cfg(feature = "std")]
#[cfg(all(feature = "std", feature = "env-filter"))]
pub(crate) fn new() -> Self {
ParseError {
kind: ParseErrorKind::Other(None),
Expand Down
23 changes: 15 additions & 8 deletions tracing-subscriber/src/filter/env/directive.rs
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,9 @@ impl Directive {
}

pub(super) fn parse(from: &str, regex: bool) -> Result<Self, ParseError> {
static DIRECTIVE_RE: Lazy<Regex> = Lazy::new(|| Regex::new(
r"(?x)
static DIRECTIVE_RE: Lazy<Regex> = Lazy::new(|| {
Regex::new(
r"(?x)
^(?P<global_level>(?i:trace|debug|info|warn|error|off|[0-5]))$ |
# ^^^.
# `note: we match log level names case-insensitively
Expand All @@ -135,15 +136,18 @@ impl Directive {
# `note: we match log level names case-insensitively
)?
$
"
)
.unwrap());
",
)
.unwrap()
});
static SPAN_PART_RE: Lazy<Regex> =
Lazy::new(|| Regex::new(r#"(?P<name>[^\]\{]+)?(?:\{(?P<fields>[^\}]*)\})?"#).unwrap());
Lazy::new(|| Regex::new(r"(?P<name>[^\]\{]+)?(?:\{(?P<fields>[^\}]*)\})?").unwrap());
static FIELD_FILTER_RE: Lazy<Regex> =
// TODO(eliza): this doesn't _currently_ handle value matchers that include comma
// characters. We should fix that.
Lazy::new(|| Regex::new(r#"(?x)
Lazy::new(|| {
Regex::new(
r"(?x)
(
# field name
[[:word:]][[[:word:]]\.]*
Expand All @@ -152,7 +156,10 @@ impl Directive {
)
# trailing comma or EOS
(?:,\s?|$)
"#).unwrap());
",
)
.unwrap()
});

let caps = DIRECTIVE_RE.captures(from).ok_or_else(ParseError::new)?;

Expand Down
12 changes: 8 additions & 4 deletions tracing-subscriber/src/fmt/format/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -333,9 +333,8 @@ pub struct FieldFnVisitor<'a, F> {
/// The compact format includes fields from all currently entered spans, after
/// the event's fields. Span fields are ordered (but not grouped) grouped by
/// span, and span names are not shown.A more compact representation of the
/// event's [`Level`](tracing::Level) is used, and additional information, such
/// as the event's target, is disabled by default (but can be enabled
/// explicitly).
/// event's [`Level`] is used, and additional information, such as the event's
/// target, is disabled by default (but can be enabled explicitly).
///
/// # Example Output
///
Expand Down Expand Up @@ -1067,7 +1066,12 @@ where

let dimmed = writer.dimmed();
if self.display_target {
write!(writer, "{}{}", dimmed.paint(meta.target()), dimmed.paint(":"))?;
write!(
writer,
"{}{}",
dimmed.paint(meta.target()),
dimmed.paint(":")
)?;
}

if self.display_filename {
Expand Down
14 changes: 9 additions & 5 deletions tracing-subscriber/src/fmt/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -733,7 +733,7 @@ where

/// Sets the collector being built to use a less verbose formatter.
///
/// See [`format::Compact`].
/// See [`format::Compact`] for details.
pub fn compact(self) -> CollectorBuilder<N, format::Format<format::Compact, T>, F, W>
where
N: for<'writer> FormatFields<'writer> + 'static,
Expand All @@ -758,7 +758,7 @@ where

/// Sets the collector being built to use a JSON formatter.
///
/// See [`format::Json`](super::fmt::format::Json)
/// See [`format::Json`] for details.
#[cfg(feature = "json")]
#[cfg_attr(docsrs, doc(cfg(feature = "json")))]
pub fn json(self) -> CollectorBuilder<format::JsonFields, format::Format<format::Json, T>, F, W>
Expand All @@ -777,7 +777,7 @@ where
impl<T, F, W> CollectorBuilder<format::JsonFields, format::Format<format::Json, T>, F, W> {
/// Sets the json collector being built to flatten event metadata.
///
/// See [`format::Json`](super::fmt::format::Json)
/// See [`format::Json`] for details.
pub fn flatten_event(
self,
flatten_event: bool,
Expand All @@ -791,7 +791,7 @@ impl<T, F, W> CollectorBuilder<format::JsonFields, format::Format<format::Json,
/// Sets whether or not the JSON subscriber being built will include the current span
/// in formatted events.
///
/// See [`format::Json`](super::fmt::format::Json)
/// See [`format::Json`] for details.
pub fn with_current_span(
self,
display_current_span: bool,
Expand All @@ -805,7 +805,7 @@ impl<T, F, W> CollectorBuilder<format::JsonFields, format::Format<format::Json,
/// Sets whether or not the JSON subscriber being built will include a list (from
/// root to leaf) of all currently entered spans in formatted events.
///
/// See [`format::Json`](super::fmt::format::Json)
/// See [`format::Json`] for details.
pub fn with_span_list(
self,
display_span_list: bool,
Expand Down Expand Up @@ -1287,6 +1287,10 @@ mod test {
Self { buf }
}

// this is currently only used by the JSON formatter tests. if we need
// it elsewhere in the future, feel free to remove the `#[cfg]`
// attribute!
#[cfg(feature = "json")]
pub(crate) fn buf(&self) -> MutexGuard<'_, Vec<u8>> {
self.buf.lock().unwrap()
}
Expand Down
11 changes: 4 additions & 7 deletions tracing-subscriber/src/fmt/writer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ use tracing_core::Metadata;
/// This trait is already implemented for function pointers and
/// immutably-borrowing closures that return an instance of [`io::Write`], such
/// as [`io::stdout`] and [`io::stderr`]. Additionally, it is implemented for
/// [`std::sync::Mutex`][mutex] when the type inside the mutex implements
/// [`std::sync::Mutex`] when the type inside the mutex implements
/// [`io::Write`].
///
/// The [`MakeWriter::make_writer_for`] method takes [`Metadata`] describing a
Expand Down Expand Up @@ -79,7 +79,7 @@ use tracing_core::Metadata;
/// ```
///
/// A single instance of a type implementing [`io::Write`] may be used as a
/// `MakeWriter` by wrapping it in a [`Mutex`][mutex]. For example, we could
/// `MakeWriter` by wrapping it in a [`Mutex`]. For example, we could
/// write to a file like so:
///
/// ```
Expand All @@ -101,7 +101,6 @@ use tracing_core::Metadata;
/// [`Event`]: tracing_core::event::Event
/// [`io::stdout`]: std::io::stdout()
/// [`io::stderr`]: std::io::stderr()
/// [mutex]: std::sync::Mutex
/// [`MakeWriter::make_writer_for`]: MakeWriter::make_writer_for
/// [`Metadata`]: tracing_core::Metadata
/// [levels]: tracing_core::Level
Expand Down Expand Up @@ -339,7 +338,7 @@ pub trait MakeWriterExt<'a>: MakeWriter<'a> {

/// Wraps `self` with a predicate that takes a span or event's [`Metadata`]
/// and returns a `bool`. The returned [`MakeWriter`]'s
/// [`MakeWriter::make_writer_for`][mwf] method will check the predicate to
/// [`MakeWriter::make_writer_for`] method will check the predicate to
/// determine if a writer should be produced for a given span or event.
///
/// If the predicate returns `false`, the wrapped [`MakeWriter`]'s
Expand Down Expand Up @@ -486,7 +485,6 @@ pub trait MakeWriterExt<'a>: MakeWriter<'a> {
/// requires the `Writer` type to implement [`io::Write`], it's necessary to add
/// a newtype that forwards the trait implementation.
///
/// [`io::Write`]: https://doc.rust-lang.org/std/io/trait.Write.html
/// [`MutexGuard`]: https://doc.rust-lang.org/std/sync/struct.MutexGuard.html
/// [`Mutex`]: https://doc.rust-lang.org/std/sync/struct.Mutex.html
/// [`MakeWriter`]: trait.MakeWriter.html
Expand Down Expand Up @@ -540,13 +538,12 @@ pub struct TestWriter {
/// ```
///
/// [`Collect`]: tracing::Collect
/// [`io::Write`]: std::io::Write
pub struct BoxMakeWriter {
inner: Box<dyn for<'a> MakeWriter<'a, Writer = Box<dyn Write + 'a>> + Send + Sync>,
name: &'static str,
}

/// A [writer] that is one of two types implementing [`io::Write`][writer].
/// A [writer] that is one of two types implementing [`io::Write`].
///
/// This may be used by [`MakeWriter`] implementations that may conditionally
/// return one of two writers.
Expand Down
6 changes: 2 additions & 4 deletions tracing-subscriber/src/registry/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -205,11 +205,9 @@ pub trait SpanData<'a> {

/// A reference to [span data] and the associated [registry].
///
/// This type implements all the same methods as [`SpanData`][span data], and
/// provides additional methods for querying the registry based on values from
/// the span.
/// This type implements all the same methods as [`SpanData`], and provides
/// additional methods for querying the registry based on values from the span.
///
/// [span data]: SpanData
/// [registry]: LookupSpan
#[derive(Debug)]
pub struct SpanRef<'a, R: LookupSpan<'a>> {
Expand Down
9 changes: 4 additions & 5 deletions tracing-subscriber/src/subscribe/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1388,11 +1388,10 @@ pub trait Filter<S> {
/// multiple invocations of this method. However, note that changes in the
/// maximum level will **only** be reflected after the callsite [`Interest`]
/// cache is rebuilt, by calling the
/// [`tracing_core::callsite::rebuild_interest_cache`][rebuild] function.
/// [`tracing_core::callsite::rebuild_interest_cache`] function.
/// Therefore, if the `Filter will change the value returned by this
/// method, it is responsible for ensuring that
/// [`rebuild_interest_cache`][rebuild] is called after the value of the max
/// level changes.
/// method, it is responsible for ensuring that [`rebuild_interest_cache`]
/// is called after the value of the max level changes.
///
/// ## Default Implementation
///
Expand All @@ -1402,7 +1401,7 @@ pub trait Filter<S> {
/// [level]: tracing_core::metadata::Level
/// [`LevelFilter`]: crate::filter::LevelFilter
/// [`Interest`]: tracing_core::collect::Interest
/// [rebuild]: tracing_core::callsite::rebuild_interest_cache
/// [`rebuild_interest_cache`]: tracing_core::callsite::rebuild_interest_cache
fn max_level_hint(&self) -> Option<LevelFilter> {
None
}
Expand Down
2 changes: 1 addition & 1 deletion tracing/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -902,7 +902,7 @@
//! [event]: Event
//! [events]: Event
//! [`collect`]: collect::Collect
//! [Collect::event]: collect::Collect::event
//! [Collect::event]: fn@collect::Collect::event
//! [`enter`]: collect::Collect::enter
//! [`exit`]: collect::Collect::exit
//! [`enabled`]: collect::Collect::enabled
Expand Down