Skip to content

Rollup of 17 pull requests #143039

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

Closed
wants to merge 40 commits into from

Conversation

workingjubilee
Copy link
Member

@workingjubilee workingjubilee commented Jun 26, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

the8472 and others added 30 commits June 15, 2025 22:40
No need to call into fold when the first item is already None,
this avoids some redundant work for empty iterators.

"But it uses Fuse" one might want to protest, but Fuse is specialized
and may call into the inner iterator anyway.
It is currently possible to create a dangling `Weak` to a DST by
calling `Weak::new()` for a sized type, then doing an unsized coercion.
Therefore, the comments are wrong.

These comments were added in <rust-lang#73845>.
As far as I can tell, the guarantee in the comment was only previously
used in the `as_ptr` method. However, the current implementation of
`as_ptr` no longer relies on this guarantee.
```
error[E0382]: borrow of moved value: `x`
  --> $DIR/moves-based-on-type-capture-clause-bad.rs:9:20
   |
LL |     let x = "Hello world!".to_string();
   |         - move occurs because `x` has type `String`, which does not implement the `Copy` trait
LL |     thread::spawn(move || {
   |                   ------- value moved into closure here
LL |         println!("{}", x);
   |                        - variable moved due to use in closure
LL |     });
LL |     println!("{}", x);
   |                    ^ value borrowed here after move
   |
   = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider cloning the value before moving it into the closure
   |
LL ~     let value = x.clone();
LL ~     thread::spawn(move || {
LL ~         println!("{}", value);
   |
```
If we ever start testing every edition, using a new keyword unnecessarily will cause divergent output, so pre-emptively change `gen` into `generator`.
In order to expose edition dependent divergences in some tests in the test suite, add explicit `edition` annotations. Some of these tests might require additional work to *avoid* the divergences, as they might have been unintentional. These are not exhaustive changes, purely opportunistic while looking at something else.
Suggest cloning `Arc` moved into closure

```
error[E0382]: borrow of moved value: `x`
  --> $DIR/moves-based-on-type-capture-clause-bad.rs:9:20
   |
LL |     let x = "Hello world!".to_string();
   |         - move occurs because `x` has type `String`, which does not implement the `Copy` trait
LL |     thread::spawn(move || {
   |                   ------- value moved into closure here
LL |         println!("{}", x);
   |                        - variable moved due to use in closure
LL |     });
LL |     println!("{}", x);
   |                    ^ value borrowed here after move
   |
   = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider cloning the value before moving it into the closure
   |
LL ~     let value = x.clone();
LL ~     thread::spawn(move || {
LL ~         println!("{}", value);
   |
```

Fix rust-lang#104232.
Simplify `ObligationCauseCode::IfExpression`

This originally started out as an experiment to do less incremental invalidation by deferring the span operations that happen on the good path in `check_expr_if`, but it ended up not helping much (or at least not showing up in our incremental tests).

As a side-effect though, I think the code is a lot cleaner and there are modest diagnostics improvements with overlapping spans, so I think it's still worth landing.
…eyouxu

make `tidy-alphabetical` use a natural sort

The idea here is that these lines should be correctly sorted, even though a naive string comparison would say they are not:

```
foo2
foo10
```

This is the ["natural sort order"](https://en.wikipedia.org/wiki/Natural_sort_order).

There is more discussion in [#t-compiler/help > tidy natural sort](https://rust-lang.zulipchat.com/#narrow/channel/182449-t-compiler.2Fhelp/topic/tidy.20natural.20sort/with/519111079)

Unfortunately, no standard sorting tools are smart enough to to this automatically (casting some doubt on whether we should make this change). Here are some sort outputs:

```
> cat foo.txt | sort
foo
foo1
foo10
foo2
mp
mp1e2
np",
np1e2",
> cat foo.txt | sort -n
foo
foo1
foo10
foo2
mp
mp1e2
np",
np1e2",
> cat foo.txt | sort -V
foo
foo1
foo2
foo10
mp
mp1e2
np1e2",
np",
```

Disappointingly, "numeric" sort does not actually have the behavior we want. It only sorts by numeric value if the line starts with a number. The "version" sort looks promising, but does something very unintuitive if you look at the final 4 values. None of the other options seem to have the desired behavior in all cases:

```
  -b, --ignore-leading-blanks  ignore leading blanks
  -d, --dictionary-order      consider only blanks and alphanumeric characters
  -f, --ignore-case           fold lower case to upper case characters
  -g, --general-numeric-sort  compare according to general numerical value
  -i, --ignore-nonprinting    consider only printable characters
  -M, --month-sort            compare (unknown) < 'JAN' < ... < 'DEC'
  -h, --human-numeric-sort    compare human readable numbers (e.g., 2K 1G)
  -n, --numeric-sort          compare according to string numerical value
  -R, --random-sort           shuffle, but group identical keys.  See shuf(1)
      --random-source=FILE    get random bytes from FILE
  -r, --reverse               reverse the result of comparisons
      --sort=WORD             sort according to WORD:
                                general-numeric -g, human-numeric -h, month -M,
                                numeric -n, random -R, version -V
  -V, --version-sort          natural sort of (version) numbers within text
```

r? `@Noratrieb` (it sounded like you know this code?)
…links-expansion, r=lolbinarycat

[rustdoc] Do not emit redundant_explicit_links lint if the doc comment comes from expansion

Fixes rust-lang#141553.

The problem was that we change the context for the attributes in some cases to get better error output, preventing us to detect if the attribute comes from expansion. Most of the changes are about keeping track of the "does this span comes from expansion" information.

r? `@Manishearth`
…s, r=fee1-dead,WaffleLapkin

Add edition checks for some tests that had divergent output

In order to expose edition dependent divergences in some tests in the test suite, add explicit `edition` annotations. Some of these tests might require additional work to *avoid* the divergences, as they might have been unintentional. These are not exhaustive changes, purely opportunistic while I was looking at something else.
…ly, r=nnethercote

tests: Do not run afoul of asm.validity.non-exhaustive in input-stats

This addresses one of the three powerpc64-unknown-linux-musl test failures in rust-lang#142280

I was motivated to cover it myself because technically this is also compile-time UB if we compile a program that has `asm!` with x86-64-specific instructions on another platform. That'll only mean something if this is ever switched to build-pass, or if checking emits object code, but conveniently "nop" is valid assembly on all platforms anyone has implemented Rust codegen for. Even the weird ones LLVM doesn't support, like PA-RISC or Common Intermediate Language.

...except GPUs. Not sure about those.

r? `@nnethercote`
…tgross35

small iter.intersperse.fold() optimization

No need to call into fold when the first item is already None, this avoids some redundant work for empty iterators.

"But it uses Fuse" one might want to protest, but Fuse is specialized and may call into the inner iterator anyway.
codegen_fn_attrs: make comment more precise

Follow-up to rust-lang#142854.

r? ``@oli-obk`` or ``@workingjubilee``
Expand const-stabilized API links in relnotes

Noticed while looking at the relnotes blog post rust-lang/blog.rust-lang.org#1651 (comment).

r? `@cuviper`
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc A-tidy Area: The tidy tool O-windows Operating system: Windows S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-release Relevant to the release subteam, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Jun 26, 2025
@workingjubilee
Copy link
Member Author

@bors r+ rollup=never p=5

@rustbot rustbot added the rollup A PR which is a rollup label Jun 26, 2025
@bors
Copy link
Collaborator

bors commented Jun 26, 2025

📌 Commit 2a6e71a has been approved by workingjubilee

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 26, 2025
@workingjubilee
Copy link
Member Author

ah right, as a rare exception: @bors p=6

@bors
Copy link
Collaborator

bors commented Jun 26, 2025

⌛ Testing commit 2a6e71a with merge 4c423d4...

bors added a commit that referenced this pull request Jun 26, 2025
Rollup of 17 pull requests

Successful merges:

 - #124595 (Suggest cloning `Arc` moved into closure)
 - #139594 (Simplify `ObligationCauseCode::IfExpression`)
 - #141311 (make `tidy-alphabetical` use a natural sort)
 - #141648 ([rustdoc] Do not emit redundant_explicit_links lint if the doc comment comes from expansion)
 - #142255 (Add edition checks for some tests that had divergent output)
 - #142285 (tests: Do not run afoul of asm.validity.non-exhaustive in input-stats)
 - #142549 (small iter.intersperse.fold() optimization)
 - #142637 (Remove some glob imports from the type system)
 - #142647 ([perf] Compute hard errors without diagnostics in impl_intersection_has_impossible_obligation)
 - #142700 (Remove incorrect comments in `Weak`)
 - #142884 (StableMIR: Add method to retrieve body of coroutine)
 - #142925 (Rewrite `.gitattributes` CRLF ui tests into run-make tests)
 - #143001 (Rename run always )
 - #143010 (Update `browser-ui-test` version to `0.20.7`)
 - #143015 (Add `sym::macro_pin` diagnostic item for `core::pin::pin!()`)
 - #143020 (codegen_fn_attrs: make comment more precise)
 - #143033 (Expand const-stabilized API links in relnotes)

r? `@ghost`
`@rustbot` modify labels: rollup
@rust-log-analyzer
Copy link
Collaborator

The job dist-various-1 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
---- [run-make] tests/run-make/json-bom-plus-crlf stdout ----

error: rmake recipe failed to complete
status: exit status: 101
command: cd "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/json-bom-plus-crlf/rmake_out" && env -u RUSTFLAGS AR="arm-none-eabi-ar" BUILD_ROOT="/checkout/obj/build/x86_64-unknown-linux-gnu" CARGO="/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools-bin/cargo" CC="arm-none-eabi-gcc" CC_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -mthumb -march=armv6s-m" CXX="arm-none-eabi-g++" CXX_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -mthumb -march=armv6s-m" HOST_RUSTC_DYLIB_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" LD_LIB_PATH_ENVVAR="LD_LIBRARY_PATH" LLVM_BIN_DIR="/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/bin" LLVM_COMPONENTS="aarch64 aarch64asmparser aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils aggressiveinstcombine all all-targets amdgpu amdgpuasmparser amdgpucodegen amdgpudesc amdgpudisassembler amdgpuinfo amdgputargetmca amdgpuutils analysis arm armasmparser armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter avr avrasmparser avrcodegen avrdesc avrdisassembler avrinfo binaryformat bitreader bitstreamreader bitwriter bpf bpfasmparser bpfcodegen bpfdesc bpfdisassembler bpfinfo cfguard cgdata codegen codegentypes core coroutines coverage csky cskyasmparser cskycodegen cskydesc cskydisassembler cskyinfo debuginfobtf debuginfocodeview debuginfodwarf debuginfogsym debuginfologicalview debuginfomsf debuginfopdb demangle dlltooldriver dwarflinker dwarflinkerclassic dwarflinkerparallel dwp engine executionengine extensions filecheck frontendatomic frontenddriver frontendhlsl frontendoffloading frontendopenacc frontendopenmp fuzzercli fuzzmutate globalisel hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo hipstdpar instcombine instrumentation interfacestub interpreter ipo irprinter irreader jitlink libdriver lineeditor linker loongarch loongarchasmparser loongarchcodegen loongarchdesc loongarchdisassembler loongarchinfo lto m68k m68kasmparser m68kcodegen m68kdesc m68kdisassembler m68kinfo mc mca mcdisassembler mcjit mcparser mips mipsasmparser mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 msp430asmparser msp430codegen msp430desc msp430disassembler msp430info native nativecodegen nvptx nvptxcodegen nvptxdesc nvptxinfo objcarcopts objcopy object objectyaml option orcdebugging orcjit orcshared orctargetprocess passes powerpc powerpcasmparser powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata remarks riscv riscvasmparser riscvcodegen riscvdesc riscvdisassembler riscvinfo riscvtargetmca runtimedyld sandboxir scalaropts selectiondag sparc sparcasmparser sparccodegen sparcdesc sparcdisassembler sparcinfo support symbolize systemz systemzasmparser systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target targetparser telemetry textapi textapibinaryreader transformutils vectorize webassembly webassemblyasmparser webassemblycodegen webassemblydesc webassemblydisassembler webassemblyinfo webassemblyutils windowsdriver windowsmanifest x86 x86asmparser x86codegen x86desc x86disassembler x86info x86targetmca xray xtensa xtensaasmparser xtensacodegen xtensadesc xtensadisassembler xtensainfo" LLVM_FILECHECK="/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" PYTHON="/usr/bin/python3" RUSTC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" RUSTC_LINKER="arm-none-eabi-gcc" RUSTDOC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" SOURCE_ROOT="/checkout" TARGET="thumbv6m-none-eabi" TARGET_EXE_DYLIB_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/thumbv6m-none-eabi/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/json-bom-plus-crlf/rmake"
stdout: none
--- stderr -------------------------------

thread 'main' panicked at /checkout/tests/run-make/json-bom-plus-crlf/rmake.rs:62:10:
test failed: `json-bom-plus-crlf.stderr` is different from `stderr`

--- json-bom-plus-crlf.stderr
+++ stderr
@@ -1,114 +1,301 @@
-{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.
+{"$message_type":"diagnostic","message":"can't find crate for `std`","code":{"code":"E0463","explanation":"A crate was declared but cannot be found.
+
+Erroneous code example:
+
+```compile_fail,E0463
+extern crate foo; // error: can't find crate
+```
+
+You need to link your code to the relevant crate in order to be able to use it
+(through Cargo or the `-L` option of rustc, for example).
 
+## Common causes
+
+- The crate is not present at all. If using Cargo, add it to `[dependencies]`
+  in Cargo.toml.
+- The crate is present, but under a different name. If using Cargo, look for
+  `package = ` under `[dependencies]` in Cargo.toml.
+
+## Common causes for missing `std` or `core`
+
+- You are cross-compiling for a target which doesn't have `std` prepackaged.
+  Consider one of the following:
---
+- You are developing the compiler itself and haven't built libstd from source.
+  You can usually build it with `x.py build library/std`. More information
+  about x.py is available in the [rustc-dev-guide].
+
+[rustc-dev-guide]: https://rustc-dev-guide.rust-lang.org/building/how-to-build-and-run.html#building-the-compiler
+"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[],"label":"can't find crate","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the `thumbv6m-none-eabi` target may not support the standard library","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"`std` is required by `<unknown>` because it does not declare `#![no_std]`","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"consider building the standard library from source with `cargo build -Zbuild-std`","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error[E0463]: can't find crate for `std`: can't find crate
+"}
+{"$message_type":"diagnostic","message":"cannot find type `String` in this scope","code":{"code":"E0412","explanation":"A used type name is not in scope.
+
 Erroneous code examples:
 
-```compile_fail,E0308
-fn plus_one(x: i32) -> i32 {
-    x + 1
+```compile_fail,E0412
+impl Something {} // error: type name `Something` is not in scope
+
+// or:
+
+trait Foo {
+    fn bar(N); // error: type name `N` is not in scope
 }
 
-plus_one(\"Not a number\");
-//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`
+// or:
 
-if \"Not a bool\" {
-// ^^^^^^^^^^^^ expected `bool`, found `&str`
+fn foo(x: T) {} // type name `T` is not in scope
+```
+
+To fix this error, please verify you didn't misspell the type name, you did
+declare it or imported it into the scope. Examples:
+
---
+
+trait Foo {
+    type N;
+
+    fn bar(_: Self::N); // ok!
 }
 
-let x: f32 = \"Not a float\";
-//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`
-//     |
-//     expected due to this
+// or:
+
+fn foo<T>(x: T) {} // ok!

-This error occurs when an expression was used in a place where the compiler
-expected an expression of a different type. It can occur in several cases, the
-most common being when calling a function and passing an argument which has a
-different type than the matching type in the function declaration.
-"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String = 1; // Error in the middle of line.","highlight_start":XX,"highlight_end":XX}],"label":"expected String, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":false,"text":[{"text":"let s : String = 1; // Error in the middle of line.","highlight_start":XX,"highlight_end":XX}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String = 1; // Error in the middle of line.","highlight_start":XX,"highlight_end":XX}],"label":null,"suggested_replacement":".to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf.rs:LL:CC: error[E0308]: mismatched types: expected String, found integer
+Another case that causes this error is when a type is imported into a parent
+module. To fix this, you can follow the suggestion and use File directly or
+use super::File; which will import the types from the parent namespace. An
+example that causes this error is below:
+
+```compile_fail,E0412
+use std::fs::File;
+
+mod foo {

  • // either
  • use super::File;
  • // or
  • // use std::fs::File;
  • fn foo(f: File) {}
    +}
    +# fn main() {} // don't insert it for us; that'll break imports
    +```
    +"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String = 1; // Error in the middle of line.","highlight_start":XX,"highlight_end":XX}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"$DIR/json-bom-plus-crlf.rs:LL:CC: error[E0412]: cannot find type String in this scope: not found in this scope
    "}
    -{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.
    +{"$message_type":"diagnostic","message":"cannot find type `String` in this scope","code":{"code":"E0412","explanation":"A used type name is not in scope.

Erroneous code examples:

-```compile_fail,E0308
-fn plus_one(x: i32) -> i32 {

  • x + 1
    +```compile_fail,E0412
    +impl Something {} // error: type name Something is not in scope

+// or:
+
+trait Foo {

  • fn bar(N); // error: type name N is not in scope
    }

-plus_one("Not a number");
-// ^^^^^^^^^^^^^^ expected i32, found &str
+// or:

-if "Not a bool" {
-// ^^^^^^^^^^^^ expected bool, found &str
+fn foo(x: T) {} // type name T is not in scope
+```
+
+To fix this error, please verify you didn't misspell the type name, you did
+declare it or imported it into the scope. Examples:
+

+trait Foo {

  • type N;
  • fn bar(_: Self::N); // ok!
    }

-let x: f32 = "Not a float";
-// --- ^^^^^^^^^^^^^ expected f32, found &str
-// |
-// expected due to this
+// or:
+
+fn foo(x: T) {} // ok!


-This error occurs when an expression was used in a place where the compiler
-expected an expression of a different type. It can occur in several cases, the
-most common being when calling a function and passing an argument which has a
-different type than the matching type in the function declaration.
-"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String = 1","highlight_start":XX,"highlight_end":XX}],"label":"expected `String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":false,"text":[{"text":"let s : String = 1","highlight_start":XX,"highlight_end":XX}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String = 1","highlight_start":XX,"highlight_end":XX}],"label":null,"suggested_replacement":".to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf.rs:LL:CC: error[E0308]: mismatched types: expected `String`, found integer
+Another case that causes this error is when a type is imported into a parent
+module. To fix this, you can follow the suggestion and use File directly or
+`use super::File;` which will import the types from the parent namespace. An
+example that causes this error is below:
+
+```compile_fail,E0412
+use std::fs::File;
+
+mod foo {
---
+    // either
+    use super::File;
+    // or
+    // use std::fs::File;
+    fn foo(f: File) {}
+}
+# fn main() {} // don't insert it for us; that'll break imports
+```
+"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String = 1","highlight_start":XX,"highlight_end":XX}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"$DIR/json-bom-plus-crlf.rs:LL:CC: error[E0412]: cannot find type `String` in this scope: not found in this scope
"}
-{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.
+{"$message_type":"diagnostic","message":"cannot find type `String` in this scope","code":{"code":"E0412","explanation":"A used type name is not in scope.

Erroneous code examples:

-```compile_fail,E0308
-fn plus_one(x: i32) -> i32 {
-    x + 1
+```compile_fail,E0412
+impl Something {} // error: type name `Something` is not in scope
+
+// or:
+
+trait Foo {
+    fn bar(N); // error: type name `N` is not in scope
}

-plus_one(\"Not a number\");
-//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`
+// or:
+
+fn foo(x: T) {} // type name `T` is not in scope
+```
+
+To fix this error, please verify you didn't misspell the type name, you did
+declare it or imported it into the scope. Examples:
+
+```
+struct Something;

-if \"Not a bool\" {
-// ^^^^^^^^^^^^ expected `bool`, found `&str`
+impl Something {} // ok!
+
+// or:
+
+trait Foo {
+    type N;
+
+    fn bar(_: Self::N); // ok!
+}
+
+// or:
+
+fn foo<T>(x: T) {} // ok!
+```
+
+Another case that causes this error is when a type is imported into a parent
+module. To fix this, you can follow the suggestion and use File directly or
+`use super::File;` which will import the types from the parent namespace. An
+example that causes this error is below:
+
+```compile_fail,E0412
+use std::fs::File;
+
+mod foo {
+    fn some_function(f: File) {}
}
+```

-let x: f32 = \"Not a float\";
-//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`
-//     |
-//     expected due to this

+use std::fs::File;

-This error occurs when an expression was used in a place where the compiler
-expected an expression of a different type. It can occur in several cases, the
-most common being when calling a function and passing an argument which has a
-different type than the matching type in the function declaration.
-"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"1; // Error after the newline.","highlight_start":XX,"highlight_end":XX}],"label":"expected String, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":false,"text":[{"text":"let s : String =","highlight_start":XX,"highlight_end":XX}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"1; // Error after the newline.","highlight_start":XX,"highlight_end":XX}],"label":null,"suggested_replacement":".to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf.rs:LL:CC: error[E0308]: mismatched types: expected String, found integer
+mod foo {

  • // either
  • use super::File;
  • // or
  • // use std::fs::File;
  • fn foo(f: File) {}
    +}
    +# fn main() {} // don't insert it for us; that'll break imports
    +```
    +"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String =","highlight_start":XX,"highlight_end":XX}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"$DIR/json-bom-plus-crlf.rs:LL:CC: error[E0412]: cannot find type String in this scope: not found in this scope
    "}
    -{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.
    +{"$message_type":"diagnostic","message":"cannot find type `String` in this scope","code":{"code":"E0412","explanation":"A used type name is not in scope.

Erroneous code examples:

-```compile_fail,E0308
-fn plus_one(x: i32) -> i32 {

  • x + 1
    +```compile_fail,E0412
    +impl Something {} // error: type name Something is not in scope

+// or:
+
+trait Foo {

  • fn bar(N); // error: type name N is not in scope
    }

-plus_one("Not a number");
-// ^^^^^^^^^^^^^^ expected i32, found &str
+// or:

-if "Not a bool" {
-// ^^^^^^^^^^^^ expected bool, found &str
+fn foo(x: T) {} // type name T is not in scope
+```
+
+To fix this error, please verify you didn't misspell the type name, you did
+declare it or imported it into the scope. Examples:
+

+trait Foo {

  • type N;
  • fn bar(_: Self::N); // ok!
    }

-let x: f32 = "Not a float";
-// --- ^^^^^^^^^^^^^ expected f32, found &str
-// |
-// expected due to this
+// or:
+
+fn foo(x: T) {} // ok!
+ + +Another case that causes this error is when a type is imported into a parent +module. To fix this, you can follow the suggestion and use File directly or +`use super::File;` which will import the types from the parent namespace. An +example that causes this error is below: + +compile_fail,E0412
+use std::fs::File;
+
+mod foo {

-This error occurs when an expression was used in a place where the compiler
-expected an expression of a different type. It can occur in several cases, the
-most common being when calling a function and passing an argument which has a
-different type than the matching type in the function declaration.
-"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String = (","highlight_start":XX,"highlight_end":XX},{"text":"); // Error spanning the newline.","highlight_start":XX,"highlight_end":XX}],"label":"expected String, found ()","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":false,"text":[{"text":"let s : String = (","highlight_start":XX,"highlight_end":XX}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"$DIR/json-bom-plus-crlf.rs:LL:CC: error[E0308]: mismatched types: expected String, found ()
+mod foo {

  • // either
  • use super::File;
  • // or
  • // use std::fs::File;
  • fn foo(f: File) {}
    +}
    +# fn main() {} // don't insert it for us; that'll break imports
    +```
    +"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String = (","highlight_start":XX,"highlight_end":XX}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"$DIR/json-bom-plus-crlf.rs:LL:CC: error[E0412]: cannot find type String in this scope: not found in this scope
    +"}
    +{"$message_type":"diagnostic","message":"`#[panic_handler]` function required, but not found","code":null,"level":"error","spans":[],"children":[],"rendered":"error: `#[panic_handler]` function required, but not found
    "}
    -{"$message_type":"diagnostic","message":"aborting due to 4 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 4 previous errors
    +{"$message_type":"diagnostic","message":"aborting due to 6 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 6 previous errors
    "}

note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

---- [run-make] tests/run-make/json-bom-plus-crlf-multifile stdout ----

error: rmake recipe failed to complete
status: exit status: 101
command: cd "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/json-bom-plus-crlf-multifile/rmake_out" && env -u RUSTFLAGS AR="arm-none-eabi-ar" BUILD_ROOT="/checkout/obj/build/x86_64-unknown-linux-gnu" CARGO="/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools-bin/cargo" CC="arm-none-eabi-gcc" CC_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -mthumb -march=armv6s-m" CXX="arm-none-eabi-g++" CXX_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -mthumb -march=armv6s-m" HOST_RUSTC_DYLIB_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" LD_LIB_PATH_ENVVAR="LD_LIBRARY_PATH" LLVM_BIN_DIR="/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/bin" LLVM_COMPONENTS="aarch64 aarch64asmparser aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils aggressiveinstcombine all all-targets amdgpu amdgpuasmparser amdgpucodegen amdgpudesc amdgpudisassembler amdgpuinfo amdgputargetmca amdgpuutils analysis arm armasmparser armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter avr avrasmparser avrcodegen avrdesc avrdisassembler avrinfo binaryformat bitreader bitstreamreader bitwriter bpf bpfasmparser bpfcodegen bpfdesc bpfdisassembler bpfinfo cfguard cgdata codegen codegentypes core coroutines coverage csky cskyasmparser cskycodegen cskydesc cskydisassembler cskyinfo debuginfobtf debuginfocodeview debuginfodwarf debuginfogsym debuginfologicalview debuginfomsf debuginfopdb demangle dlltooldriver dwarflinker dwarflinkerclassic dwarflinkerparallel dwp engine executionengine extensions filecheck frontendatomic frontenddriver frontendhlsl frontendoffloading frontendopenacc frontendopenmp fuzzercli fuzzmutate globalisel hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo hipstdpar instcombine instrumentation interfacestub interpreter ipo irprinter irreader jitlink libdriver lineeditor linker loongarch loongarchasmparser loongarchcodegen loongarchdesc loongarchdisassembler loongarchinfo lto m68k m68kasmparser m68kcodegen m68kdesc m68kdisassembler m68kinfo mc mca mcdisassembler mcjit mcparser mips mipsasmparser mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 msp430asmparser msp430codegen msp430desc msp430disassembler msp430info native nativecodegen nvptx nvptxcodegen nvptxdesc nvptxinfo objcarcopts objcopy object objectyaml option orcdebugging orcjit orcshared orctargetprocess passes powerpc powerpcasmparser powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata remarks riscv riscvasmparser riscvcodegen riscvdesc riscvdisassembler riscvinfo riscvtargetmca runtimedyld sandboxir scalaropts selectiondag sparc sparcasmparser sparccodegen sparcdesc sparcdisassembler sparcinfo support symbolize systemz systemzasmparser systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target targetparser telemetry textapi textapibinaryreader transformutils vectorize webassembly webassemblyasmparser webassemblycodegen webassemblydesc webassemblydisassembler webassemblyinfo webassemblyutils windowsdriver windowsmanifest x86 x86asmparser x86codegen x86desc x86disassembler x86info x86targetmca xray xtensa xtensaasmparser xtensacodegen xtensadesc xtensadisassembler xtensainfo" LLVM_FILECHECK="/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" PYTHON="/usr/bin/python3" RUSTC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" RUSTC_LINKER="arm-none-eabi-gcc" RUSTDOC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" SOURCE_ROOT="/checkout" TARGET="thumbv6m-none-eabi" TARGET_EXE_DYLIB_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/thumbv6m-none-eabi/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/json-bom-plus-crlf-multifile/rmake"
stdout: none
--- stderr -------------------------------

thread 'main' panicked at /checkout/tests/run-make/json-bom-plus-crlf-multifile/rmake.rs:71:10:
test failed: json-bom-plus-crlf-multifile.stderr is different from stderr

--- json-bom-plus-crlf-multifile.stderr
+++ stderr
@@ -1,114 +1,301 @@
-{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.
+{"$message_type":"diagnostic","message":"can't find crate for std","code":{"code":"E0463","explanation":"A crate was declared but cannot be found.
+
+Erroneous code example:
+
+compile_fail,E0463 +extern crate foo; // error: can't find crate +
+
+You need to link your code to the relevant crate in order to be able to use it
+(through Cargo or the -L option of rustc, for example).

+## Common causes
+
+- The crate is not present at all. If using Cargo, add it to [dependencies]

  • in Cargo.toml.
    +- The crate is present, but under a different name. If using Cargo, look for
  • package = under [dependencies] in Cargo.toml.

+## Common causes for missing std or core
+
+- You are cross-compiling for a target which doesn't have std prepackaged.

  • Consider one of the following:

+- You are developing the compiler itself and haven't built libstd from source.

  • You can usually build it with x.py build library/std. More information
  • about x.py is available in the [rustc-dev-guide].

+[rustc-dev-guide]: https://rustc-dev-guide.rust-lang.org/building/how-to-build-and-run.html#building-the-compiler
+"},"level":"error","spans":[{"file_name":"/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/json-bom-plus-crlf-multifile/rmake_out/json-bom-plus-crlf-multifile.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[],"label":"can't find crate","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"the thumbv6m-none-eabi target may not support the standard library","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"std is required by <unknown> because it does not declare #![no_std]","code":null,"level":"note","spans":[],"children":[],"rendered":null},{"message":"consider building the standard library from source with cargo build -Zbuild-std","code":null,"level":"help","spans":[],"children":[],"rendered":null}],"rendered":"error[E0463]: can't find crate for std: can't find crate
+"}
+{"$message_type":"diagnostic","message":"cannot find type String in this scope","code":{"code":"E0412","explanation":"A used type name is not in scope.
+
Erroneous code examples:

-```compile_fail,E0308
-fn plus_one(x: i32) -> i32 {

  • x + 1
    +```compile_fail,E0412
    +impl Something {} // error: type name Something is not in scope

+// or:
+
+trait Foo {

  • fn bar(N); // error: type name N is not in scope
    }

-plus_one("Not a number");
-// ^^^^^^^^^^^^^^ expected i32, found &str
+// or:

-if "Not a bool" {
-// ^^^^^^^^^^^^ expected bool, found &str
+fn foo(x: T) {} // type name T is not in scope
+```
+
+To fix this error, please verify you didn't misspell the type name, you did
+declare it or imported it into the scope. Examples:
+

+trait Foo {

  • type N;
  • fn bar(_: Self::N); // ok!
    }

-let x: f32 = "Not a float";
-// --- ^^^^^^^^^^^^^ expected f32, found &str
-// |
-// expected due to this
+// or:
+
+fn foo(x: T) {} // ok!


-This error occurs when an expression was used in a place where the compiler
-expected an expression of a different type. It can occur in several cases, the
-most common being when calling a function and passing an argument which has a
-different type than the matching type in the function declaration.
-"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String = 1;  // Error in the middle of line.","highlight_start":XX,"highlight_end":XX}],"label":"expected `String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":false,"text":[{"text":"let s : String = 1;  // Error in the middle of line.","highlight_start":XX,"highlight_end":XX}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String = 1;  // Error in the middle of line.","highlight_start":XX,"highlight_end":XX}],"label":null,"suggested_replacement":".to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf-multifile-aux.rs:LL:CC: error[E0308]: mismatched types: expected `String`, found integer
+Another case that causes this error is when a type is imported into a parent
+module. To fix this, you can follow the suggestion and use File directly or
+`use super::File;` which will import the types from the parent namespace. An
+example that causes this error is below:
+
+```compile_fail,E0412
+use std::fs::File;
+
+mod foo {
---
+    // either
+    use super::File;
+    // or
+    // use std::fs::File;
+    fn foo(f: File) {}
+}
+# fn main() {} // don't insert it for us; that'll break imports
+```
+"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String = 1;  // Error in the middle of line.","highlight_start":XX,"highlight_end":XX}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"$DIR/json-bom-plus-crlf-multifile-aux.rs:LL:CC: error[E0412]: cannot find type `String` in this scope: not found in this scope
"}
-{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.
+{"$message_type":"diagnostic","message":"cannot find type `String` in this scope","code":{"code":"E0412","explanation":"A used type name is not in scope.

Erroneous code examples:

-```compile_fail,E0308
-fn plus_one(x: i32) -> i32 {
-    x + 1
+```compile_fail,E0412
+impl Something {} // error: type name `Something` is not in scope
+
+// or:
+
+trait Foo {
+    fn bar(N); // error: type name `N` is not in scope
}

-plus_one(\"Not a number\");
-//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`
+// or:

-if \"Not a bool\" {
-// ^^^^^^^^^^^^ expected `bool`, found `&str`
+fn foo(x: T) {} // type name `T` is not in scope
+```
+
+To fix this error, please verify you didn't misspell the type name, you did
+declare it or imported it into the scope. Examples:
+
---
+
+trait Foo {
+    type N;
+
+    fn bar(_: Self::N); // ok!
}

-let x: f32 = \"Not a float\";
-//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`
-//     |
-//     expected due to this
+// or:
+
+fn foo<T>(x: T) {} // ok!

-This error occurs when an expression was used in a place where the compiler
-expected an expression of a different type. It can occur in several cases, the
-most common being when calling a function and passing an argument which has a
-different type than the matching type in the function declaration.
-"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String = 1","highlight_start":XX,"highlight_end":XX}],"label":"expected String, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":false,"text":[{"text":"let s : String = 1","highlight_start":XX,"highlight_end":XX}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String = 1","highlight_start":XX,"highlight_end":XX}],"label":null,"suggested_replacement":".to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf-multifile-aux.rs:LL:CC: error[E0308]: mismatched types: expected String, found integer
+Another case that causes this error is when a type is imported into a parent
+module. To fix this, you can follow the suggestion and use File directly or
+use super::File; which will import the types from the parent namespace. An
+example that causes this error is below:
+
+```compile_fail,E0412
+use std::fs::File;
+
+mod foo {

  • // either
  • use super::File;
  • // or
  • // use std::fs::File;
  • fn foo(f: File) {}
    +}
    +# fn main() {} // don't insert it for us; that'll break imports
    +```
    +"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String = 1","highlight_start":XX,"highlight_end":XX}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"$DIR/json-bom-plus-crlf-multifile-aux.rs:LL:CC: error[E0412]: cannot find type String in this scope: not found in this scope
    "}
    -{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.
    +{"$message_type":"diagnostic","message":"cannot find type `String` in this scope","code":{"code":"E0412","explanation":"A used type name is not in scope.

Erroneous code examples:

-```compile_fail,E0308
-fn plus_one(x: i32) -> i32 {

  • x + 1
    +```compile_fail,E0412
    +impl Something {} // error: type name Something is not in scope

+// or:
+
+trait Foo {

  • fn bar(N); // error: type name N is not in scope
    }

-plus_one("Not a number");
-// ^^^^^^^^^^^^^^ expected i32, found &str
+// or:
+
+fn foo(x: T) {} // type name T is not in scope
+ + +To fix this error, please verify you didn't misspell the type name, you did +declare it or imported it into the scope. Examples: + +
+struct Something;

-if "Not a bool" {
-// ^^^^^^^^^^^^ expected bool, found &str
+impl Something {} // ok!
+
+// or:
+
+trait Foo {

  • type N;
  • fn bar(_: Self::N); // ok!
    +}

+// or:
+
+fn foo(x: T) {} // ok!
+ + +Another case that causes this error is when a type is imported into a parent +module. To fix this, you can follow the suggestion and use File directly or +`use super::File;` which will import the types from the parent namespace. An +example that causes this error is below: + +compile_fail,E0412
+use std::fs::File;
+
+mod foo {

  • fn some_function(f: File) {}
    }
    +```

-let x: f32 = "Not a float";
-// --- ^^^^^^^^^^^^^ expected f32, found &str
-// |
-// expected due to this

+use std::fs::File;

-This error occurs when an expression was used in a place where the compiler
-expected an expression of a different type. It can occur in several cases, the
-most common being when calling a function and passing an argument which has a
-different type than the matching type in the function declaration.
-"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"1;  // Error after the newline.","highlight_start":XX,"highlight_end":XX}],"label":"expected `String`, found integer","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":false,"text":[{"text":"let s : String =","highlight_start":XX,"highlight_end":XX}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[{"message":"try using a conversion method","code":null,"level":"help","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"1;  // Error after the newline.","highlight_start":XX,"highlight_end":XX}],"label":null,"suggested_replacement":".to_string()","suggestion_applicability":"MaybeIncorrect","expansion":null}],"children":[],"rendered":null}],"rendered":"$DIR/json-bom-plus-crlf-multifile-aux.rs:LL:CC: error[E0308]: mismatched types: expected `String`, found integer
+mod foo {
+    // either
+    use super::File;
+    // or
+    // use std::fs::File;
+    fn foo(f: File) {}
+}
+# fn main() {} // don't insert it for us; that'll break imports
+```
+"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String =","highlight_start":XX,"highlight_end":XX}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"$DIR/json-bom-plus-crlf-multifile-aux.rs:LL:CC: error[E0412]: cannot find type `String` in this scope: not found in this scope
"}
-{"$message_type":"diagnostic","message":"mismatched types","code":{"code":"E0308","explanation":"Expected type did not match the received type.
+{"$message_type":"diagnostic","message":"cannot find type `String` in this scope","code":{"code":"E0412","explanation":"A used type name is not in scope.

Erroneous code examples:

-```compile_fail,E0308
-fn plus_one(x: i32) -> i32 {
-    x + 1
+```compile_fail,E0412
+impl Something {} // error: type name `Something` is not in scope
+
+// or:
+
+trait Foo {
+    fn bar(N); // error: type name `N` is not in scope
}

-plus_one(\"Not a number\");
-//       ^^^^^^^^^^^^^^ expected `i32`, found `&str`
+// or:

-if \"Not a bool\" {
-// ^^^^^^^^^^^^ expected `bool`, found `&str`
+fn foo(x: T) {} // type name `T` is not in scope
+```
+
+To fix this error, please verify you didn't misspell the type name, you did
+declare it or imported it into the scope. Examples:
+
---
+
+trait Foo {
+    type N;
+
+    fn bar(_: Self::N); // ok!
}

-let x: f32 = \"Not a float\";
-//     ---   ^^^^^^^^^^^^^ expected `f32`, found `&str`
-//     |
-//     expected due to this
+// or:
+
+fn foo<T>(x: T) {} // ok!
+```
+
+Another case that causes this error is when a type is imported into a parent
+module. To fix this, you can follow the suggestion and use File directly or
+`use super::File;` which will import the types from the parent namespace. An
+example that causes this error is below:
+
+```compile_fail,E0412
+use std::fs::File;
+
+mod foo {
---
-This error occurs when an expression was used in a place where the compiler
-expected an expression of a different type. It can occur in several cases, the
-most common being when calling a function and passing an argument which has a
-different type than the matching type in the function declaration.
-"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String = (","highlight_start":XX,"highlight_end":XX},{"text":");  // Error spanning the newline.","highlight_start":XX,"highlight_end":XX}],"label":"expected `String`, found `()`","suggested_replacement":null,"suggestion_applicability":null,"expansion":null},{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":false,"text":[{"text":"let s : String = (","highlight_start":XX,"highlight_end":XX}],"label":"expected due to this","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"$DIR/json-bom-plus-crlf-multifile-aux.rs:LL:CC: error[E0308]: mismatched types: expected `String`, found `()`
+mod foo {
+    // either
+    use super::File;
+    // or
+    // use std::fs::File;
+    fn foo(f: File) {}
+}
+# fn main() {} // don't insert it for us; that'll break imports
+```
+"},"level":"error","spans":[{"file_name":"$DIR/json-bom-plus-crlf-multifile-aux.rs","byte_start":XXX,"byte_end":XXX,"line_start":LL,"line_end":LL,"column_start":CC,"column_end":CC,"is_primary":true,"text":[{"text":"let s : String = (","highlight_start":XX,"highlight_end":XX}],"label":"not found in this scope","suggested_replacement":null,"suggestion_applicability":null,"expansion":null}],"children":[],"rendered":"$DIR/json-bom-plus-crlf-multifile-aux.rs:LL:CC: error[E0412]: cannot find type `String` in this scope: not found in this scope
+"}
+{"$message_type":"diagnostic","message":"`#[panic_handler]` function required, but not found","code":null,"level":"error","spans":[],"children":[],"rendered":"error: `#[panic_handler]` function required, but not found
"}
-{"$message_type":"diagnostic","message":"aborting due to 4 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 4 previous errors
+{"$message_type":"diagnostic","message":"aborting due to 6 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 6 previous errors
"}

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
------------------------------------------


---- [run-make] tests/run-make/lexer-crlf-line-endings-string-literal-doc-comment stdout ----

error: rmake recipe failed to complete
status: exit status: 1
command: cd "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/lexer-crlf-line-endings-string-literal-doc-comment/rmake_out" && env -u RUSTFLAGS AR="arm-none-eabi-ar" BUILD_ROOT="/checkout/obj/build/x86_64-unknown-linux-gnu" CARGO="/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools-bin/cargo" CC="arm-none-eabi-gcc" CC_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -mthumb -march=armv6s-m" CXX="arm-none-eabi-g++" CXX_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -mthumb -march=armv6s-m" HOST_RUSTC_DYLIB_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" LD_LIB_PATH_ENVVAR="LD_LIBRARY_PATH" LLVM_BIN_DIR="/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/bin" LLVM_COMPONENTS="aarch64 aarch64asmparser aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils aggressiveinstcombine all all-targets amdgpu amdgpuasmparser amdgpucodegen amdgpudesc amdgpudisassembler amdgpuinfo amdgputargetmca amdgpuutils analysis arm armasmparser armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter avr avrasmparser avrcodegen avrdesc avrdisassembler avrinfo binaryformat bitreader bitstreamreader bitwriter bpf bpfasmparser bpfcodegen bpfdesc bpfdisassembler bpfinfo cfguard cgdata codegen codegentypes core coroutines coverage csky cskyasmparser cskycodegen cskydesc cskydisassembler cskyinfo debuginfobtf debuginfocodeview debuginfodwarf debuginfogsym debuginfologicalview debuginfomsf debuginfopdb demangle dlltooldriver dwarflinker dwarflinkerclassic dwarflinkerparallel dwp engine executionengine extensions filecheck frontendatomic frontenddriver frontendhlsl frontendoffloading frontendopenacc frontendopenmp fuzzercli fuzzmutate globalisel hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo hipstdpar instcombine instrumentation interfacestub interpreter ipo irprinter irreader jitlink libdriver lineeditor linker loongarch loongarchasmparser loongarchcodegen loongarchdesc loongarchdisassembler loongarchinfo lto m68k m68kasmparser m68kcodegen m68kdesc m68kdisassembler m68kinfo mc mca mcdisassembler mcjit mcparser mips mipsasmparser mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 msp430asmparser msp430codegen msp430desc msp430disassembler msp430info native nativecodegen nvptx nvptxcodegen nvptxdesc nvptxinfo objcarcopts objcopy object objectyaml option orcdebugging orcjit orcshared orctargetprocess passes powerpc powerpcasmparser powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata remarks riscv riscvasmparser riscvcodegen riscvdesc riscvdisassembler riscvinfo riscvtargetmca runtimedyld sandboxir scalaropts selectiondag sparc sparcasmparser sparccodegen sparcdesc sparcdisassembler sparcinfo support symbolize systemz systemzasmparser systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target targetparser telemetry textapi textapibinaryreader transformutils vectorize webassembly webassemblyasmparser webassemblycodegen webassemblydesc webassemblydisassembler webassemblyinfo webassemblyutils windowsdriver windowsmanifest x86 x86asmparser x86codegen x86desc x86disassembler x86info x86targetmca xray xtensa xtensaasmparser xtensacodegen xtensadesc xtensadisassembler xtensainfo" LLVM_FILECHECK="/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" PYTHON="/usr/bin/python3" RUSTC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" RUSTC_LINKER="arm-none-eabi-gcc" RUSTDOC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" SOURCE_ROOT="/checkout" TARGET="thumbv6m-none-eabi" TARGET_EXE_DYLIB_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/thumbv6m-none-eabi/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/lexer-crlf-line-endings-string-literal-doc-comment/rmake"
stdout: none
--- stderr -------------------------------
command failed at line 38
Command { cmd: LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/lexer-crlf-line-endings-string-literal-doc-comment/rmake_out:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/lexer-crlf-line-endings-string-literal-doc-comment/rmake_out" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/lexer-crlf-line-endings-string-literal-doc-comment/rmake_out/lexer-crlf-line-endings-string-literal-doc-comment.rs" "--target=thumbv6m-none-eabi", stdin_buf: None, stdin: None, stdout: None, stderr: None, drop_bomb: DropBomb { command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc", defused: true, armed_location: Location { file: "/checkout/tests/run-make/lexer-crlf-line-endings-string-literal-doc-comment/rmake.rs", line: 38, col: 5 } }, already_executed: true }
output status: `exit status: 1`
=== STDOUT ===



=== STDERR ===
error[E0463]: can't find crate for `std`
 |
 = note: the `thumbv6m-none-eabi` target may not support the standard library
 = note: `std` is required by `<unknown>` because it does not declare `#![no_std]`
 = help: consider building the standard library from source with `cargo build -Zbuild-std`

error: cannot find macro `assert` in this scope
##[error]  --> /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/lexer-crlf-line-endings-string-literal-doc-comment/rmake_out/lexer-crlf-line-endings-string-literal-doc-comment.rs:27:1
  |
27 | assert!(source.contains("string\r\nliteral"));
  | ^^^^^^

error: cannot find macro `include_str` in this scope
##[error]  --> /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/lexer-crlf-line-endings-string-literal-doc-comment/rmake_out/lexer-crlf-line-endings-string-literal-doc-comment.rs:26:14
  |
26 | let source = include_str!(file!());
  |              ^^^^^^^^^^^

error: cannot find macro `assert_eq` in this scope
##[error]  --> /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/lexer-crlf-line-endings-string-literal-doc-comment/rmake_out/lexer-crlf-line-endings-string-literal-doc-comment.rs:23:1
  |
23 | assert_eq!(s, "byte string\nliteral".as_bytes());
  | ^^^^^^^^^

error: cannot find macro `assert_eq` in this scope
##[error]  --> /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/lexer-crlf-line-endings-string-literal-doc-comment/rmake_out/lexer-crlf-line-endings-string-literal-doc-comment.rs:20:1
  |
20 | assert_eq!(s, "string\nliteral");
  | ^^^^^^^^^

error: cannot find macro `assert_eq` in this scope
##[error]  --> /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/lexer-crlf-line-endings-string-literal-doc-comment/rmake_out/lexer-crlf-line-endings-string-literal-doc-comment.rs:16:1
  |
16 | assert_eq!(s, "literal with escaped newline");
  | ^^^^^^^^^

error: cannot find macro `assert_eq` in this scope
##[error]  --> /checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/lexer-crlf-line-endings-string-literal-doc-comment/rmake_out/lexer-crlf-line-endings-string-literal-doc-comment.rs:12:1
  |
12 | assert_eq!(s, "string\nliteral");
  | ^^^^^^^^^

error: `#[panic_handler]` function required, but not found

error: aborting due to 8 previous errors
---
---- [run-make] tests/run-make/trailing-carriage-return-in-string stdout ----

error: rmake recipe failed to complete
status: exit status: 101
command: cd "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/trailing-carriage-return-in-string/rmake_out" && env -u RUSTFLAGS AR="arm-none-eabi-ar" BUILD_ROOT="/checkout/obj/build/x86_64-unknown-linux-gnu" CARGO="/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools-bin/cargo" CC="arm-none-eabi-gcc" CC_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -mthumb -march=armv6s-m" CXX="arm-none-eabi-g++" CXX_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -mthumb -march=armv6s-m" HOST_RUSTC_DYLIB_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" LD_LIB_PATH_ENVVAR="LD_LIBRARY_PATH" LLVM_BIN_DIR="/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/bin" LLVM_COMPONENTS="aarch64 aarch64asmparser aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils aggressiveinstcombine all all-targets amdgpu amdgpuasmparser amdgpucodegen amdgpudesc amdgpudisassembler amdgpuinfo amdgputargetmca amdgpuutils analysis arm armasmparser armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter avr avrasmparser avrcodegen avrdesc avrdisassembler avrinfo binaryformat bitreader bitstreamreader bitwriter bpf bpfasmparser bpfcodegen bpfdesc bpfdisassembler bpfinfo cfguard cgdata codegen codegentypes core coroutines coverage csky cskyasmparser cskycodegen cskydesc cskydisassembler cskyinfo debuginfobtf debuginfocodeview debuginfodwarf debuginfogsym debuginfologicalview debuginfomsf debuginfopdb demangle dlltooldriver dwarflinker dwarflinkerclassic dwarflinkerparallel dwp engine executionengine extensions filecheck frontendatomic frontenddriver frontendhlsl frontendoffloading frontendopenacc frontendopenmp fuzzercli fuzzmutate globalisel hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo hipstdpar instcombine instrumentation interfacestub interpreter ipo irprinter irreader jitlink libdriver lineeditor linker loongarch loongarchasmparser loongarchcodegen loongarchdesc loongarchdisassembler loongarchinfo lto m68k m68kasmparser m68kcodegen m68kdesc m68kdisassembler m68kinfo mc mca mcdisassembler mcjit mcparser mips mipsasmparser mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 msp430asmparser msp430codegen msp430desc msp430disassembler msp430info native nativecodegen nvptx nvptxcodegen nvptxdesc nvptxinfo objcarcopts objcopy object objectyaml option orcdebugging orcjit orcshared orctargetprocess passes powerpc powerpcasmparser powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata remarks riscv riscvasmparser riscvcodegen riscvdesc riscvdisassembler riscvinfo riscvtargetmca runtimedyld sandboxir scalaropts selectiondag sparc sparcasmparser sparccodegen sparcdesc sparcdisassembler sparcinfo support symbolize systemz systemzasmparser systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target targetparser telemetry textapi textapibinaryreader transformutils vectorize webassembly webassemblyasmparser webassemblycodegen webassemblydesc webassemblydisassembler webassemblyinfo webassemblyutils windowsdriver windowsmanifest x86 x86asmparser x86codegen x86desc x86disassembler x86info x86targetmca xray xtensa xtensaasmparser xtensacodegen xtensadesc xtensadisassembler xtensainfo" LLVM_FILECHECK="/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" PYTHON="/usr/bin/python3" RUSTC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" RUSTC_LINKER="arm-none-eabi-gcc" RUSTDOC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" SOURCE_ROOT="/checkout" TARGET="thumbv6m-none-eabi" TARGET_EXE_DYLIB_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/thumbv6m-none-eabi/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/trailing-carriage-return-in-string/rmake"
stdout: none
--- stderr -------------------------------

thread 'main' panicked at /checkout/tests/run-make/trailing-carriage-return-in-string/rmake.rs:20:10:
test failed: `trailing-carriage-return-in-string.stderr` is different from `stderr`
---

-error: aborting due to 1 previous error
+error[E0463]: can't find crate for `std`
+   |
+   = note: the `thumbv6m-none-eabi` target may not support the standard library
+   = note: `std` is required by `<unknown>` because it does not declare `#![no_std]`
+   = help: consider building the standard library from source with `cargo build -Zbuild-std`

+error: `#[panic_handler]` function required, but not found
+
+error: aborting due to 3 previous errors
+

@bors
Copy link
Collaborator

bors commented Jun 26, 2025

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jun 26, 2025
@workingjubilee workingjubilee deleted the rollup-bprphm3 branch June 26, 2025 06:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-attributes Area: Attributes (`#[…]`, `#![…]`) A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc A-tidy Area: The tidy tool O-windows Operating system: Windows rollup A PR which is a rollup S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-release Relevant to the release subteam, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)
Projects
None yet
Development

Successfully merging this pull request may close these issues.