Skip to content

Commit 79e9716

Browse files
committed
Auto merge of #117843 - Mark-Simulacrum:stable-next, r=Mark-Simulacrum
[stable] Prepare 1.74.0 release https://forge.rust-lang.org/release/process.html#promote-branches-t-3-days-monday Also backports: * Disabling specialization as an alternative backport of "Fix excessive initialization and reads beyond EOF in io::copy(_, Vec<u8>) specialization #117576" * coverage: Avoid creating malformed macro name spans #117827 r? `@Mark-Simulacrum`
2 parents 22d4a4f + 7e1d1d4 commit 79e9716

File tree

8 files changed

+314
-55
lines changed

8 files changed

+314
-55
lines changed

RELEASES.md

+233
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,235 @@
1+
Version 1.74.0 (2023-11-16)
2+
==========================
3+
4+
<a id="1.74.0-Language"></a>
5+
6+
Language
7+
--------
8+
9+
- [Codify that `std::mem::Discriminant<T>` does not depend on any lifetimes in T](https://github.com/rust-lang/rust/pull/104299/)
10+
- [Replace `private_in_public` lint with `private_interfaces` and `private_bounds` per RFC 2145](https://github.com/rust-lang/rust/pull/113126/)
11+
Read more in [RFC 2145](https://rust-lang.github.io/rfcs/2145-type-privacy.html).
12+
- [Allow explicit `#[repr(Rust)]`](https://github.com/rust-lang/rust/pull/114201/)
13+
- [closure field capturing: don't depend on alignment of packed fields](https://github.com/rust-lang/rust/pull/115315/)
14+
- [Enable MIR-based drop-tracking for `async` blocks](https://github.com/rust-lang/rust/pull/107421/)
15+
16+
<a id="1.74.0-Compiler"></a>
17+
18+
Compiler
19+
--------
20+
21+
- [stabilize combining +bundle and +whole-archive link modifiers](https://github.com/rust-lang/rust/pull/113301/)
22+
- [Stabilize `PATH` option for `--print KIND=PATH`](https://github.com/rust-lang/rust/pull/114183/)
23+
- [Enable ASAN/LSAN/TSAN for `*-apple-ios-macabi`](https://github.com/rust-lang/rust/pull/115644/)
24+
- [Promote loongarch64-unknown-none* to Tier 2](https://github.com/rust-lang/rust/pull/115368/)
25+
- [Add `i686-pc-windows-gnullvm` as a tier 3 target](https://github.com/rust-lang/rust/pull/115687/)
26+
27+
<a id="1.74.0-Libraries"></a>
28+
29+
Libraries
30+
---------
31+
32+
- [Implement `From<OwnedFd/Handle>` for ChildStdin/out/err](https://github.com/rust-lang/rust/pull/98704/)
33+
- [Implement `From<{&,&mut} [T; N]>` for `Vec<T>` where `T: Clone`](https://github.com/rust-lang/rust/pull/111278/)
34+
- [impl Step for IP addresses](https://github.com/rust-lang/rust/pull/113748/)
35+
- [Implement `From<[T; N]>` for `Rc<[T]>` and `Arc<[T]>`](https://github.com/rust-lang/rust/pull/114041/)
36+
- [`impl TryFrom<char> for u16`](https://github.com/rust-lang/rust/pull/114065/)
37+
- [Stabilize `io_error_other` feature](https://github.com/rust-lang/rust/pull/115453/)
38+
- [Stabilize the `Saturating` type](https://github.com/rust-lang/rust/pull/115477/)
39+
- [Stabilize const_transmute_copy](https://github.com/rust-lang/rust/pull/115520/)
40+
41+
<a id="1.74.0-Stabilized-APIs"></a>
42+
43+
Stabilized APIs
44+
---------------
45+
46+
- [`core::num::Saturating`](https://doc.rust-lang.org/stable/std/num/struct.Saturating.html)
47+
- [`impl From<io::Stdout> for std::process::Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStdout%3E-for-Stdio)
48+
- [`impl From<io::Stderr> for std::process::Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStderr%3E-for-Stdio)
49+
- [`impl From<OwnedHandle> for std::process::Child{Stdin, Stdout, Stderr}`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStderr%3E-for-Stdio)
50+
- [`impl From<OwnedFd> for std::process::Child{Stdin, Stdout, Stderr}`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStderr%3E-for-Stdio)
51+
- [`std::ffi::OsString::from_encoded_bytes_unchecked`](https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.from_encoded_bytes_unchecked)
52+
- [`std::ffi::OsString::into_encoded_bytes`](https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.into_encoded_bytes)
53+
- [`std::ffi::OsStr::from_encoded_bytes_unchecked`](https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.from_encoded_bytes_unchecked)
54+
- [`std::ffi::OsStr::as_encoded_bytes`](https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.as_encoded_bytes)
55+
- [`std::io::Error::other`](https://doc.rust-lang.org/stable/std/io/struct.Error.html#method.other)
56+
- [`impl TryFrom<char> for u16`](https://doc.rust-lang.org/stable/std/primitive.u16.html#impl-TryFrom%3Cchar%3E-for-u16)
57+
- [`impl<T: Clone, const N: usize> From<&[T; N]> for Vec<T>`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#impl-From%3C%26%5BT;+N%5D%3E-for-Vec%3CT,+Global%3E)
58+
- [`impl<T: Clone, const N: usize> From<&mut [T; N]> for Vec<T>`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#impl-From%3C%26mut+%5BT;+N%5D%3E-for-Vec%3CT,+Global%3E)
59+
- [`impl<T, const N: usize> From<[T; N]> for Arc<[T]>`](https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#impl-From%3C%5BT;+N%5D%3E-for-Arc%3C%5BT%5D,+Global%3E)
60+
- [`impl<T, const N: usize> From<[T; N]> for Rc<[T]>`](https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#impl-From%3C%5BT;+N%5D%3E-for-Rc%3C%5BT%5D,+Global%3E)
61+
62+
These APIs are now stable in const contexts:
63+
64+
- [`core::mem::transmute_copy`](https://doc.rust-lang.org/beta/std/mem/fn.transmute_copy.html)
65+
- [`str::is_ascii`](https://doc.rust-lang.org/beta/std/primitive.str.html#method.is_ascii)
66+
- [`[u8]::is_ascii`](https://doc.rust-lang.org/beta/std/primitive.slice.html#method.is_ascii)
67+
68+
<a id="1.74.0-Cargo"></a>
69+
70+
Cargo
71+
-----
72+
73+
- [fix: Set MSRV for internal packages](https://github.com/rust-lang/cargo/pull/12381/)
74+
- [config: merge lists in precedence order](https://github.com/rust-lang/cargo/pull/12515/)
75+
- [fix(update): Clarify meaning of --aggressive as --recursive](https://github.com/rust-lang/cargo/pull/12544/)
76+
- [fix(update): Make `-p` more convenient by being positional](https://github.com/rust-lang/cargo/pull/12545/)
77+
- [feat(help): Add styling to help output ](https://github.com/rust-lang/cargo/pull/12578/)
78+
- [feat(pkgid): Allow incomplete versions when unambigious](https://github.com/rust-lang/cargo/pull/12614/)
79+
- [feat: stabilize credential-process and registry-auth](https://github.com/rust-lang/cargo/pull/12649/)
80+
- [feat(cli): Add '-n' to dry-run](https://github.com/rust-lang/cargo/pull/12660/)
81+
- [Add support for `target.'cfg(..)'.linker`](https://github.com/rust-lang/cargo/pull/12535/)
82+
- [Stabilize `--keep-going`](https://github.com/rust-lang/cargo/pull/12568/)
83+
- [feat: Stabilize lints](https://github.com/rust-lang/cargo/pull/12648/)
84+
85+
<a id="1.74.0-Rustdoc"></a>
86+
87+
Rustdoc
88+
-------
89+
90+
- [Add warning block support in rustdoc](https://github.com/rust-lang/rust/pull/106561/)
91+
- [Accept additional user-defined syntax classes in fenced code blocks](https://github.com/rust-lang/rust/pull/110800/)
92+
- [rustdoc-search: add support for type parameters](https://github.com/rust-lang/rust/pull/112725/)
93+
- [rustdoc: show inner enum and struct in type definition for concrete type](https://github.com/rust-lang/rust/pull/114855/)
94+
95+
<a id="1.74.0-Compatibility-Notes"></a>
96+
97+
Compatibility Notes
98+
-------------------
99+
100+
- [Raise minimum supported Apple OS versions](https://github.com/rust-lang/rust/pull/104385/)
101+
- [make Cell::swap panic if the Cells partially overlap](https://github.com/rust-lang/rust/pull/114795/)
102+
- [Reject invalid crate names in `--extern`](https://github.com/rust-lang/rust/pull/116001/)
103+
- [Don't resolve generic impls that may be shadowed by dyn built-in impls](https://github.com/rust-lang/rust/pull/114941/)
104+
105+
<a id="1.74.0-Internal-Changes"></a>
106+
107+
Internal Changes
108+
----------------
109+
110+
These changes do not affect any public interfaces of Rust, but they represent
111+
significant improvements to the performance or internals of rustc and related
112+
tools.
113+
114+
None this cycle.
115+
116+
Version 1.73.0 (2023-10-05)
117+
==========================
118+
119+
<a id="1.73.0-Language"></a>
120+
121+
Language
122+
--------
123+
124+
- [Uplift `clippy::fn_null_check` lint as `useless_ptr_null_checks`.](https://github.com/rust-lang/rust/pull/111717/)
125+
- [Make `noop_method_call` warn by default.](https://github.com/rust-lang/rust/pull/111916/)
126+
- [Support interpolated block for `try` and `async` in macros.](https://github.com/rust-lang/rust/pull/112953/)
127+
- [Make `unconditional_recursion` lint detect recursive drops.](https://github.com/rust-lang/rust/pull/113902/)
128+
- [Future compatibility warning for some impls being incorrectly considered not overlapping.](https://github.com/rust-lang/rust/pull/114023/)
129+
- [The `invalid_reference_casting` lint is now **deny-by-default** (instead of allow-by-default)](https://github.com/rust-lang/rust/pull/112431)
130+
131+
<a id="1.73.0-Compiler"></a>
132+
133+
Compiler
134+
--------
135+
136+
- [Write version information in a `.comment` section like GCC/Clang.](https://github.com/rust-lang/rust/pull/97550/)
137+
- [Add documentation on v0 symbol mangling.](https://github.com/rust-lang/rust/pull/97571/)
138+
- [Stabilize `extern "thiscall"` and `"thiscall-unwind"` ABIs.](https://github.com/rust-lang/rust/pull/114562/)
139+
- [Only check outlives goals on impl compared to trait.](https://github.com/rust-lang/rust/pull/109356/)
140+
- [Infer type in irrefutable slice patterns with fixed length as array.](https://github.com/rust-lang/rust/pull/113199/)
141+
- [Discard default auto trait impls if explicit ones exist.](https://github.com/rust-lang/rust/pull/113312/)
142+
- Add several new tier 3 targets:
143+
- [`aarch64-unknown-teeos`](https://github.com/rust-lang/rust/pull/113480/)
144+
- [`csky-unknown-linux-gnuabiv2`](https://github.com/rust-lang/rust/pull/113658/)
145+
- [`riscv64-linux-android`](https://github.com/rust-lang/rust/pull/112858/)
146+
- [`riscv64gc-unknown-hermit`](https://github.com/rust-lang/rust/pull/114004/)
147+
- [`x86_64-unikraft-linux-musl`](https://github.com/rust-lang/rust/pull/113411/)
148+
- [`x86_64-unknown-linux-ohos`](https://github.com/rust-lang/rust/pull/113061/)
149+
- [Add `wasm32-wasi-preview1-threads` as a tier 2 target.](https://github.com/rust-lang/rust/pull/112922/)
150+
151+
Refer to Rust's [platform support page][platform-support-doc]
152+
for more information on Rust's tiered platform support.
153+
154+
<a id="1.73.0-Libraries"></a>
155+
156+
Libraries
157+
---------
158+
159+
- [Add `Read`, `Write` and `Seek` impls for `Arc<File>`.](https://github.com/rust-lang/rust/pull/94748/)
160+
- [Merge functionality of `io::Sink` into `io::Empty`.](https://github.com/rust-lang/rust/pull/98154/)
161+
- [Implement `RefUnwindSafe` for `Backtrace`](https://github.com/rust-lang/rust/pull/100455/)
162+
- [Make `ExitStatus` implement `Default`](https://github.com/rust-lang/rust/pull/106425/)
163+
- [`impl SliceIndex<str> for (Bound<usize>, Bound<usize>)`](https://github.com/rust-lang/rust/pull/111081/)
164+
- [Change default panic handler message format.](https://github.com/rust-lang/rust/pull/112849/)
165+
- [Cleaner `assert_eq!` & `assert_ne!` panic messages.](https://github.com/rust-lang/rust/pull/111071/)
166+
- [Correct the (deprecated) Android `stat` struct definitions.](https://github.com/rust-lang/rust/pull/113130/)
167+
168+
<a id="1.73.0-Stabilized-APIs"></a>
169+
170+
Stabilized APIs
171+
---------------
172+
173+
- [Unsigned `{integer}::div_ceil`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.div_ceil)
174+
- [Unsigned `{integer}::next_multiple_of`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.next_multiple_of)
175+
- [Unsigned `{integer}::checked_next_multiple_of`](https://doc.rust-lang.org/stable/std/primitive.u32.html#method.checked_next_multiple_of)
176+
- [`std::ffi::FromBytesUntilNulError`](https://doc.rust-lang.org/stable/std/ffi/struct.FromBytesUntilNulError.html)
177+
- [`std::os::unix::fs::chown`](https://doc.rust-lang.org/stable/std/os/unix/fs/fn.chown.html)
178+
- [`std::os::unix::fs::fchown`](https://doc.rust-lang.org/stable/std/os/unix/fs/fn.fchown.html)
179+
- [`std::os::unix::fs::lchown`](https://doc.rust-lang.org/stable/std/os/unix/fs/fn.lchown.html)
180+
- [`LocalKey::<Cell<T>>::get`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.get)
181+
- [`LocalKey::<Cell<T>>::set`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.set)
182+
- [`LocalKey::<Cell<T>>::take`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.take)
183+
- [`LocalKey::<Cell<T>>::replace`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.replace)
184+
- [`LocalKey::<RefCell<T>>::with_borrow`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.with_borrow)
185+
- [`LocalKey::<RefCell<T>>::with_borrow_mut`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.with_borrow_mut)
186+
- [`LocalKey::<RefCell<T>>::set`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.set-1)
187+
- [`LocalKey::<RefCell<T>>::take`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.take-1)
188+
- [`LocalKey::<RefCell<T>>::replace`](https://doc.rust-lang.org/stable/std/thread/struct.LocalKey.html#method.replace-1)
189+
190+
These APIs are now stable in const contexts:
191+
192+
- [`rc::Weak::new`](https://doc.rust-lang.org/stable/alloc/rc/struct.Weak.html#method.new)
193+
- [`sync::Weak::new`](https://doc.rust-lang.org/stable/alloc/sync/struct.Weak.html#method.new)
194+
- [`NonNull::as_ref`](https://doc.rust-lang.org/stable/core/ptr/struct.NonNull.html#method.as_ref)
195+
196+
<a id="1.73.0-Cargo"></a>
197+
198+
Cargo
199+
-----
200+
201+
- [Encode URL params correctly for `SourceId` in `Cargo.lock`.](https://github.com/rust-lang/cargo/pull/12280/)
202+
- [Bail out an error when using `cargo::` in custom build script.](https://github.com/rust-lang/cargo/pull/12332/)
203+
204+
<a id="1.73.0-Misc"></a>
205+
206+
Misc
207+
----
208+
209+
<a id="1.73.0-Compatibility-Notes"></a>
210+
211+
Compatibility Notes
212+
-------------------
213+
214+
- [Update the minimum external LLVM to 15.](https://github.com/rust-lang/rust/pull/114148/)
215+
- [Check for non-defining uses of return position `impl Trait`.](https://github.com/rust-lang/rust/pull/112842/)
216+
217+
<a id="1.73.0-Internal-Changes"></a>
218+
219+
Internal Changes
220+
----------------
221+
222+
These changes do not affect any public interfaces of Rust, but they represent
223+
significant improvements to the performance or internals of rustc and related
224+
tools.
225+
226+
- [Remove LLVM pointee types, supporting only opaque pointers.](https://github.com/rust-lang/rust/pull/105545/)
227+
- [Port PGO/LTO/BOLT optimized build pipeline to Rust.](https://github.com/rust-lang/rust/pull/112235/)
228+
- [Replace in-tree `rustc_apfloat` with the new version of the crate.](https://github.com/rust-lang/rust/pull/113843/)
229+
- [Update to LLVM 17.](https://github.com/rust-lang/rust/pull/114048/)
230+
- [Add `internal_features` lint for internal unstable features.](https://github.com/rust-lang/rust/pull/108955/)
231+
- [Mention style for new syntax in tracking issue template.](https://github.com/rust-lang/rust/pull/113586/)
232+
1233
Version 1.72.1 (2023-09-19)
2234
===========================
3235

@@ -112,6 +344,7 @@ Compatibility Notes
112344
this should only impact users of other registries, or people who don't publish
113345
to a registry.
114346
[#12291](https://github.com/rust-lang/cargo/pull/12291)
347+
- [Demoted `mips*-unknown-linux-gnu*` targets from host tier 2 to target tier 3 support.](https://github.com/rust-lang/rust/pull/113274)
115348

116349
Version 1.71.1 (2023-08-03)
117350
===========================

compiler/rustc_mir_transform/src/coverage/spans.rs

+6
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,12 @@ impl<'a, 'tcx> CoverageSpans<'a, 'tcx> {
427427
let merged_prefix_len = self.curr_original_span.lo() - self.curr().span.lo();
428428
let after_macro_bang =
429429
merged_prefix_len + BytePos(visible_macro.as_str().len() as u32 + 1);
430+
if self.curr().span.lo() + after_macro_bang > self.curr().span.hi() {
431+
// Something is wrong with the macro name span;
432+
// return now to avoid emitting malformed mappings.
433+
// FIXME(#117788): Track down why this happens.
434+
return;
435+
}
430436
let mut macro_name_cov = self.curr().clone();
431437
self.curr_mut().span =
432438
self.curr().span.with_lo(self.curr().span.lo() + after_macro_bang);

library/std/src/io/copy.rs

-42
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
use super::{BorrowedBuf, BufReader, BufWriter, Read, Result, Write, DEFAULT_BUF_SIZE};
22
use crate::alloc::Allocator;
3-
use crate::cmp;
43
use crate::collections::VecDeque;
54
use crate::io::IoSlice;
65
use crate::mem::MaybeUninit;
@@ -255,47 +254,6 @@ impl<I: Write + ?Sized> BufferedWriterSpec for BufWriter<I> {
255254
}
256255
}
257256

258-
impl<A: Allocator> BufferedWriterSpec for Vec<u8, A> {
259-
fn buffer_size(&self) -> usize {
260-
cmp::max(DEFAULT_BUF_SIZE, self.capacity() - self.len())
261-
}
262-
263-
fn copy_from<R: Read + ?Sized>(&mut self, reader: &mut R) -> Result<u64> {
264-
let mut bytes = 0;
265-
266-
// avoid allocating before we have determined that there's anything to read
267-
if self.capacity() == 0 {
268-
bytes = stack_buffer_copy(&mut reader.take(DEFAULT_BUF_SIZE as u64), self)?;
269-
if bytes == 0 {
270-
return Ok(0);
271-
}
272-
}
273-
274-
loop {
275-
self.reserve(DEFAULT_BUF_SIZE);
276-
let mut buf: BorrowedBuf<'_> = self.spare_capacity_mut().into();
277-
match reader.read_buf(buf.unfilled()) {
278-
Ok(()) => {}
279-
Err(e) if e.is_interrupted() => continue,
280-
Err(e) => return Err(e),
281-
};
282-
283-
let read = buf.filled().len();
284-
if read == 0 {
285-
break;
286-
}
287-
288-
// SAFETY: BorrowedBuf guarantees all of its filled bytes are init
289-
// and the number of read bytes can't exceed the spare capacity since
290-
// that's what the buffer is borrowing from.
291-
unsafe { self.set_len(self.len() + read) };
292-
bytes += read as u64;
293-
}
294-
295-
Ok(bytes)
296-
}
297-
}
298-
299257
fn stack_buffer_copy<R: Read + ?Sized, W: Write + ?Sized>(
300258
reader: &mut R,
301259
writer: &mut W,

library/std/src/io/copy/tests.rs

-12
Original file line numberDiff line numberDiff line change
@@ -80,18 +80,6 @@ fn copy_specializes_bufreader() {
8080
);
8181
}
8282

83-
#[test]
84-
fn copy_specializes_to_vec() {
85-
let cap = 123456;
86-
let mut source = ShortReader { cap, observed_buffer: 0, read_size: 1337 };
87-
let mut sink = Vec::new();
88-
assert_eq!(cap as u64, io::copy(&mut source, &mut sink).unwrap());
89-
assert!(
90-
source.observed_buffer > DEFAULT_BUF_SIZE,
91-
"expected a large buffer to be provided to the reader"
92-
);
93-
}
94-
9583
#[test]
9684
fn copy_specializes_from_vecdeque() {
9785
let mut source = VecDeque::with_capacity(100 * 1024);

src/ci/channel

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
beta
1+
stable
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// edition: 2021
2+
3+
#[macro_export]
4+
macro_rules! macro_that_defines_a_function {
5+
(fn $name:ident () $body:tt) => {
6+
fn $name () -> () $body
7+
}
8+
}
9+
10+
// Non-executable comment.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
$DIR/auxiliary/macro_name_span_helper.rs:
2+
LL| |// edition: 2021
3+
LL| |
4+
LL| |#[macro_export]
5+
LL| |macro_rules! macro_that_defines_a_function {
6+
LL| | (fn $name:ident () $body:tt) => {
7+
LL| 1| fn $name () -> () $body
8+
LL| | }
9+
LL| |}
10+
LL| |
11+
LL| |// Non-executable comment.
12+
13+
$DIR/macro_name_span.rs:
14+
LL| |// edition: 2021
15+
LL| |
16+
LL| |// Regression test for <https://github.com/rust-lang/rust/issues/117788>.
17+
LL| |// Under some circumstances, the heuristics that detect macro name spans can
18+
LL| |// get confused and produce incorrect spans beyond the bounds of the span
19+
LL| |// being processed.
20+
LL| |
21+
LL| |// aux-build: macro_name_span_helper.rs
22+
LL| |extern crate macro_name_span_helper;
23+
LL| |
24+
LL| 1|fn main() {
25+
LL| 1| affected_function();
26+
LL| 1|}
27+
LL| |
28+
LL| |macro_rules! macro_with_an_unreasonably_and_egregiously_long_name {
29+
LL| | () => {
30+
LL| | println!("hello");
31+
LL| | };
32+
LL| |}
33+
LL| |
34+
LL| |macro_name_span_helper::macro_that_defines_a_function! {
35+
LL| | fn affected_function() {
36+
LL| | macro_with_an_unreasonably_and_egregiously_long_name!();
37+
LL| | }
38+
LL| |}
39+

0 commit comments

Comments
 (0)