Skip to content

Too many warnings when running fuzz tests using libFuzzer #3877

Open
@Prabhat1308

Description

@Prabhat1308

When running any fuzz target , I get a long list of warnings related to lifetime issues . Although not blocking , the sheer length of these warning messages is a bit annoying

(warning: its very long) log from terminal
    = note: this warning originates in the macro `invoice_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
848 |     pub fn issuer(&$self) -> Option<PrintableString<'_>> {
    |                                                    ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice.rs:777:23
    |
777 |       pub fn offer_chains(&$self) -> Option<Vec<ChainHash>> {
    |  __________________________^
778 | |         $contents.offer_chains()
...   |
912 | |     /// From [`InvoiceRequest::payer_note`] or [`Refund::payer_note`].
913 | |     pub fn payer_note(&$self) -> Option<PrintableString> {
    | |                            ^            --------------- the lifetime gets resolved as `'_`
    | |____________________________|
    |                              this lifetime flows to the output
...
952 |       invoice_accessors!(self, self.contents);
    |       --------------------------------------- in this macro invocation
    |
    = note: this warning originates in the macro `invoice_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
913 |     pub fn payer_note(&$self) -> Option<PrintableString<'_>> {
    |                                                        ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice.rs:777:23
    |
777 |       pub fn offer_chains(&$self) -> Option<Vec<ChainHash>> {
    |  __________________________^
778 | |         $contents.offer_chains()
...   |
829 | |     /// [`Offer::description`]: crate::offers::offer::Offer::description
830 | |     pub fn description(&$self) -> Option<PrintableString> {
    | |                             ^            --------------- the lifetime gets resolved as `'_`
    | |_____________________________|
    |                               this lifetime flows to the output
...
958 |       invoice_accessors!(self, self.contents);
    |       --------------------------------------- in this macro invocation
    |
    = note: this warning originates in the macro `invoice_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
830 |     pub fn description(&$self) -> Option<PrintableString<'_>> {
    |                                                         ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice.rs:777:23
    |
777 |       pub fn offer_chains(&$self) -> Option<Vec<ChainHash>> {
    |  __________________________^
778 | |         $contents.offer_chains()
...   |
847 | |     /// [`Offer::issuer`]: crate::offers::offer::Offer::issuer
848 | |     pub fn issuer(&$self) -> Option<PrintableString> {
    | |                        ^            --------------- the lifetime gets resolved as `'_`
    | |________________________|
    |                          this lifetime flows to the output
...
958 |       invoice_accessors!(self, self.contents);
    |       --------------------------------------- in this macro invocation
    |
    = note: this warning originates in the macro `invoice_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
848 |     pub fn issuer(&$self) -> Option<PrintableString<'_>> {
    |                                                    ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice.rs:777:23
    |
777 |       pub fn offer_chains(&$self) -> Option<Vec<ChainHash>> {
    |  __________________________^
778 | |         $contents.offer_chains()
...   |
912 | |     /// From [`InvoiceRequest::payer_note`] or [`Refund::payer_note`].
913 | |     pub fn payer_note(&$self) -> Option<PrintableString> {
    | |                            ^            --------------- the lifetime gets resolved as `'_`
    | |____________________________|
    |                              this lifetime flows to the output
...
958 |       invoice_accessors!(self, self.contents);
    |       --------------------------------------- in this macro invocation
    |
    = note: this warning originates in the macro `invoice_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
913 |     pub fn payer_note(&$self) -> Option<PrintableString<'_>> {
    |                                                        ++++

warning: lifetime flowing from input to output with different syntax can be confusing
    --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice.rs:1006:30
     |
1006 |     pub(crate) fn as_tlv_stream(&self) -> FullInvoiceTlvStreamRef {
     |                                 ^^^^^     ----------------------- the lifetime gets resolved as `'_`
     |                                 |
     |                                 this lifetime flows to the output
     |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
     |
1006 |     pub(crate) fn as_tlv_stream(&self) -> FullInvoiceTlvStreamRef<'_> {
     |                                                                  ++++

warning: lifetime flowing from input to output with different syntax can be confusing
    --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice.rs:1109:17
     |
