-
Notifications
You must be signed in to change notification settings - Fork 13.1k
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
Nicer hunk headers for rust files #78882
Conversation
I found this trick at <https://tekin.co.uk/2020/10/better-git-diff-output-for-ruby-python-elixir-and-more> Before the hunk headers for changes in methods would refer to the impl: ```diff diff --git a/compiler/rustc_middle/src/ty/context.rs b/compiler/rustc_middle/src/ty/context.rs index 1c6937e685c..fa4264d729b 100644 --- a/compiler/rustc_middle/src/ty/context.rs +++ b/compiler/rustc_middle/src/ty/context.rs @@ -678,7 +678,7 @@ impl<'a, 'tcx> HashStable<StableHashingContext<'a>> for TypeckResults<'tcx> { ref closure_captures, ref generator_interior_types, } = *self; - + // foo hcx.with_node_id_hashing_mode(NodeIdHashingMode::HashDefPath, |hcx| { type_dependent_defs.hash_stable(hcx, hasher); field_indices.hash_stable(hcx, hasher); ``` After the hunk headers refer to the actual function signature: ```diff diff --git a/compiler/rustc_middle/src/ty/context.rs b/compiler/rustc_middle/src/ty/context.rs index 1c6937e685c..fa4264d729b 100644 --- a/compiler/rustc_middle/src/ty/context.rs +++ b/compiler/rustc_middle/src/ty/context.rs @@ -678,7 +678,7 @@ fn hash_stable(&self, hcx: &mut StableHashingContext<'a>, hasher: &mut StableHas ref closure_captures, ref generator_interior_types, } = *self; - + // foo hcx.with_node_id_hashing_mode(NodeIdHashingMode::HashDefPath, |hcx| { type_dependent_defs.hash_stable(hcx, hasher); field_indices.hash_stable(hcx, hasher); ``` When the function signature is visible, it will use the function signature of the previous method as hunk header: ```diff diff --git a/compiler/rustc_middle/src/ty/context.rs b/compiler/rustc_middle/src/ty/context.rs index 1c6937e685c..63058dfc837 100644 --- a/compiler/rustc_middle/src/ty/context.rs +++ b/compiler/rustc_middle/src/ty/context.rs @@ -992,6 +992,7 @@ pub fn typeck_opt_const_arg( } pub fn alloc_steal_mir(self, mir: Body<'tcx>) -> &'tcx Steal<Body<'tcx>> { + // foo self.arena.alloc(Steal::new(mir)) } ```
(rust_highfive has picked a reviewer for you, use r? to override) |
Hm I guess this seems good, though I do wonder if the impl is really more useful sometimes. I wish we could see both, but doesn't seem like that's really possible. @bors r+ rollup though |
📌 Commit 3904617 has been approved by |
Could it show the impl if the current function is already present? I don't know why I'd want to know what the previous method was. |
I don't think that it is possible to show the impl when the current function is already present. According to https://www.git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header it is only possible to define a regex matching the line to use as hunk header. There doesn't seem to be any way to only match it in some cases or customize it. There is a way to specify a completely custom diff command though. |
…imulacrum Nicer hunk headers for rust files I found this trick at <https://tekin.co.uk/2020/10/better-git-diff-output-for-ruby-python-elixir-and-more> Before the hunk headers for changes in methods would refer to the impl: ```diff diff --git a/compiler/rustc_middle/src/ty/context.rs b/compiler/rustc_middle/src/ty/context.rs index 1c6937e685c..fa4264d729b 100644 --- a/compiler/rustc_middle/src/ty/context.rs +++ b/compiler/rustc_middle/src/ty/context.rs `@@` -678,7 +678,7 `@@` impl<'a, 'tcx> HashStable<StableHashingContext<'a>> for TypeckResults<'tcx> { ref closure_captures, ref generator_interior_types, } = *self; - + // foo hcx.with_node_id_hashing_mode(NodeIdHashingMode::HashDefPath, |hcx| { type_dependent_defs.hash_stable(hcx, hasher); field_indices.hash_stable(hcx, hasher); ``` After the hunk headers refer to the actual function signature: ```diff diff --git a/compiler/rustc_middle/src/ty/context.rs b/compiler/rustc_middle/src/ty/context.rs index 1c6937e685c..fa4264d729b 100644 --- a/compiler/rustc_middle/src/ty/context.rs +++ b/compiler/rustc_middle/src/ty/context.rs `@@` -678,7 +678,7 `@@` fn hash_stable(&self, hcx: &mut StableHashingContext<'a>, hasher: &mut StableHas ref closure_captures, ref generator_interior_types, } = *self; - + // foo hcx.with_node_id_hashing_mode(NodeIdHashingMode::HashDefPath, |hcx| { type_dependent_defs.hash_stable(hcx, hasher); field_indices.hash_stable(hcx, hasher); ``` When the function signature is visible, it will use the function signature of the previous method as hunk header: ```diff diff --git a/compiler/rustc_middle/src/ty/context.rs b/compiler/rustc_middle/src/ty/context.rs index 1c6937e685c..63058dfc837 100644 --- a/compiler/rustc_middle/src/ty/context.rs +++ b/compiler/rustc_middle/src/ty/context.rs `@@` -992,6 +992,7 `@@` pub fn typeck_opt_const_arg( } pub fn alloc_steal_mir(self, mir: Body<'tcx>) -> &'tcx Steal<Body<'tcx>> { + // foo self.arena.alloc(Steal::new(mir)) } ```
Rollup of 12 pull requests Successful merges: - rust-lang#77640 (Refactor IntErrorKind to avoid "underflow" terminology) - rust-lang#78026 (Define `fs::hard_link` to not follow symlinks.) - rust-lang#78114 (Recognize `private_intra_doc_links` as a lint) - rust-lang#78228 (Promote aarch64-unknown-linux-gnu to Tier 1) - rust-lang#78345 (Fix handling of item names for HIR) - rust-lang#78437 (BTreeMap: stop mistaking node for an orderly place) - rust-lang#78476 (fix some incorrect aliasing in the BTree) - rust-lang#78674 (inliner: Use substs_for_mir_body) - rust-lang#78748 (Implement destructuring assignment for tuples) - rust-lang#78868 (Fix tab focus on restyled switches) - rust-lang#78878 (Avoid overlapping cfg attributes when both macOS and aarch64) - rust-lang#78882 (Nicer hunk headers for rust files) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
Git supports a builtin Rust diff driver [1] since v2.23.0 (2019). It improves the choice of hunk headers in some cases, such as diffs within methods, since those are indented in Rust within an `impl` block, and therefore the default diff driver would pick the outer `impl` block instead (rather than the method where the changed code is). For instance, with the default diff driver: @@ -455,6 +455,8 @@ impl fmt::Write for RawFormatter { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. With the Rust diff driver: @@ -455,6 +455,8 @@ fn write_str(&mut self, s: &str) -> fmt::Result { // Amount that we can copy. `saturating_sub` ensures we get 0 if `pos` goes past `end`. let len_to_copy = core::cmp::min(pos_new, self.end).saturating_sub(self.pos); + test_diff_driver(); + if len_to_copy > 0 { // SAFETY: If `len_to_copy` is non-zero, then we know `pos` has not gone past `end` // yet, so it is valid for write per the type invariants. Thus set the `rust` diff driver for `*.rs` source files. The Rust repository also does so since 2020 [2]. Link: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header [1] Link: rust-lang/rust#78882 [2] Reviewed-by: Gary Guo <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Added link to Rust repository ] Signed-off-by: Miguel Ojeda <[email protected]>
This has to be explicitly enabled for git to utilize its enhanced rust diffing, evidently. ref: rust-lang/rust#78882
This has to be explicitly enabled for git to utilize its enhanced rust diffing, evidently. ref: rust-lang/rust#78882 Co-authored-by: zerosnacks <[email protected]>
* Update incorrect documentation in the READ.me (#9538) Update README.md * fix(`anvil`): set `best_number` to `state.block.number` if greater (#9543) fix(`anvil`): set `best_number` correctly while loading state with fork activated * fix(`cast`): reset `env.tx.caller` for impersonated txs (#9544) * fix(`cast`): reset `env.tx.caller` for impersonated txs * test * chore: Add GH attestation for foundry binaries (#9546) Add GH attestation * fix(release): allow contents write permission, run attestation after release created (#9550) fix(release): allow contents write permission, run attestation after release published * chore: bump compilers (#9554) * chore: bump compilers * clippy * fix: account for impersonated tx in configure_tx_env (#9553) * chore: account for impersonated tx in configure_tx_env * nit * fix: read rpc config when using fork cheatcodes (#9547) * read rpc config when using fork cheatcodes * attempt to resolve failed environment variables again * nit: refactor * nit: refactor * fix clippy errors * fix rustfmt errors * run cargofmt * set auth header for fork * remove redundant clone() * Update crates/cheatcodes/src/config.rs --------- Co-authored-by: Matthias Seitz <[email protected]> * chore(deps): weekly `cargo update` (#9560) * feat(cast): add support for beacon proxies in cast impl (#9567) * feat(cast): add support for beacon proxies in cast impl * test: pin test to current block * feat(`cheatcodes`): count assertion for `expectEmit` (#9405) * introduce ExpectEmitTracker * cheats * account for emit accounts + simple testNoEmit * tests: expectCountEmits from specific address * fix * failure tests * fix * fix: account for log data * LogCountMap * fix * nit * test * fix * fix * fix: instantiate log count map in tracker only if log satisfies the checks * nit * nit * nits * doc nits * helper fn * nit * nits * fix * fix * nit * refactor count tests * fix * fix * fix * fix(release): check `env.IS_NIGHTLY` as string (#9568) fix(release): check IS_NIGHTLY as string * Run release workflow on stable tag push (#9575) * chore: update release notes template (#9577) - feat / fixes category per binaries - breaking changes and perf category - restrict summary to max 60 days / max 100 PRs, add full diff and contributors * chore: add contributors in release changelog (#9578) * feat(foundryup): allow multiple installed versions (#9551) * feat(foundryup): allow multiple installed versions * Changes after review: new line after version, -v renamed as -i, create version dir on untar * Update foundryup link repo and contribute URL * Fix --one-top-level not avail in bsd tar * Fix --one-top-level not avail in bsd tar * update docs * Err if no version provided to use --------- Co-authored-by: zerosnacks <[email protected]> * chore: bump workspace version to `0.3.0` (#9580) bump to 0.3.0 * Update CI workflow template to unpin from `nightly` explicitly, relying on `foundry-toolchain` default (#9573) * default CI workflow template to stable as opposed to nightly, related: foundry-rs/foundry-toolchain#60 * remove pinning to stable in workflow file, rely on default in foundry-toolchain - now being nightly, becoming stable * chore: testFail* deprecation warning (#9581) * chore: testFail* deprecation warning * test * fix * chore(tests): bump forge-std version (#9584) * chore: bump forge-std version used for tests * run CI * fix tests * fix gas --------- Co-authored-by: DaniPopes <[email protected]> Co-authored-by: zerosnacks <[email protected]> * chore(`foundryup`): default to stable if no specific version is passed in (#9585) * default to stable if no specific version is passed in * update mention, defaults to stable now * chore(deps): weekly `cargo update` (#9588) * feat(cast): pretty print other receipt fields (#9589) * fix(cast): pretty print other receipt fields Signed-off-by: jsvisa <[email protected]> * feat(cast): add other receipt fields pretty test Signed-off-by: jsvisa <[email protected]> * fix(ui): receipt column length 20 Signed-off-by: jsvisa <[email protected]> * fmt Signed-off-by: jsvisa <[email protected]> * fix receipt indent test Signed-off-by: jsvisa <[email protected]> * fix test case /2 Signed-off-by: jsvisa <[email protected]> * fix revert reason indent Signed-off-by: jsvisa <[email protected]> --------- Signed-off-by: jsvisa <[email protected]> * chore(deps): weekly `cargo update` (#9599) Locking 29 packages to latest compatible versions Updating alloy-chains v0.1.49 -> v0.1.51 Updating alloy-trie v0.7.6 -> v0.7.7 Updating anyhow v1.0.94 -> v1.0.95 Updating aws-config v1.5.11 -> v1.5.12 Updating aws-runtime v1.5.1 -> v1.5.2 Updating aws-sdk-kms v1.52.0 -> v1.53.0 Updating aws-sdk-sso v1.51.0 -> v1.52.0 Updating aws-sdk-ssooidc v1.52.0 -> v1.53.0 Updating aws-sdk-sts v1.52.0 -> v1.53.0 Updating aws-smithy-async v1.2.2 -> v1.2.3 Updating aws-smithy-runtime v1.7.5 -> v1.7.6 Updating aws-smithy-types v1.2.10 -> v1.2.11 Updating bon v3.3.0 -> v3.3.2 Updating bon-macros v3.3.0 -> v3.3.2 Updating cc v1.2.5 -> v1.2.6 Updating gix-date v0.9.2 -> v0.9.3 Updating glob v0.3.1 -> v0.3.2 Updating jiff v0.1.15 -> v0.1.16 Updating nybbles v0.2.1 -> v0.3.0 Updating quote v1.0.37 -> v1.0.38 Updating reqwest v0.12.9 -> v0.12.11 Updating rustversion v1.0.18 -> v1.0.19 Updating scc v2.2.6 -> v2.3.0 Updating serde v1.0.216 -> v1.0.217 Updating serde_derive v1.0.216 -> v1.0.217 Updating syn v2.0.90 -> v2.0.93 Updating tracing-tracy v0.11.3 -> v0.11.4 Updating tracy-client v0.17.6 -> v0.18.0 Updating unicase v2.8.0 -> v2.8.1 note: pass `--verbose` to see 13 unchanged dependencies behind latest Co-authored-by: mattsse <[email protected]> * chore: make clippy happy (#9601) * chore: make clippy happy * allow literals tring with formatting args global * chore(fmt): tx fields indent with the same whitespaces (#9603) chore(fmt): follow the same indent rules of other fields Signed-off-by: jsvisa <[email protected]> * chore: fix flaky inline config test (#9591) * feat: update revm 19 alloy 09 (#9605) * feat: update revm 19 alloy 09 * clippy * updata test * add back max data gas check * chore(deps): bump alloys (#9613) * add comment to `-r` option about default value (#9571) add comment to -r option about default value * fix(anvil): ipc append a newline (#9608) * fix(anvil): ipc append a newline Signed-off-by: 9547 <[email protected]> * use put_u8 instead of extend from slice Signed-off-by: 9547 <[email protected]> --------- Signed-off-by: 9547 <[email protected]> * chore: dedup errors in eyre handler (#9612) * fix(`evm`): P256Verify address (#9618) * typo: EtherScan -> Etherscan (#9607) Signed-off-by: 9547 <[email protected]> Co-authored-by: Matthias Seitz <[email protected]> * chore(git): enhance rust diffing (#9596) This has to be explicitly enabled for git to utilize its enhanced rust diffing, evidently. ref: rust-lang/rust#78882 Co-authored-by: zerosnacks <[email protected]> * chore(deps): weekly `cargo update` (#9623) Locking 56 packages to latest compatible versions Updating alloy-chains v0.1.51 -> v0.1.52 Updating alloy-consensus v0.9.1 -> v0.9.2 Updating alloy-consensus-any v0.9.1 -> v0.9.2 Updating alloy-contract v0.9.1 -> v0.9.2 Updating alloy-dyn-abi v0.8.16 -> v0.8.18 Updating alloy-eips v0.9.1 -> v0.9.2 Updating alloy-genesis v0.9.1 -> v0.9.2 Updating alloy-json-abi v0.8.16 -> v0.8.18 Updating alloy-json-rpc v0.9.1 -> v0.9.2 Updating alloy-network v0.9.1 -> v0.9.2 Updating alloy-network-primitives v0.9.1 -> v0.9.2 Updating alloy-node-bindings v0.9.1 -> v0.9.2 Updating alloy-primitives v0.8.16 -> v0.8.18 Updating alloy-provider v0.9.1 -> v0.9.2 Updating alloy-pubsub v0.9.1 -> v0.9.2 Updating alloy-rpc-client v0.9.1 -> v0.9.2 Updating alloy-rpc-types v0.9.1 -> v0.9.2 Updating alloy-rpc-types-anvil v0.9.1 -> v0.9.2 Updating alloy-rpc-types-any v0.9.1 -> v0.9.2 Updating alloy-rpc-types-debug v0.9.1 -> v0.9.2 Updating alloy-rpc-types-engine v0.9.1 -> v0.9.2 Updating alloy-rpc-types-eth v0.9.1 -> v0.9.2 Updating alloy-rpc-types-trace v0.9.1 -> v0.9.2 Updating alloy-rpc-types-txpool v0.9.1 -> v0.9.2 Updating alloy-serde v0.9.1 -> v0.9.2 Updating alloy-signer v0.9.1 -> v0.9.2 Updating alloy-signer-aws v0.9.1 -> v0.9.2 Updating alloy-signer-gcp v0.9.1 -> v0.9.2 Updating alloy-signer-ledger v0.9.1 -> v0.9.2 Updating alloy-signer-local v0.9.1 -> v0.9.2 Updating alloy-signer-trezor v0.9.1 -> v0.9.2 Updating alloy-sol-macro v0.8.16 -> v0.8.18 Updating alloy-sol-macro-expander v0.8.16 -> v0.8.18 Updating alloy-sol-macro-input v0.8.16 -> v0.8.18 Updating alloy-sol-type-parser v0.8.16 -> v0.8.18 Updating alloy-sol-types v0.8.16 -> v0.8.18 Updating alloy-transport v0.9.1 -> v0.9.2 Updating alloy-transport-http v0.9.1 -> v0.9.2 Updating alloy-transport-ipc v0.9.1 -> v0.9.2 Updating alloy-transport-ws v0.9.1 -> v0.9.2 Updating async-trait v0.1.83 -> v0.1.84 Updating aws-config v1.5.12 -> v1.5.13 Updating aws-runtime v1.5.2 -> v1.5.3 Updating aws-sdk-kms v1.53.0 -> v1.54.0 Updating aws-sdk-sso v1.52.0 -> v1.53.0 Updating aws-sdk-ssooidc v1.53.0 -> v1.54.0 Updating aws-sdk-sts v1.53.0 -> v1.54.0 Updating bstr v1.11.1 -> v1.11.3 Updating cc v1.2.6 -> v1.2.7 Removing diff v0.1.13 Removing hex-literal v0.4.1 Updating instability v0.3.5 -> v0.3.6 Updating jiff v0.1.18 -> v0.1.21 Removing pretty_assertions v1.4.1 Updating schnellru v0.2.3 -> v0.2.4 Updating syn v2.0.93 -> v2.0.94 Updating syn-solidity v0.8.16 -> v0.8.18 Updating tempfile v3.14.0 -> v3.15.0 Updating winnow v0.6.21 -> v0.6.22 note: pass `--verbose` to see 12 unchanged dependencies behind latest Co-authored-by: mattsse <[email protected]> * chore(`config`): use solar for inline config parsing (#9615) * chore(`bind-json`): replace solang with solar (#9616) * chore(deps): bump solar 0.1.1 (#9627) * chore(forge): remove `forge debug` subcommand (#9606) forge: rm subcommand debug Co-authored-by: 9547 <[email protected]> Co-authored-by: zerosnacks <[email protected]> * feat(test): add repro issue8566 testcase (#9617) * feat(test): add Issue8566 testcase Signed-off-by: 9547 <[email protected]> * bump alloy to 0.8.18 Signed-off-by: 9547 <[email protected]> --------- Signed-off-by: 9547 <[email protected]> * chore: standardize use of `opts` / `args` (#9629) * globalopts -> globalargs * consistently use opts for configurations, args for command line arguments * fix: re-remove forge `debug` file (#9631) fix re-remove debug file * feat: remove ethers (#9412) Co-authored-by: DaniPopes <[email protected]> * cargo updated iself * compiles * Fixing the tests * fix: upstream 5e72c69 fix tests (#869) * Rolling back the filtering in the nextest * alloy-zksync back to versioning * Rollback --------- Signed-off-by: jsvisa <[email protected]> Signed-off-by: 9547 <[email protected]> Co-authored-by: Jacob T Firek <[email protected]> Co-authored-by: Yash Atreya <[email protected]> Co-authored-by: grandizzy <[email protected]> Co-authored-by: Arsenii Kulikov <[email protected]> Co-authored-by: anukul <[email protected]> Co-authored-by: Matthias Seitz <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: W <[email protected]> Co-authored-by: zerosnacks <[email protected]> Co-authored-by: zerosnacks <[email protected]> Co-authored-by: DaniPopes <[email protected]> Co-authored-by: Delweng <[email protected]> Co-authored-by: mattsse <[email protected]> Co-authored-by: DaniPopes <[email protected]> Co-authored-by: zhiqiangxu <[email protected]> Co-authored-by: Marquis Shanahan <[email protected]> Co-authored-by: sam bacha <[email protected]> Co-authored-by: 9547 <[email protected]> Co-authored-by: Nisheeth Barthwal <[email protected]>
* Update incorrect documentation in the READ.me (#9538) Update README.md * fix(`anvil`): set `best_number` to `state.block.number` if greater (#9543) fix(`anvil`): set `best_number` correctly while loading state with fork activated * fix(`cast`): reset `env.tx.caller` for impersonated txs (#9544) * fix(`cast`): reset `env.tx.caller` for impersonated txs * test * chore: Add GH attestation for foundry binaries (#9546) Add GH attestation * fix(release): allow contents write permission, run attestation after release created (#9550) fix(release): allow contents write permission, run attestation after release published * chore: bump compilers (#9554) * chore: bump compilers * clippy * fix: account for impersonated tx in configure_tx_env (#9553) * chore: account for impersonated tx in configure_tx_env * nit * fix: read rpc config when using fork cheatcodes (#9547) * read rpc config when using fork cheatcodes * attempt to resolve failed environment variables again * nit: refactor * nit: refactor * fix clippy errors * fix rustfmt errors * run cargofmt * set auth header for fork * remove redundant clone() * Update crates/cheatcodes/src/config.rs --------- Co-authored-by: Matthias Seitz <[email protected]> * chore(deps): weekly `cargo update` (#9560) * feat(cast): add support for beacon proxies in cast impl (#9567) * feat(cast): add support for beacon proxies in cast impl * test: pin test to current block * feat(`cheatcodes`): count assertion for `expectEmit` (#9405) * introduce ExpectEmitTracker * cheats * account for emit accounts + simple testNoEmit * tests: expectCountEmits from specific address * fix * failure tests * fix * fix: account for log data * LogCountMap * fix * nit * test * fix * fix * fix: instantiate log count map in tracker only if log satisfies the checks * nit * nit * nits * doc nits * helper fn * nit * nits * fix * fix * nit * refactor count tests * fix * fix * fix * fix(release): check `env.IS_NIGHTLY` as string (#9568) fix(release): check IS_NIGHTLY as string * Run release workflow on stable tag push (#9575) * chore: update release notes template (#9577) - feat / fixes category per binaries - breaking changes and perf category - restrict summary to max 60 days / max 100 PRs, add full diff and contributors * chore: add contributors in release changelog (#9578) * feat(foundryup): allow multiple installed versions (#9551) * feat(foundryup): allow multiple installed versions * Changes after review: new line after version, -v renamed as -i, create version dir on untar * Update foundryup link repo and contribute URL * Fix --one-top-level not avail in bsd tar * Fix --one-top-level not avail in bsd tar * update docs * Err if no version provided to use --------- Co-authored-by: zerosnacks <[email protected]> * chore: bump workspace version to `0.3.0` (#9580) bump to 0.3.0 * Update CI workflow template to unpin from `nightly` explicitly, relying on `foundry-toolchain` default (#9573) * default CI workflow template to stable as opposed to nightly, related: foundry-rs/foundry-toolchain#60 * remove pinning to stable in workflow file, rely on default in foundry-toolchain - now being nightly, becoming stable * chore: testFail* deprecation warning (#9581) * chore: testFail* deprecation warning * test * fix * chore(tests): bump forge-std version (#9584) * chore: bump forge-std version used for tests * run CI * fix tests * fix gas --------- Co-authored-by: DaniPopes <[email protected]> Co-authored-by: zerosnacks <[email protected]> * chore(`foundryup`): default to stable if no specific version is passed in (#9585) * default to stable if no specific version is passed in * update mention, defaults to stable now * chore(deps): weekly `cargo update` (#9588) * feat(cast): pretty print other receipt fields (#9589) * fix(cast): pretty print other receipt fields Signed-off-by: jsvisa <[email protected]> * feat(cast): add other receipt fields pretty test Signed-off-by: jsvisa <[email protected]> * fix(ui): receipt column length 20 Signed-off-by: jsvisa <[email protected]> * fmt Signed-off-by: jsvisa <[email protected]> * fix receipt indent test Signed-off-by: jsvisa <[email protected]> * fix test case /2 Signed-off-by: jsvisa <[email protected]> * fix revert reason indent Signed-off-by: jsvisa <[email protected]> --------- Signed-off-by: jsvisa <[email protected]> * chore(deps): weekly `cargo update` (#9599) Locking 29 packages to latest compatible versions Updating alloy-chains v0.1.49 -> v0.1.51 Updating alloy-trie v0.7.6 -> v0.7.7 Updating anyhow v1.0.94 -> v1.0.95 Updating aws-config v1.5.11 -> v1.5.12 Updating aws-runtime v1.5.1 -> v1.5.2 Updating aws-sdk-kms v1.52.0 -> v1.53.0 Updating aws-sdk-sso v1.51.0 -> v1.52.0 Updating aws-sdk-ssooidc v1.52.0 -> v1.53.0 Updating aws-sdk-sts v1.52.0 -> v1.53.0 Updating aws-smithy-async v1.2.2 -> v1.2.3 Updating aws-smithy-runtime v1.7.5 -> v1.7.6 Updating aws-smithy-types v1.2.10 -> v1.2.11 Updating bon v3.3.0 -> v3.3.2 Updating bon-macros v3.3.0 -> v3.3.2 Updating cc v1.2.5 -> v1.2.6 Updating gix-date v0.9.2 -> v0.9.3 Updating glob v0.3.1 -> v0.3.2 Updating jiff v0.1.15 -> v0.1.16 Updating nybbles v0.2.1 -> v0.3.0 Updating quote v1.0.37 -> v1.0.38 Updating reqwest v0.12.9 -> v0.12.11 Updating rustversion v1.0.18 -> v1.0.19 Updating scc v2.2.6 -> v2.3.0 Updating serde v1.0.216 -> v1.0.217 Updating serde_derive v1.0.216 -> v1.0.217 Updating syn v2.0.90 -> v2.0.93 Updating tracing-tracy v0.11.3 -> v0.11.4 Updating tracy-client v0.17.6 -> v0.18.0 Updating unicase v2.8.0 -> v2.8.1 note: pass `--verbose` to see 13 unchanged dependencies behind latest Co-authored-by: mattsse <[email protected]> * chore: make clippy happy (#9601) * chore: make clippy happy * allow literals tring with formatting args global * chore(fmt): tx fields indent with the same whitespaces (#9603) chore(fmt): follow the same indent rules of other fields Signed-off-by: jsvisa <[email protected]> * chore: fix flaky inline config test (#9591) * feat: update revm 19 alloy 09 (#9605) * feat: update revm 19 alloy 09 * clippy * updata test * add back max data gas check * chore(deps): bump alloys (#9613) * add comment to `-r` option about default value (#9571) add comment to -r option about default value * fix(anvil): ipc append a newline (#9608) * fix(anvil): ipc append a newline Signed-off-by: 9547 <[email protected]> * use put_u8 instead of extend from slice Signed-off-by: 9547 <[email protected]> --------- Signed-off-by: 9547 <[email protected]> * chore: dedup errors in eyre handler (#9612) * fix(`evm`): P256Verify address (#9618) * typo: EtherScan -> Etherscan (#9607) Signed-off-by: 9547 <[email protected]> Co-authored-by: Matthias Seitz <[email protected]> * chore(git): enhance rust diffing (#9596) This has to be explicitly enabled for git to utilize its enhanced rust diffing, evidently. ref: rust-lang/rust#78882 Co-authored-by: zerosnacks <[email protected]> * chore(deps): weekly `cargo update` (#9623) Locking 56 packages to latest compatible versions Updating alloy-chains v0.1.51 -> v0.1.52 Updating alloy-consensus v0.9.1 -> v0.9.2 Updating alloy-consensus-any v0.9.1 -> v0.9.2 Updating alloy-contract v0.9.1 -> v0.9.2 Updating alloy-dyn-abi v0.8.16 -> v0.8.18 Updating alloy-eips v0.9.1 -> v0.9.2 Updating alloy-genesis v0.9.1 -> v0.9.2 Updating alloy-json-abi v0.8.16 -> v0.8.18 Updating alloy-json-rpc v0.9.1 -> v0.9.2 Updating alloy-network v0.9.1 -> v0.9.2 Updating alloy-network-primitives v0.9.1 -> v0.9.2 Updating alloy-node-bindings v0.9.1 -> v0.9.2 Updating alloy-primitives v0.8.16 -> v0.8.18 Updating alloy-provider v0.9.1 -> v0.9.2 Updating alloy-pubsub v0.9.1 -> v0.9.2 Updating alloy-rpc-client v0.9.1 -> v0.9.2 Updating alloy-rpc-types v0.9.1 -> v0.9.2 Updating alloy-rpc-types-anvil v0.9.1 -> v0.9.2 Updating alloy-rpc-types-any v0.9.1 -> v0.9.2 Updating alloy-rpc-types-debug v0.9.1 -> v0.9.2 Updating alloy-rpc-types-engine v0.9.1 -> v0.9.2 Updating alloy-rpc-types-eth v0.9.1 -> v0.9.2 Updating alloy-rpc-types-trace v0.9.1 -> v0.9.2 Updating alloy-rpc-types-txpool v0.9.1 -> v0.9.2 Updating alloy-serde v0.9.1 -> v0.9.2 Updating alloy-signer v0.9.1 -> v0.9.2 Updating alloy-signer-aws v0.9.1 -> v0.9.2 Updating alloy-signer-gcp v0.9.1 -> v0.9.2 Updating alloy-signer-ledger v0.9.1 -> v0.9.2 Updating alloy-signer-local v0.9.1 -> v0.9.2 Updating alloy-signer-trezor v0.9.1 -> v0.9.2 Updating alloy-sol-macro v0.8.16 -> v0.8.18 Updating alloy-sol-macro-expander v0.8.16 -> v0.8.18 Updating alloy-sol-macro-input v0.8.16 -> v0.8.18 Updating alloy-sol-type-parser v0.8.16 -> v0.8.18 Updating alloy-sol-types v0.8.16 -> v0.8.18 Updating alloy-transport v0.9.1 -> v0.9.2 Updating alloy-transport-http v0.9.1 -> v0.9.2 Updating alloy-transport-ipc v0.9.1 -> v0.9.2 Updating alloy-transport-ws v0.9.1 -> v0.9.2 Updating async-trait v0.1.83 -> v0.1.84 Updating aws-config v1.5.12 -> v1.5.13 Updating aws-runtime v1.5.2 -> v1.5.3 Updating aws-sdk-kms v1.53.0 -> v1.54.0 Updating aws-sdk-sso v1.52.0 -> v1.53.0 Updating aws-sdk-ssooidc v1.53.0 -> v1.54.0 Updating aws-sdk-sts v1.53.0 -> v1.54.0 Updating bstr v1.11.1 -> v1.11.3 Updating cc v1.2.6 -> v1.2.7 Removing diff v0.1.13 Removing hex-literal v0.4.1 Updating instability v0.3.5 -> v0.3.6 Updating jiff v0.1.18 -> v0.1.21 Removing pretty_assertions v1.4.1 Updating schnellru v0.2.3 -> v0.2.4 Updating syn v2.0.93 -> v2.0.94 Updating syn-solidity v0.8.16 -> v0.8.18 Updating tempfile v3.14.0 -> v3.15.0 Updating winnow v0.6.21 -> v0.6.22 note: pass `--verbose` to see 12 unchanged dependencies behind latest Co-authored-by: mattsse <[email protected]> * chore(`config`): use solar for inline config parsing (#9615) * chore(`bind-json`): replace solang with solar (#9616) * chore(deps): bump solar 0.1.1 (#9627) * chore(forge): remove `forge debug` subcommand (#9606) forge: rm subcommand debug Co-authored-by: 9547 <[email protected]> Co-authored-by: zerosnacks <[email protected]> * feat(test): add repro issue8566 testcase (#9617) * feat(test): add Issue8566 testcase Signed-off-by: 9547 <[email protected]> * bump alloy to 0.8.18 Signed-off-by: 9547 <[email protected]> --------- Signed-off-by: 9547 <[email protected]> * chore: standardize use of `opts` / `args` (#9629) * globalopts -> globalargs * consistently use opts for configurations, args for command line arguments * fix: re-remove forge `debug` file (#9631) fix re-remove debug file * feat: remove ethers (#9412) Co-authored-by: DaniPopes <[email protected]> * Revert "Merge upstream commit 5e72c69" This reverts commit 1e8bad0, reversing changes made to 7b50143. --------- Signed-off-by: jsvisa <[email protected]> Signed-off-by: 9547 <[email protected]> Co-authored-by: Jacob T Firek <[email protected]> Co-authored-by: Yash Atreya <[email protected]> Co-authored-by: grandizzy <[email protected]> Co-authored-by: Arsenii Kulikov <[email protected]> Co-authored-by: anukul <[email protected]> Co-authored-by: Matthias Seitz <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: W <[email protected]> Co-authored-by: zerosnacks <[email protected]> Co-authored-by: zerosnacks <[email protected]> Co-authored-by: DaniPopes <[email protected]> Co-authored-by: Delweng <[email protected]> Co-authored-by: mattsse <[email protected]> Co-authored-by: DaniPopes <[email protected]> Co-authored-by: zhiqiangxu <[email protected]> Co-authored-by: Marquis Shanahan <[email protected]> Co-authored-by: sam bacha <[email protected]> Co-authored-by: 9547 <[email protected]>
I found this trick at https://tekin.co.uk/2020/10/better-git-diff-output-for-ruby-python-elixir-and-more
Before the hunk headers for changes in methods would refer to the impl:
After the hunk headers refer to the actual function signature:
When the function signature is visible, it will use the function
signature of the previous method as hunk header: