diff -Nru rust-defmt-macros-0.3.3/Cargo.toml rust-defmt-macros-0.3.6/Cargo.toml --- rust-defmt-macros-0.3.3/Cargo.toml 1970-01-01 00:00:01.000000000 +0000 +++ rust-defmt-macros-0.3.6/Cargo.toml 1970-01-01 00:00:01.000000000 +0000 @@ -12,7 +12,7 @@ [package] edition = "2021" name = "defmt-macros" -version = "0.3.3" +version = "0.3.6" authors = ["The Knurling-rs developers"] description = "defmt macros" readme = "README.md" @@ -28,7 +28,7 @@ proc-macro = true [dependencies.defmt-parser] -version = "=0.3.1" +version = "=0.3.3" features = ["unstable"] [dependencies.proc-macro-error] @@ -41,7 +41,7 @@ version = "1" [dependencies.syn] -version = "1.0.101" +version = "2" features = ["full"] [dev-dependencies.maplit] @@ -51,7 +51,8 @@ version = "1" [dev-dependencies.rstest] -version = "0.15" +version = "0.17" +default-features = false [features] unstable-test = [] diff -Nru rust-defmt-macros-0.3.3/Cargo.toml.orig rust-defmt-macros-0.3.6/Cargo.toml.orig --- rust-defmt-macros-0.3.3/Cargo.toml.orig 2006-07-24 01:21:28.000000000 +0000 +++ rust-defmt-macros-0.3.6/Cargo.toml.orig 2006-07-24 01:21:28.000000000 +0000 @@ -7,7 +7,7 @@ name = "defmt-macros" readme = "../README.md" repository = "https://github.com/knurling-rs/defmt" -version = "0.3.3" +version = "0.3.6" [lib] proc-macro = true @@ -17,14 +17,13 @@ unstable-test = [] [dependencies] -defmt-parser = { path = "../parser", features = ["unstable"], version = "=0.3.1" } +defmt-parser = { version = "=0.3.3", path = "../parser", features = ["unstable"] } proc-macro-error = "1" proc-macro2 = "1" quote = "1" -# we require at least 1.0.56; see https://github.com/knurling-rs/defmt/pull/684 -syn = { version = "1.0.101", features = ["full"] } +syn = { version = "2", features = ["full"] } -[dev_dependencies] +[dev-dependencies] maplit = "1" pretty_assertions = "1" -rstest = "0.15" +rstest = { version = "0.17", default-features = false } diff -Nru rust-defmt-macros-0.3.3/.cargo_vcs_info.json rust-defmt-macros-0.3.6/.cargo_vcs_info.json --- rust-defmt-macros-0.3.3/.cargo_vcs_info.json 1970-01-01 00:00:01.000000000 +0000 +++ rust-defmt-macros-0.3.6/.cargo_vcs_info.json 1970-01-01 00:00:01.000000000 +0000 @@ -1,6 +1,6 @@ { "git": { - "sha1": "1cbbb334bf508d13c1d537623fe2a4165dfc5d65" + "sha1": "e1413dafb86f3bbe7377d44bee52f97abaaedcfd" }, "path_in_vcs": "macros" } \ No newline at end of file diff -Nru rust-defmt-macros-0.3.3/debian/changelog rust-defmt-macros-0.3.6/debian/changelog --- rust-defmt-macros-0.3.3/debian/changelog 2023-07-09 10:17:38.000000000 +0000 +++ rust-defmt-macros-0.3.6/debian/changelog 2023-07-23 18:19:52.000000000 +0000 @@ -1,3 +1,9 @@ +rust-defmt-macros (0.3.6-1) unstable; urgency=medium + + * Package defmt-macros 0.3.6 from crates.io using debcargo 2.6.0 + + -- Alexander Kjäll Sun, 23 Jul 2023 20:19:52 +0200 + rust-defmt-macros (0.3.3-1) unstable; urgency=medium * Package defmt-macros 0.3.3 from crates.io using debcargo 2.6.0 diff -Nru rust-defmt-macros-0.3.3/debian/control rust-defmt-macros-0.3.6/debian/control --- rust-defmt-macros-0.3.3/debian/control 2023-07-09 10:17:38.000000000 +0000 +++ rust-defmt-macros-0.3.6/debian/control 2023-07-23 18:19:52.000000000 +0000 @@ -6,13 +6,13 @@ cargo:native , rustc:native , libstd-rust-dev , - librust-defmt-parser-0.3.1+default-dev , - librust-defmt-parser-0.3.1+unstable-dev , + librust-defmt-parser-0.3+default-dev , + librust-defmt-parser-0.3+unstable-dev , librust-proc-macro-error-1+default-dev , librust-proc-macro2-1+default-dev , librust-quote-1+default-dev , - librust-syn-1+default-dev , - librust-syn-1+full-dev + librust-syn-2+default-dev , + librust-syn-2+full-dev Maintainer: Debian Rust Maintainers Uploaders: Alexander Kjäll @@ -27,13 +27,13 @@ Multi-Arch: same Depends: ${misc:Depends}, - librust-defmt-parser-0.3.1+default-dev, - librust-defmt-parser-0.3.1+unstable-dev, + librust-defmt-parser-0.3+default-dev, + librust-defmt-parser-0.3+unstable-dev, librust-proc-macro-error-1+default-dev, librust-proc-macro2-1+default-dev, librust-quote-1+default-dev, - librust-syn-1+default-dev, - librust-syn-1+full-dev + librust-syn-2+default-dev, + librust-syn-2+full-dev Provides: librust-defmt-macros+default-dev (= ${binary:Version}), librust-defmt-macros+unstable-test-dev (= ${binary:Version}), @@ -43,9 +43,9 @@ librust-defmt-macros-0.3-dev (= ${binary:Version}), librust-defmt-macros-0.3+default-dev (= ${binary:Version}), librust-defmt-macros-0.3+unstable-test-dev (= ${binary:Version}), - librust-defmt-macros-0.3.3-dev (= ${binary:Version}), - librust-defmt-macros-0.3.3+default-dev (= ${binary:Version}), - librust-defmt-macros-0.3.3+unstable-test-dev (= ${binary:Version}) + librust-defmt-macros-0.3.6-dev (= ${binary:Version}), + librust-defmt-macros-0.3.6+default-dev (= ${binary:Version}), + librust-defmt-macros-0.3.6+unstable-test-dev (= ${binary:Version}) Description: Defmt macros - Rust source code This package contains the source for the Rust defmt-macros crate, packaged by debcargo for use with cargo and dh-cargo. diff -Nru rust-defmt-macros-0.3.3/debian/patches/tweak-deps.patch rust-defmt-macros-0.3.6/debian/patches/tweak-deps.patch --- rust-defmt-macros-0.3.3/debian/patches/tweak-deps.patch 2023-07-09 10:17:38.000000000 +0000 +++ rust-defmt-macros-0.3.6/debian/patches/tweak-deps.patch 2023-07-23 18:19:52.000000000 +0000 @@ -1,22 +1,13 @@ diff --git a/Cargo.toml b/Cargo.toml -index dbf8e68..dd995bc 100644 +index 076cd78..cbe9650 100644 --- a/Cargo.toml +++ b/Cargo.toml -@@ -41,7 +41,7 @@ version = "1" - version = "1" +@@ -28,7 +28,7 @@ resolver = "1" + proc-macro = true - [dependencies.syn] --version = "1.0.101" -+version = "1" - features = ["full"] + [dependencies.defmt-parser] +-version = "=0.3.3" ++version = "0.3" + features = ["unstable"] - [dev-dependencies.maplit] -@@ -51,7 +51,7 @@ version = "1" - version = "1" - - [dev-dependencies.rstest] --version = "0.15" -+version = "0.16" - - [features] - unstable-test = [] + [dependencies.proc-macro-error] diff -Nru rust-defmt-macros-0.3.3/debian/tests/control rust-defmt-macros-0.3.6/debian/tests/control --- rust-defmt-macros-0.3.3/debian/tests/control 2023-07-09 10:17:38.000000000 +0000 +++ rust-defmt-macros-0.3.6/debian/tests/control 2023-07-23 18:19:52.000000000 +0000 @@ -1,19 +1,19 @@ -Test-Command: /usr/share/cargo/bin/cargo-auto-test defmt-macros 0.3.3 --all-targets --all-features +Test-Command: /usr/share/cargo/bin/cargo-auto-test defmt-macros 0.3.6 --all-targets --all-features Features: test-name=rust-defmt-macros:@ -Depends: dh-cargo (>= 18), librust-maplit-1+default-dev, librust-pretty-assertions-1+default-dev, librust-rstest-0.16+default-dev, @ +Depends: dh-cargo (>= 18), librust-maplit-1+default-dev, librust-pretty-assertions-1+default-dev, librust-rstest-0.17-dev, @ Restrictions: allow-stderr, skip-not-installable -Test-Command: /usr/share/cargo/bin/cargo-auto-test defmt-macros 0.3.3 --all-targets +Test-Command: /usr/share/cargo/bin/cargo-auto-test defmt-macros 0.3.6 --all-targets Features: test-name=librust-defmt-macros-dev:default -Depends: dh-cargo (>= 18), librust-maplit-1+default-dev, librust-pretty-assertions-1+default-dev, librust-rstest-0.16+default-dev, @ +Depends: dh-cargo (>= 18), librust-maplit-1+default-dev, librust-pretty-assertions-1+default-dev, librust-rstest-0.17-dev, @ Restrictions: allow-stderr, skip-not-installable -Test-Command: /usr/share/cargo/bin/cargo-auto-test defmt-macros 0.3.3 --all-targets --no-default-features --features unstable-test +Test-Command: /usr/share/cargo/bin/cargo-auto-test defmt-macros 0.3.6 --all-targets --no-default-features --features unstable-test Features: test-name=librust-defmt-macros-dev:unstable-test -Depends: dh-cargo (>= 18), librust-maplit-1+default-dev, librust-pretty-assertions-1+default-dev, librust-rstest-0.16+default-dev, @ +Depends: dh-cargo (>= 18), librust-maplit-1+default-dev, librust-pretty-assertions-1+default-dev, librust-rstest-0.17-dev, @ Restrictions: allow-stderr, skip-not-installable -Test-Command: /usr/share/cargo/bin/cargo-auto-test defmt-macros 0.3.3 --all-targets --no-default-features +Test-Command: /usr/share/cargo/bin/cargo-auto-test defmt-macros 0.3.6 --all-targets --no-default-features Features: test-name=librust-defmt-macros-dev: -Depends: dh-cargo (>= 18), librust-maplit-1+default-dev, librust-pretty-assertions-1+default-dev, librust-rstest-0.16+default-dev, @ +Depends: dh-cargo (>= 18), librust-maplit-1+default-dev, librust-pretty-assertions-1+default-dev, librust-rstest-0.17-dev, @ Restrictions: allow-stderr, skip-not-installable diff -Nru rust-defmt-macros-0.3.3/src/attributes/panic_handler.rs rust-defmt-macros-0.3.6/src/attributes/panic_handler.rs --- rust-defmt-macros-0.3.3/src/attributes/panic_handler.rs 2006-07-24 01:21:28.000000000 +0000 +++ rust-defmt-macros-0.3.6/src/attributes/panic_handler.rs 2006-07-24 01:21:28.000000000 +0000 @@ -46,7 +46,7 @@ reject_list: &[&str], ) { for attr in attrs_to_check { - if let Some(ident) = attr.path.get_ident() { + if let Some(ident) = attr.path().get_ident() { let ident = ident.to_string(); if reject_list.contains(&ident.as_str()) { diff -Nru rust-defmt-macros-0.3.3/src/cargo.rs rust-defmt-macros-0.3.6/src/cargo.rs --- rust-defmt-macros-0.3.3/src/cargo.rs 2006-07-24 01:21:28.000000000 +0000 +++ rust-defmt-macros-0.3.6/src/cargo.rs 2006-07-24 01:21:28.000000000 +0000 @@ -3,3 +3,7 @@ pub(crate) fn package_name() -> String { env::var("CARGO_PKG_NAME").unwrap_or_else(|_| "".to_string()) } + +pub(crate) fn crate_name() -> String { + env::var("CARGO_CRATE_NAME").unwrap_or_else(|_| "".to_string()) +} diff -Nru rust-defmt-macros-0.3.3/src/construct/symbol.rs rust-defmt-macros-0.3.6/src/construct/symbol.rs --- rust-defmt-macros-0.3.3/src/construct/symbol.rs 2006-07-24 01:21:28.000000000 +0000 +++ rust-defmt-macros-0.3.6/src/construct/symbol.rs 2006-07-24 01:21:28.000000000 +0000 @@ -34,6 +34,9 @@ /// Symbol data for use by the host tooling. Interpretation depends on `tag`. data: &'a str, + + /// Crate name obtained via CARGO_CRATE_NAME (added since a Cargo package can contain many crates). + crate_name: String, } impl<'a> Symbol<'a> { @@ -42,18 +45,20 @@ // `CARGO_PKG_NAME` is set to the invoking package's name. package: cargo::package_name(), disambiguator: super::crate_local_disambiguator(), - tag: format!("defmt_{}", tag), + tag: format!("defmt_{tag}"), data, + crate_name: cargo::crate_name(), } } fn mangle(&self) -> String { format!( - r#"{{"package":"{}","tag":"{}","data":"{}","disambiguator":"{}"}}"#, + r#"{{"package":"{}","tag":"{}","data":"{}","disambiguator":"{}","crate_name":"{}"}}"#, json_escape(&self.package), json_escape(&self.tag), json_escape(self.data), self.disambiguator, + json_escape(&self.crate_name), ) } } diff -Nru rust-defmt-macros-0.3.3/src/construct.rs rust-defmt-macros-0.3.6/src/construct.rs --- rust-defmt-macros-0.3.3/src/construct.rs 2006-07-24 01:21:28.000000000 +0000 +++ rust-defmt-macros-0.3.6/src/construct.rs 2006-07-24 01:21:28.000000000 +0000 @@ -57,16 +57,16 @@ /// otherwise: ".defmt." + prefix + symbol pub(crate) fn linker_section(for_macos: bool, prefix: Option<&str>, symbol: &str) -> String { let mut sub_section = if let Some(prefix) = prefix { - format!(".{}.{}", prefix, symbol) + format!(".{prefix}.{symbol}") } else { - format!(".{}", symbol) + format!(".{symbol}") }; if for_macos { sub_section = format!(",{:x}", hash(&sub_section)); } - format!(".defmt{}", sub_section) + format!(".defmt{sub_section}") } pub(crate) fn static_variable(name: &Ident2, data: &str, tag: &str) -> TokenStream2 { diff -Nru rust-defmt-macros-0.3.3/src/derives/format/codegen/fields.rs rust-defmt-macros-0.3.6/src/derives/format/codegen/fields.rs --- rust-defmt-macros-0.3.3/src/derives/format/codegen/fields.rs 2006-07-24 01:21:28.000000000 +0000 +++ rust-defmt-macros-0.3.6/src/derives/format/codegen/fields.rs 2006-07-24 01:21:28.000000000 +0000 @@ -2,7 +2,7 @@ use proc_macro2::TokenStream as TokenStream2; use quote::{format_ident, quote}; -use syn::{Field, Fields, Index, Meta, NestedMeta, Type}; +use syn::{Field, Fields, Index, Type}; use crate::consts; @@ -56,12 +56,12 @@ if field.ident.is_some() { // Named field. - write!(format_string, "{}: {{={}:?}}", ident, ty).ok(); + write!(format_string, "{ident}: {{={ty}:?}}").ok(); patterns.push(quote!( #ident )); } else { // Unnamed (tuple) field. - write!(format_string, "{{={}}}", ty).ok(); + write!(format_string, "{{={ty}}}").ok(); let index = Index::from(index); patterns.push(quote!( #index: #ident )); @@ -87,51 +87,47 @@ /// Returns `Err` if we can't parse a valid defmt attribute. /// Returns `Ok(None)` if there are no `defmt` attributes on the field. fn get_defmt_format_option(field: &Field) -> syn::Result> { - use syn::Error; - let attrs = field - .attrs - .iter() - .filter(|a| a.path.is_ident("defmt")) - .map(|a| a.parse_meta()) - .collect::>>()?; - if attrs.is_empty() { - return Ok(None); - } else if attrs.len() > 1 { - return Err(Error::new_spanned( - field, - "multiple `defmt` attributes not supported", - )); - } // else attrs.len() == 1 - let attr = &attrs[0]; - let args = match attr { - Meta::List(list) => &list.nested, - bad => return Err(syn::Error::new_spanned(bad, "unrecognized attribute")), - }; - if args.len() != 1 { - return Err(syn::Error::new_spanned( - attr, - "expected 1 attribute argument", - )); - } - let arg = match &args[0] { - NestedMeta::Meta(Meta::Path(arg)) => arg, - bad => { - return Err(syn::Error::new_spanned( - bad, - "expected `Debug2Format` or `Display2Format`", - )) + let mut format_option = None; + + for attr in &field.attrs { + if attr.path().is_ident("defmt") { + if format_option.is_some() { + return Err(syn::Error::new_spanned( + field, + "multiple `defmt` attributes not supported", + )); + } + + let mut parsed_format = None; + + attr.parse_nested_meta(|meta| { + // #[defmt(Debug2Format)] + if meta.path.is_ident("Debug2Format") { + parsed_format = Some(FormatOption::Debug2Format); + return Ok(()); + } + + // #[defmt(Display2Format)] + if meta.path.is_ident("Display2Format") { + parsed_format = Some(FormatOption::Display2Format); + return Ok(()); + } + + Err(meta.error("expected `Debug2Format` or `Display2Format`")) + })?; + + if parsed_format.is_none() { + return Err(syn::Error::new_spanned( + &attr.meta, + "expected 1 attribute argument", + )); + } + + format_option = parsed_format; } - }; - if arg.is_ident("Debug2Format") { - Ok(Some(FormatOption::Debug2Format)) - } else if arg.is_ident("Display2Format") { - Ok(Some(FormatOption::Display2Format)) - } else { - Err(syn::Error::new_spanned( - arg, - "expected `Debug2Format` or `Display2Format`", - )) } + + Ok(format_option) } /// Returns `Some` if `ty` refers to a builtin Rust type that has native support from defmt and does diff -Nru rust-defmt-macros-0.3.3/src/function_like/assert_binop.rs rust-defmt-macros-0.3.6/src/function_like/assert_binop.rs --- rust-defmt-macros-0.3.3/src/function_like/assert_binop.rs 2006-07-24 01:21:28.000000000 +0000 +++ rust-defmt-macros-0.3.6/src/function_like/assert_binop.rs 2006-07-24 01:21:28.000000000 +0000 @@ -40,7 +40,7 @@ }; for val in vals { - formatting_args.push(construct::variable(*val)); + formatting_args.push(construct::variable(val)); } let panic_msg = match binop { diff -Nru rust-defmt-macros-0.3.3/src/function_like/dbg.rs rust-defmt-macros-0.3.6/src/function_like/dbg.rs --- rust-defmt-macros-0.3.3/src/function_like/dbg.rs 2006-07-24 01:21:28.000000000 +0000 +++ rust-defmt-macros-0.3.6/src/function_like/dbg.rs 2006-07-24 01:21:28.000000000 +0000 @@ -19,7 +19,7 @@ .iter() .map(|expr| { let escaped_expr = construct::escaped_expr_string(expr); - let format_string = format!("{} = {{}}", escaped_expr); + let format_string = format!("{escaped_expr} = {{}}"); quote!(match #expr { tmp => { diff -Nru rust-defmt-macros-0.3.3/src/function_like/log/env_filter/parse.rs rust-defmt-macros-0.3.6/src/function_like/log/env_filter/parse.rs --- rust-defmt-macros-0.3.3/src/function_like/log/env_filter/parse.rs 2006-07-24 01:21:28.000000000 +0000 +++ rust-defmt-macros-0.3.6/src/function_like/log/env_filter/parse.rs 2006-07-24 01:21:28.000000000 +0000 @@ -98,7 +98,7 @@ fn validate_identifier(input: &str) { syn::parse_str::(input) - .unwrap_or_else(|_| panic!("`{}` is not a valid identifier", input)); + .unwrap_or_else(|_| panic!("`{input}` is not a valid identifier")); } #[cfg(test)] diff -Nru rust-defmt-macros-0.3.3/src/function_like/log/env_filter.rs rust-defmt-macros-0.3.6/src/function_like/log/env_filter.rs --- rust-defmt-macros-0.3.3/src/function_like/log/env_filter.rs 2006-07-24 01:21:28.000000000 +0000 +++ rust-defmt-macros-0.3.6/src/function_like/log/env_filter.rs 2006-07-24 01:21:28.000000000 +0000 @@ -23,7 +23,6 @@ let defmt_log = env::var("DEFMT_LOG").ok(); let cargo_crate_name = env::var("CARGO_CRATE_NAME") .unwrap_or_else(|_| abort_call_site!("`CARGO_CRATE_NAME` env var is not set")); - Self::new(defmt_log.as_deref(), &cargo_crate_name) } diff -Nru rust-defmt-macros-0.3.3/src/function_like/println.rs rust-defmt-macros-0.3.6/src/function_like/println.rs --- rust-defmt-macros-0.3.3/src/function_like/println.rs 2006-07-24 01:21:28.000000000 +0000 +++ rust-defmt-macros-0.3.6/src/function_like/println.rs 2006-07-24 01:21:28.000000000 +0000 @@ -16,7 +16,11 @@ let format_string = args.format_string.value(); let fragments = match defmt_parser::parse(&format_string, ParserMode::Strict) { Ok(args) => args, - Err(e) => abort!(args.format_string, "{}", e), + Err(e @ defmt_parser::Error::UnknownDisplayHint(_)) => abort!( + args.format_string, "{}", e; + help = "`defmt` uses a slightly different syntax than regular formatting in Rust. See https://defmt.ferrous-systems.com/macros.html for more details."; + ), + Err(e) => abort!(args.format_string, "{}", e), // No extra help }; let formatting_exprs = args diff -Nru rust-defmt-macros-0.3.3/src/items/bitflags/input.rs rust-defmt-macros-0.3.6/src/items/bitflags/input.rs --- rust-defmt-macros-0.3.3/src/items/bitflags/input.rs 2006-07-24 01:21:28.000000000 +0000 +++ rust-defmt-macros-0.3.6/src/items/bitflags/input.rs 2006-07-24 01:21:28.000000000 +0000 @@ -84,7 +84,7 @@ let mut cfgs = vec![]; for attr in attrs { - if attr.path.is_ident("cfg") { + if attr.path().is_ident("cfg") { cfgs.push(attr.clone()); } } diff -Nru rust-defmt-macros-0.3.3/src/items/bitflags.rs rust-defmt-macros-0.3.6/src/items/bitflags.rs --- rust-defmt-macros-0.3.3/src/items/bitflags.rs 2006-07-24 01:21:28.000000000 +0000 +++ rust-defmt-macros-0.3.6/src/items/bitflags.rs 2006-07-24 01:21:28.000000000 +0000 @@ -16,11 +16,12 @@ // Encode package and disambiguator to provide the decoder with all info it needs (even if // technically redundant, since it's also stored in the symbol we create). let format_string = format!( - "{{={}:__internal_bitflags_{}@{}@{}}}", + "{{={}:__internal_bitflags_{}@{}@{}@{}}}", input.ty().to_token_stream(), input.ident(), cargo::package_name(), construct::crate_local_disambiguator(), + cargo::crate_name(), ); let format_tag = construct::interned_string(&format_string, "bitflags", false); @@ -70,7 +71,7 @@ let sym_name = construct::mangled_symbol_name( "bitflags_value", - &format!("{}::{}::{}", input.ident(), i, flag.ident()), + &format!("{}::{i}::{}", input.ident(), flag.ident()), ); quote! { diff -Nru rust-defmt-macros-0.3.3/src/lib.rs rust-defmt-macros-0.3.6/src/lib.rs --- rust-defmt-macros-0.3.3/src/lib.rs 2006-07-24 01:21:28.000000000 +0000 +++ rust-defmt-macros-0.3.6/src/lib.rs 2006-07-24 01:21:28.000000000 +0000 @@ -156,7 +156,7 @@ #[proc_macro_error] pub fn panic_(args: TokenStream) -> TokenStream { function_like::panic_like::expand(args, "panicked at 'explicit panic'", |format_string| { - format!("panicked at '{}'", format_string) + format!("panicked at '{format_string}'") }) } @@ -164,7 +164,7 @@ #[proc_macro_error] pub fn todo_(args: TokenStream) -> TokenStream { function_like::panic_like::expand(args, "panicked at 'not yet implemented'", |format_string| { - format!("panicked at 'not yet implemented: {}'", format_string) + format!("panicked at 'not yet implemented: {format_string}'") }) }