1109 |     fn description(&self) -> Option<PrintableString> {
     |                    ^^^^^            --------------- the lifetime gets resolved as `'_`
     |                    |
     |                    this lifetime flows to the output
     |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
     |
1109 |     fn description(&self) -> Option<PrintableString<'_>> {
     |                                                    ++++

warning: lifetime flowing from input to output with different syntax can be confusing
    --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice.rs:1136:12
     |
1136 |     fn issuer(&self) -> Option<PrintableString> {
     |               ^^^^^            --------------- the lifetime gets resolved as `'_`
     |               |
     |               this lifetime flows to the output
     |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
     |
1136 |     fn issuer(&self) -> Option<PrintableString<'_>> {
     |                                               ++++

warning: lifetime flowing from input to output with different syntax can be confusing
    --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice.rs:1202:16
     |
1202 |     fn payer_note(&self) -> Option<PrintableString> {
     |                   ^^^^^            --------------- the lifetime gets resolved as `'_`
     |                   |
     |                   this lifetime flows to the output
     |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
     |
1202 |     fn payer_note(&self) -> Option<PrintableString<'_>> {
     |                                                   ++++

warning: lifetime flowing from input to output with different syntax can be confusing
    --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice.rs:1293:19
     |
1293 |     fn as_tlv_stream(&self) -> PartialInvoiceTlvStreamRef {
     |                      ^^^^^     -------------------------- the lifetime gets resolved as `'_`
     |                      |
     |                      this lifetime flows to the output
     |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
     |
1293 |     fn as_tlv_stream(&self) -> PartialInvoiceTlvStreamRef<'_> {
     |                                                          ++++

warning: lifetime flowing from input to output with different syntax can be confusing
    --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice.rs:1357:19
     |
1357 |     fn as_tlv_stream(&self) -> (InvoiceTlvStreamRef, ExperimentalInvoiceTlvStreamRef) {
     |                      ^^^^^      ------------------- the lifetime gets resolved as `'_`
     |                      |
     |                      this lifetime flows to the output
     |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
     |
1357 |     fn as_tlv_stream(&self) -> (InvoiceTlvStreamRef<'_>, ExperimentalInvoiceTlvStreamRef) {
     |                                                    ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/offer.rs:631:17
    |
631 |       pub fn chains(&$self) -> Vec<bitcoin::constants::ChainHash> {
    |  ____________________^
632 | |         $contents.chains()
...   |
648 | |     /// but with the caveat that it has not been verified in any way.
649 | |     pub fn description(&$self) -> Option<$crate::util::string::PrintableString> {
    | |                             ^            ------------------------------------- the lifetime gets resolved as `'_`
    | |_____________________________|
    |                               this lifetime flows to the output
    |
   ::: /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:703:2
    |
703 |       offer_accessors!(self, self.contents.inner.offer);
    |       ------------------------------------------------- in this macro invocation
    |
    = note: this warning originates in the macro `offer_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
649 |     pub fn description(&$self) -> Option<$crate::util::string::PrintableString<'_>> {
    |                                                                               ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/offer.rs:631:17
    |
631 |       pub fn chains(&$self) -> Vec<bitcoin::constants::ChainHash> {
    |  ____________________^
632 | |         $contents.chains()
...   |
666 | |     /// displayed to the user but with the caveat that it has not been verified in any way.
667 | |     pub fn issuer(&$self) -> Option<$crate::util::string::PrintableString> {
    | |                        ^            ------------------------------------- the lifetime gets resolved as `'_`
    | |________________________|
    |                          this lifetime flows to the output
    |
   ::: /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:703:2
    |
703 |       offer_accessors!(self, self.contents.inner.offer);
    |       ------------------------------------------------- in this macro invocation
    |
    = note: this warning originates in the macro `offer_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
667 |     pub fn issuer(&$self) -> Option<$crate::util::string::PrintableString<'_>> {
    |                                                                          ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:648:25
    |
648 |       pub fn payer_metadata(&$self) -> &[u8] {
    |  ____________________________^
649 | |         $contents.metadata()
...   |
690 | |     /// response.
691 | |     pub fn payer_note(&$self) -> Option<PrintableString> {
    | |                            ^            --------------- the lifetime gets resolved as `'_`
    | |____________________________|
    |                              this lifetime flows to the output
...
704 |       invoice_request_accessors!(self, self.contents);
    |       ----------------------------------------------- in this macro invocation
    |
    = note: this warning originates in the macro `invoice_request_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
691 |     pub fn payer_note(&$self) -> Option<PrintableString<'_>> {
    |                                                        ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/offer.rs:631:17
    |
631 |       pub fn chains(&$self) -> Vec<bitcoin::constants::ChainHash> {
    |  ____________________^
632 | |         $contents.chains()
...   |
648 | |     /// but with the caveat that it has not been verified in any way.
649 | |     pub fn description(&$self) -> Option<$crate::util::string::PrintableString> {
    | |                             ^            ------------------------------------- the lifetime gets resolved as `'_`
    | |_____________________________|
    |                               this lifetime flows to the output
    |
   ::: /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:852:2
    |
852 |       offer_accessors!(self, self.contents.inner.offer);
    |       ------------------------------------------------- in this macro invocation
    |
    = note: this warning originates in the macro `offer_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
649 |     pub fn description(&$self) -> Option<$crate::util::string::PrintableString<'_>> {
    |                                                                               ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/offer.rs:631:17
    |
631 |       pub fn chains(&$self) -> Vec<bitcoin::constants::ChainHash> {
    |  ____________________^
632 | |         $contents.chains()
...   |
666 | |     /// displayed to the user but with the caveat that it has not been verified in any way.
667 | |     pub fn issuer(&$self) -> Option<$crate::util::string::PrintableString> {
    | |                        ^            ------------------------------------- the lifetime gets resolved as `'_`
    | |________________________|
    |                          this lifetime flows to the output
    |
   ::: /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:852:2
    |
852 |       offer_accessors!(self, self.contents.inner.offer);
    |       ------------------------------------------------- in this macro invocation
    |
    = note: this warning originates in the macro `offer_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
667 |     pub fn issuer(&$self) -> Option<$crate::util::string::PrintableString<'_>> {
    |                                                                          ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:648:25
    |
648 |       pub fn payer_metadata(&$self) -> &[u8] {
    |  ____________________________^
649 | |         $contents.metadata()
...   |
690 | |     /// response.
691 | |     pub fn payer_note(&$self) -> Option<PrintableString> {
    | |                            ^            --------------- the lifetime gets resolved as `'_`
    | |____________________________|
    |                              this lifetime flows to the output
...
853 |       invoice_request_accessors!(self, self.contents);
    |       ----------------------------------------------- in this macro invocation
    |
    = note: this warning originates in the macro `invoice_request_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
691 |     pub fn payer_note(&$self) -> Option<PrintableString<'_>> {
    |                                                        ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:719:3
    |
719 |           &$self, payment_paths: Vec<BlindedPaymentPath>, payment_hash: PaymentHash
    |           ^^^^^^ this lifetime flows to the output
...
854 | /     invoice_request_respond_with_explicit_signing_pubkey_methods!(
855 | |         self,
856 | |         self,
857 | |         InvoiceBuilder<ExplicitSigningPubkey>
    | |         ------------------------------------- the lifetime gets resolved as `'_`
858 | |     );
    | |_____- in this macro invocation
    |
    = note: this warning originates in the macro `invoice_request_respond_with_explicit_signing_pubkey_methods` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
857 |         InvoiceBuilder<'_, ExplicitSigningPubkey>
    |                        +++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:719:4
    |
719 |           &$self, payment_paths: Vec<BlindedPaymentPath>, payment_hash: PaymentHash
    |  __________^
720 | |     ) -> Result<$builder, Bolt12SemanticError> {
721 | |         let created_at = std::time::SystemTime::now()
722 | |             .duration_since(std::time::SystemTime::UNIX_EPOCH)
...   |
753 | |     pub fn respond_with_no_std(
754 | |         &$self, payment_paths: Vec<BlindedPaymentPath>, payment_hash: PaymentHash,
    | |______________^ this lifetime flows to the output
...
854 | /     invoice_request_respond_with_explicit_signing_pubkey_methods!(
855 | |         self,
856 | |         self,
857 | |         InvoiceBuilder<ExplicitSigningPubkey>
    | |         ------------------------------------- the lifetime gets resolved as `'_`
858 | |     );
    | |_____- in this macro invocation
    |
    = note: this warning originates in the macro `invoice_request_respond_with_explicit_signing_pubkey_methods` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
857 |         InvoiceBuilder<'_, ExplicitSigningPubkey>
    |                        +++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:892:30
    |
892 |     pub(crate) fn as_tlv_stream(&self) -> FullInvoiceRequestTlvStreamRef {
    |                                 ^^^^^     ------------------------------ the lifetime gets resolved as `'_`
    |                                 |
    |                                 this lifetime flows to the output
    |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
892 |     pub(crate) fn as_tlv_stream(&self) -> FullInvoiceRequestTlvStreamRef<'_> {
    |                                                                         ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/offer.rs:631:17
    |
631 |       pub fn chains(&$self) -> Vec<bitcoin::constants::ChainHash> {
    |  ____________________^
632 | |         $contents.chains()
...   |
648 | |     /// but with the caveat that it has not been verified in any way.
649 | |     pub fn description(&$self) -> Option<$crate::util::string::PrintableString> {
    | |                             ^            ------------------------------------- the lifetime gets resolved as `'_`
    | |_____________________________|
    |                               this lifetime flows to the output
    |
   ::: /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:965:2
    |
965 |       offer_accessors!(self, self.inner.contents.inner.offer);
    |       ------------------------------------------------------- in this macro invocation
    |
    = note: this warning originates in the macro `offer_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
649 |     pub fn description(&$self) -> Option<$crate::util::string::PrintableString<'_>> {
    |                                                                               ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/offer.rs:631:17
    |
631 |       pub fn chains(&$self) -> Vec<bitcoin::constants::ChainHash> {
    |  ____________________^
632 | |         $contents.chains()
...   |
666 | |     /// displayed to the user but with the caveat that it has not been verified in any way.
667 | |     pub fn issuer(&$self) -> Option<$crate::util::string::PrintableString> {
    | |                        ^            ------------------------------------- the lifetime gets resolved as `'_`
    | |________________________|
    |                          this lifetime flows to the output
    |
   ::: /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:965:2
    |
965 |       offer_accessors!(self, self.inner.contents.inner.offer);
    |       ------------------------------------------------------- in this macro invocation
    |
    = note: this warning originates in the macro `offer_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
667 |     pub fn issuer(&$self) -> Option<$crate::util::string::PrintableString<'_>> {
    |                                                                          ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:648:25
    |
648 |       pub fn payer_metadata(&$self) -> &[u8] {
    |  ____________________________^
649 | |         $contents.metadata()
...   |
690 | |     /// response.
691 | |     pub fn payer_note(&$self) -> Option<PrintableString> {
    | |                            ^            --------------- the lifetime gets resolved as `'_`
    | |____________________________|
    |                              this lifetime flows to the output
...
966 |       invoice_request_accessors!(self, self.inner.contents);
    |       ----------------------------------------------------- in this macro invocation
    |
    = note: this warning originates in the macro `invoice_request_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
691 |     pub fn payer_note(&$self) -> Option<PrintableString<'_>> {
    |                                                        ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:719:3
    |
719 |           &$self, payment_paths: Vec<BlindedPaymentPath>, payment_hash: PaymentHash
    |           ^^^^^^ this lifetime flows to the output
...
968 | /     invoice_request_respond_with_explicit_signing_pubkey_methods!(
969 | |         self,
970 | |         self.inner,
971 | |         InvoiceBuilder<ExplicitSigningPubkey>
    | |         ------------------------------------- the lifetime gets resolved as `'_`
972 | |     );
    | |_____- in this macro invocation
    |
    = note: this warning originates in the macro `invoice_request_respond_with_explicit_signing_pubkey_methods` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
971 |         InvoiceBuilder<'_, ExplicitSigningPubkey>
    |                        +++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:719:4
    |
719 |           &$self, payment_paths: Vec<BlindedPaymentPath>, payment_hash: PaymentHash
    |  __________^
720 | |     ) -> Result<$builder, Bolt12SemanticError> {
721 | |         let created_at = std::time::SystemTime::now()
722 | |             .duration_since(std::time::SystemTime::UNIX_EPOCH)
...   |
753 | |     pub fn respond_with_no_std(
754 | |         &$self, payment_paths: Vec<BlindedPaymentPath>, payment_hash: PaymentHash,
    | |______________^ this lifetime flows to the output
...
968 | /     invoice_request_respond_with_explicit_signing_pubkey_methods!(
969 | |         self,
970 | |         self.inner,
971 | |         InvoiceBuilder<ExplicitSigningPubkey>
    | |         ------------------------------------- the lifetime gets resolved as `'_`
972 | |     );
    | |_____- in this macro invocation
    |
    = note: this warning originates in the macro `invoice_request_respond_with_explicit_signing_pubkey_methods` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
971 |         InvoiceBuilder<'_, ExplicitSigningPubkey>
    |                        +++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:924:3
    |
924 |           &$self, payment_paths: Vec<BlindedPaymentPath>, payment_hash: PaymentHash
    |           ^^^^^^ this lifetime flows to the output
...
980 | /     invoice_request_respond_with_derived_signing_pubkey_methods!(
981 | |         self,
982 | |         self.inner,
983 | |         InvoiceBuilder<DerivedSigningPubkey>
    | |         ------------------------------------ the lifetime gets resolved as `'_`
984 | |     );
    | |_____- in this macro invocation
    |
    = note: this warning originates in the macro `invoice_request_respond_with_derived_signing_pubkey_methods` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
983 |         InvoiceBuilder<'_, DerivedSigningPubkey>
    |                        +++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:924:4
    |
924 |           &$self, payment_paths: Vec<BlindedPaymentPath>, payment_hash: PaymentHash
    |  __________^
925 | |     ) -> Result<$builder, Bolt12SemanticError> {
926 | |         let created_at = std::time::SystemTime::now()
927 | |             .duration_since(std::time::SystemTime::UNIX_EPOCH)
...   |
940 | |     pub fn respond_using_derived_keys_no_std(
941 | |         &$self, payment_paths: Vec<BlindedPaymentPath>, payment_hash: PaymentHash,
    | |______________^ this lifetime flows to the output
...
980 | /     invoice_request_respond_with_derived_signing_pubkey_methods!(
981 | |         self,
982 | |         self.inner,
983 | |         InvoiceBuilder<DerivedSigningPubkey>
    | |         ------------------------------------ the lifetime gets resolved as `'_`
984 | |     );
    | |_____- in this macro invocation
    |
    = note: this warning originates in the macro `invoice_request_respond_with_derived_signing_pubkey_methods` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
983 |         InvoiceBuilder<'_, DerivedSigningPubkey>
    |                        +++

warning: lifetime flowing from input to output with different syntax can be confusing
    --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:1077:27
     |
1077 |     pub(super) fn payer_note(&self) -> Option<PrintableString> {
     |                              ^^^^^            --------------- the lifetime gets resolved as `'_`
     |                              |
     |                              this lifetime flows to the output
     |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
     |
1077 |     pub(super) fn payer_note(&self) -> Option<PrintableString<'_>> {
     |                                                              ++++

warning: lifetime flowing from input to output with different syntax can be confusing
    --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:1085:30
     |
1085 |     pub(super) fn as_tlv_stream(&self) -> PartialInvoiceRequestTlvStreamRef {
     |                                 ^^^^^     --------------------------------- the lifetime gets resolved as `'_`
     |                                 |
     |                                 this lifetime flows to the output
     |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
     |
1085 |     pub(super) fn as_tlv_stream(&self) -> PartialInvoiceRequestTlvStreamRef<'_> {
     |                                                                            ++++

warning: lifetime flowing from input to output with different syntax can be confusing
    --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/invoice_request.rs:1106:30
     |
1106 |     pub(super) fn as_tlv_stream(&self) -> PartialInvoiceRequestTlvStreamRef {
     |                                 ^^^^^     --------------------------------- the lifetime gets resolved as `'_`
     |                                 |
     |                                 this lifetime flows to the output
     |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
     |
1106 |     pub(super) fn as_tlv_stream(&self) -> PartialInvoiceRequestTlvStreamRef<'_> {
     |                                                                            ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/refund.rs:483:21
    |
483 |     pub fn description(&self) -> PrintableString {
    |                        ^^^^^     --------------- the lifetime gets resolved as `'_`
    |                        |
    |                        this lifetime flows to the output
    |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
483 |     pub fn description(&self) -> PrintableString<'_> {
    |                                                 ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/refund.rs:507:16
    |
507 |     pub fn issuer(&self) -> Option<PrintableString> {
    |                   ^^^^^            --------------- the lifetime gets resolved as `'_`
    |                   |
    |                   this lifetime flows to the output
    |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
507 |     pub fn issuer(&self) -> Option<PrintableString<'_>> {
    |                                                   ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/refund.rs:556:20
    |
556 |     pub fn payer_note(&self) -> Option<PrintableString> {
    |                       ^^^^^            --------------- the lifetime gets resolved as `'_`
    |                       |
    |                       this lifetime flows to the output
    |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
556 |     pub fn payer_note(&self) -> Option<PrintableString<'_>> {
    |                                                       ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/refund.rs:573:3
    |
573 |         &$self, payment_paths: Vec<BlindedPaymentPath>, payment_hash: PaymentHash,
    |         ^^^^^^ this lifetime flows to the output
...
670 |     respond_with_explicit_signing_pubkey_methods!(self, InvoiceBuilder<ExplicitSigningPubkey>);
    |     ------------------------------------------------------------------------------------------
    |     |                                                   |
    |     |                                                   the lifetime gets resolved as `'_`
    |     in this macro invocation
    |
    = note: this warning originates in the macro `respond_with_explicit_signing_pubkey_methods` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
670 |     respond_with_explicit_signing_pubkey_methods!(self, InvoiceBuilder<'_, ExplicitSigningPubkey>);
    |                                                                        +++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/refund.rs:573:4
    |
573 |           &$self, payment_paths: Vec<BlindedPaymentPath>, payment_hash: PaymentHash,
    |  __________^
574 | |         signing_pubkey: PublicKey,
575 | |     ) -> Result<$builder, Bolt12SemanticError> {
576 | |         let created_at = std::time::SystemTime::now()
...   |
605 | |     pub fn respond_with_no_std(
606 | |         &$self, payment_paths: Vec<BlindedPaymentPath>, payment_hash: PaymentHash,
    | |______________^ this lifetime flows to the output
...
670 |       respond_with_explicit_signing_pubkey_methods!(self, InvoiceBuilder<ExplicitSigningPubkey>);
    |       ------------------------------------------------------------------------------------------
    |       |                                                   |
    |       |                                                   the lifetime gets resolved as `'_`
    |       in this macro invocation
    |
    = note: this warning originates in the macro `respond_with_explicit_signing_pubkey_methods` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
670 |     respond_with_explicit_signing_pubkey_methods!(self, InvoiceBuilder<'_, ExplicitSigningPubkey>);
    |                                                                        +++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/refund.rs:628:3
    |
628 |         &$self, payment_paths: Vec<BlindedPaymentPath>, payment_hash: PaymentHash,
    |         ^^^^^^ this lifetime flows to the output
...
671 |     respond_with_derived_signing_pubkey_methods!(self, InvoiceBuilder<DerivedSigningPubkey>);
    |     ----------------------------------------------------------------------------------------
    |     |                                                  |
    |     |                                                  the lifetime gets resolved as `'_`
    |     in this macro invocation
    |
    = note: this warning originates in the macro `respond_with_derived_signing_pubkey_methods` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
671 |     respond_with_derived_signing_pubkey_methods!(self, InvoiceBuilder<'_, DerivedSigningPubkey>);
    |                                                                       +++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/refund.rs:628:4
    |
628 |           &$self, payment_paths: Vec<BlindedPaymentPath>, payment_hash: PaymentHash,
    |  __________^
629 | |         expanded_key: &ExpandedKey, entropy_source: ES
630 | |     ) -> Result<$builder, Bolt12SemanticError>
631 | |     where
...   |
651 | |     pub fn respond_using_derived_keys_no_std<ES: Deref>(
652 | |         &$self, payment_paths: Vec<BlindedPaymentPath>, payment_hash: PaymentHash,
    | |______________^ this lifetime flows to the output
...
671 |       respond_with_derived_signing_pubkey_methods!(self, InvoiceBuilder<DerivedSigningPubkey>);
    |       ----------------------------------------------------------------------------------------
    |       |                                                  |
    |       |                                                  the lifetime gets resolved as `'_`
    |       in this macro invocation
    |
    = note: this warning originates in the macro `respond_with_derived_signing_pubkey_methods` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
671 |     respond_with_derived_signing_pubkey_methods!(self, InvoiceBuilder<'_, DerivedSigningPubkey>);
    |                                                                       +++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/refund.rs:708:21
    |
708 |     pub fn description(&self) -> PrintableString {
    |                        ^^^^^     --------------- the lifetime gets resolved as `'_`
    |                        |
    |                        this lifetime flows to the output
    |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
708 |     pub fn description(&self) -> PrintableString<'_> {
    |                                                 ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/refund.rs:730:16
    |
730 |     pub fn issuer(&self) -> Option<PrintableString> {
    |                   ^^^^^            --------------- the lifetime gets resolved as `'_`
    |                   |
    |                   this lifetime flows to the output
    |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
730 |     pub fn issuer(&self) -> Option<PrintableString<'_>> {
    |                                                   ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/refund.rs:773:20
    |
773 |     pub fn payer_note(&self) -> Option<PrintableString> {
    |                       ^^^^^            --------------- the lifetime gets resolved as `'_`
    |                       |
    |                       this lifetime flows to the output
    |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
773 |     pub fn payer_note(&self) -> Option<PrintableString<'_>> {
    |                                                       ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/refund.rs:777:30
    |
777 |     pub(super) fn as_tlv_stream(&self) -> RefundTlvStreamRef {
    |                                 ^^^^^     ------------------ the lifetime gets resolved as `'_`
    |                                 |
    |                                 this lifetime flows to the output
    |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
777 |     pub(super) fn as_tlv_stream(&self) -> RefundTlvStreamRef<'_> {
    |                                                             ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/static_invoice.rs:206:16
    |
206 |       pub fn chain(&$self) -> ChainHash {
    |  ___________________^
207 | |         $contents.chain()
...   |
236 | |     /// [`Offer::description`]: crate::offers::offer::Offer::description
237 | |     pub fn description(&$self) -> Option<PrintableString> {
    | |                             ^            --------------- the lifetime gets resolved as `'_`
    | |_____________________________|
    |                               this lifetime flows to the output
...
355 |       invoice_accessors!(self, self.contents);
    |       --------------------------------------- in this macro invocation
    |
    = note: this warning originates in the macro `invoice_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
237 |     pub fn description(&$self) -> Option<PrintableString<'_>> {
    |                                                         ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/static_invoice.rs:206:16
    |
206 |       pub fn chain(&$self) -> ChainHash {
    |  ___________________^
207 | |         $contents.chain()
...   |
251 | |     /// [`Offer::issuer`]: crate::offers::offer::Offer::issuer
252 | |     pub fn issuer(&$self) -> Option<PrintableString> {
    | |                        ^            --------------- the lifetime gets resolved as `'_`
    | |________________________|
    |                          this lifetime flows to the output
...
355 |       invoice_accessors!(self, self.contents);
    |       --------------------------------------- in this macro invocation
    |
    = note: this warning originates in the macro `invoice_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
252 |     pub fn issuer(&$self) -> Option<PrintableString<'_>> {
    |                                                    ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/static_invoice.rs:206:16
    |
206 |       pub fn chain(&$self) -> ChainHash {
    |  ___________________^
207 | |         $contents.chain()
...   |
236 | |     /// [`Offer::description`]: crate::offers::offer::Offer::description
237 | |     pub fn description(&$self) -> Option<PrintableString> {
    | |                             ^            --------------- the lifetime gets resolved as `'_`
    | |_____________________________|
    |                               this lifetime flows to the output
...
391 |       invoice_accessors!(self, self.contents);
    |       --------------------------------------- in this macro invocation
    |
    = note: this warning originates in the macro `invoice_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
237 |     pub fn description(&$self) -> Option<PrintableString<'_>> {
    |                                                         ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/static_invoice.rs:206:16
    |
206 |       pub fn chain(&$self) -> ChainHash {
    |  ___________________^
207 | |         $contents.chain()
...   |
251 | |     /// [`Offer::issuer`]: crate::offers::offer::Offer::issuer
252 | |     pub fn issuer(&$self) -> Option<PrintableString> {
    | |                        ^            --------------- the lifetime gets resolved as `'_`
    | |________________________|
    |                          this lifetime flows to the output
...
391 |       invoice_accessors!(self, self.contents);
    |       --------------------------------------- in this macro invocation
    |
    = note: this warning originates in the macro `invoice_accessors` (in Nightly builds, run with -Z macro-backtrace for more info)
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
252 |     pub fn issuer(&$self) -> Option<PrintableString<'_>> {
    |                                                    ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/static_invoice.rs:437:19
    |
437 |     fn as_tlv_stream(&self) -> PartialInvoiceTlvStreamRef {
    |                      ^^^^^     -------------------------- the lifetime gets resolved as `'_`
    |                      |
    |                      this lifetime flows to the output
    |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
437 |     fn as_tlv_stream(&self) -> PartialInvoiceTlvStreamRef<'_> {
    |                                                          ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/static_invoice.rs:486:17
    |
486 |     fn description(&self) -> Option<PrintableString> {
    |                    ^^^^^            --------------- the lifetime gets resolved as `'_`
    |                    |
    |                    this lifetime flows to the output
    |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
486 |     fn description(&self) -> Option<PrintableString<'_>> {
    |                                                    ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/offers/static_invoice.rs:494:12
    |
494 |     fn issuer(&self) -> Option<PrintableString> {
    |               ^^^^^            --------------- the lifetime gets resolved as `'_`
    |               |
    |               this lifetime flows to the output
    |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
494 |     fn issuer(&self) -> Option<PrintableString<'_>> {
    |                                               ++++

warning: lifetime flowing from input to output with different syntax can be confusing
    --> /Users/prabhatverma/projects/rust-lightning/lightning/src/routing/gossip.rs:1057:24
     |
1057 |     pub fn as_directed_to(&self, target: &NodeId) -> Option<(DirectedChannelInfo, &NodeId)> {
     |                           ^^^^^                              -------------------  ------- the lifetimes get resolved as `'_`
     |                           |                                  |
     |                           |                                  the lifetimes get resolved as `'_`
     |                           this lifetime flows to the output
     |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
     |
1057 |     pub fn as_directed_to(&self, target: &NodeId) -> Option<(DirectedChannelInfo<'_>, &NodeId)> {
     |                                                                                 ++++

warning: lifetime flowing from input to output with different syntax can be confusing
    --> /Users/prabhatverma/projects/rust-lightning/lightning/src/routing/gossip.rs:1076:26
     |
1076 |     pub fn as_directed_from(&self, source: &NodeId) -> Option<(DirectedChannelInfo, &NodeId)> {
     |                             ^^^^^                              -------------------  ------- the lifetimes get resolved as `'_`
     |                             |                                  |
     |                             |                                  the lifetimes get resolved as `'_`
     |                             this lifetime flows to the output
     |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
     |
1076 |     pub fn as_directed_from(&self, source: &NodeId) -> Option<(DirectedChannelInfo<'_>, &NodeId)> {
     |                                                                                   ++++

warning: lifetime flowing from input to output with different syntax can be confusing
    --> /Users/prabhatverma/projects/rust-lightning/lightning/src/routing/router.rs:1287:14
     |
1287 |     fn features(&self) -> Option<FeaturesRef> {
     |                 ^^^^^            ----------- the lifetime gets resolved as `'_`
     |                 |
     |                 this lifetime flows to the output
     |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
     |
1287 |     fn features(&self) -> Option<FeaturesRef<'_>> {
     |                                             ++++

warning: lifetime flowing from input to output with different syntax can be confusing
   --> /Users/prabhatverma/projects/rust-lightning/lightning/src/routing/scoring.rs:547:11
    |
547 |     fn entry(&mut self, short_channel_id: u64) -> Entry<u64, ChannelLiquidity, RandomState> {
    |              ^^^^^^^^^                            ----------------------------------------- the lifetime gets resolved as `'_`
    |              |
    |              this lifetime flows to the output
    |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
547 |     fn entry(&mut self, short_channel_id: u64) -> Entry<'_, u64, ChannelLiquidity, RandomState> {
    |                                                         +++

warning: lifetime flowing from input to output with different syntax can be confusing
  --> /Users/prabhatverma/projects/rust-lightning/lightning/src/sync/fairrwlock.rs:29:15
   |
29 |     pub fn write(&self) -> LockResult<RwLockWriteGuard<T>> {
   |                  ^^^^^                ------------------- the lifetime gets resolved as `'_`
   |                  |
   |                  this lifetime flows to the output
   |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
   |
29 |     pub fn write(&self) -> LockResult<RwLockWriteGuard<'_, T>> {
   |                                                        +++

warning: lifetime flowing from input to output with different syntax can be confusing
  --> /Users/prabhatverma/projects/rust-lightning/lightning/src/sync/fairrwlock.rs:36:14
   |
36 |     pub fn read(&self) -> LockResult<RwLockReadGuard<T>> {
   |                 ^^^^^                ------------------ the lifetime gets resolved as `'_`
   |                 |
   |                 this lifetime flows to the output
   |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
   |
36 |     pub fn read(&self) -> LockResult<RwLockReadGuard<'_, T>> {
   |                                                      +++

warning: `lightning` (lib) generated 80 warnings (run `cargo fix --lib -p lightning` to apply 77 suggestions)
warning: lifetime flowing from input to output with different syntax can be confusing
  --> /Users/prabhatverma/projects/rust-lightning/lightning-liquidity/src/events/event_queue.rs:70:18
   |
70 |     pub fn notifier(&self) -> EventQueueNotifierGuard {
   |                     ^^^^^     ----------------------- the lifetime gets resolved as `'_`
   |                     |
   |                     this lifetime flows to the output
   |
   = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
   |
70 |     pub fn notifier(&self) -> EventQueueNotifierGuard<'_> {
   |                                                      ++++

warning: lifetime flowing from input to output with different syntax can be confusing
  --> /Users/prabhatverma/projects/rust-lightning/lightning-liquidity/src/sync/fairrwlock.rs:29:15
   |
29 |     pub fn write(&self) -> LockResult<RwLockWriteGuard<T>> {
   |                  ^^^^^                ------------------- the lifetime gets resolved as `'_`
   |                  |
   |                  this lifetime flows to the output
   |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
   |
29 |     pub fn write(&self) -> LockResult<RwLockWriteGuard<'_, T>> {
   |                                                        +++

warning: lifetime flowing from input to output with different syntax can be confusing
  --> /Users/prabhatverma/projects/rust-lightning/lightning-liquidity/src/sync/fairrwlock.rs:36:14
   |
36 |     pub fn read(&self) -> LockResult<RwLockReadGuard<T>> {
   |                 ^^^^^                ------------------ the lifetime gets resolved as `'_`
   |                 |
   |                 this lifetime flows to the output
   |
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
   |
36 |     pub fn read(&self) -> LockResult<RwLockReadGuard<'_, T>> {
   |                                                      +++

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions