Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
786e0bb
bootstrap: Move -Clto= setting from Rustc::run to rustc_cargo
xry111 Dec 29, 2023
1ab60f2
rustdoc-search: fix inaccurate type descriptions
notriddle Dec 31, 2023
86b9550
rustdoc-search: tighter encoding for `f` index
notriddle Dec 31, 2023
a68ac32
Clean up serialization code nits
notriddle Jan 4, 2024
506b9f9
coverage: Avoid early returns from `mir_to_initial_sorted_coverage_sp…
Zalathar Dec 22, 2023
df0df52
coverage: Overhaul how "visible macros" are determined
Zalathar Dec 28, 2023
cd3a976
coverage: Hoist the removal of unwanted macro expansion spans
Zalathar Dec 21, 2023
d4d2f14
coverage: Hoist the splitting of visible macro invocations
Zalathar Dec 22, 2023
cd50843
coverage: Split out `SpanFromMir` from `CoverageSpan`
Zalathar Dec 22, 2023
514e026
coverage: Make the remaining fields of `CoverageSpan` non-public
Zalathar Dec 28, 2023
ddfcf86
Allow emitting diagnostics from the `#[diagnostic]` namespace without a
weiznich Dec 21, 2023
2c3aeea
Replace some usage of `#[rustc_on_unimplemented]` with
weiznich Dec 22, 2023
91e1af3
Add a test that emitting diagnostics does not require the crate to use
weiznich Dec 23, 2023
97c8238
remove duplicate test
RalfJung Jan 5, 2024
54967d7
Ignore a rustdoc test
fmease Jan 5, 2024
004bfc5
Add notes about the serialization format
notriddle Jan 5, 2024
2746748
fix OOM when `ty::Instance` is used in query description
Jan 5, 2024
339fa31
fix cycle error for "use constructor" suggestion
Jan 5, 2024
7366bda
Handle ForeignItem as TAIT scope.
cjgillot Dec 29, 2023
6dfdeab
Do not run check on foreign items.
cjgillot Dec 31, 2023
eeaea57
Rebase fallout.
cjgillot Jan 5, 2024
0489fd0
library: Fix warnings in rtstartup
petrochenkov Jan 5, 2024
0d70e58
library: Fix a symlink test failing on Windows
petrochenkov Jan 5, 2024
bacddd3
Rollup merge of #119208 - Zalathar:hoist, r=WaffleLapkin,Swatinem
compiler-errors Jan 6, 2024
8dd40b1
Rollup merge of #119216 - weiznich:use_diagnostic_namespace_in_stdlib…
compiler-errors Jan 6, 2024
d6646e0
Rollup merge of #119414 - xry111:xry111/lto-test, r=Mark-Simulacrum
compiler-errors Jan 6, 2024
dc5b145
Rollup merge of #119420 - cjgillot:issue-119295, r=compiler-errors
compiler-errors Jan 6, 2024
463b9a2
Rollup merge of #119468 - notriddle:notriddle/compression, r=Guillaum…
compiler-errors Jan 6, 2024
7ec840e
Rollup merge of #119628 - RalfJung:duplicate-test, r=compiler-errors
compiler-errors Jan 6, 2024
15892ff
Rollup merge of #119638 - lukas-code:suggest-constructor-cycle-error,…
compiler-errors Jan 6, 2024
f17ebb1
Rollup merge of #119640 - petrochenkov:rtstartup, r=Mark-Simulacrum
compiler-errors Jan 6, 2024
ad48a79
Rollup merge of #119642 - petrochenkov:winstdtest, r=ChrisDenton
compiler-errors Jan 6, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix OOM when ty::Instance is used in query description
  • Loading branch information
Lukas Markeffsky committed Jan 5, 2024
commit 274674819c3c37e09f5fe0e3276d3921068dbb95
12 changes: 8 additions & 4 deletions compiler/rustc_middle/src/ty/instance.rs
Original file line number Diff line number Diff line change
Expand Up @@ -293,12 +293,16 @@ impl<'tcx> InstanceDef<'tcx> {
fn fmt_instance(
f: &mut fmt::Formatter<'_>,
instance: &Instance<'_>,
type_length: rustc_session::Limit,
type_length: Option<rustc_session::Limit>,
) -> fmt::Result {
ty::tls::with(|tcx| {
let args = tcx.lift(instance.args).expect("could not lift for printing");

let mut cx = FmtPrinter::new_with_limit(tcx, Namespace::ValueNS, type_length);
let mut cx = if let Some(type_length) = type_length {
FmtPrinter::new_with_limit(tcx, Namespace::ValueNS, type_length)
} else {
FmtPrinter::new(tcx, Namespace::ValueNS)
};
cx.print_def_path(instance.def_id(), args)?;
let s = cx.into_buffer();
f.write_str(&s)
Expand All @@ -324,13 +328,13 @@ pub struct ShortInstance<'a, 'tcx>(pub &'a Instance<'tcx>, pub usize);

impl<'a, 'tcx> fmt::Display for ShortInstance<'a, 'tcx> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
fmt_instance(f, self.0, rustc_session::Limit(self.1))
fmt_instance(f, self.0, Some(rustc_session::Limit(self.1)))
}
}

impl<'tcx> fmt::Display for Instance<'tcx> {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
ty::tls::with(|tcx| fmt_instance(f, self, tcx.type_length_limit()))
fmt_instance(f, self, None)
}
}

Expand Down
12 changes: 12 additions & 0 deletions tests/ui/resolve/auxiliary/suggest-constructor-cycle-error.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
mod m {
pub struct Uuid(());

impl Uuid {
pub fn encode_buffer() -> [u8; LENGTH] {
[]
}
}
const LENGTH: usize = 0;
}

pub use m::Uuid;
10 changes: 10 additions & 0 deletions tests/ui/resolve/suggest-constructor-cycle-error.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// aux-build:suggest-constructor-cycle-error.rs
//~^ cycle detected when getting the resolver for lowering [E0391]

// Regression test for https://github.com/rust-lang/rust/issues/119625

extern crate suggest_constructor_cycle_error as a;

const CONST_NAME: a::Uuid = a::Uuid(());

fn main() {}
15 changes: 15 additions & 0 deletions tests/ui/resolve/suggest-constructor-cycle-error.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
error[E0391]: cycle detected when getting the resolver for lowering
|
= note: ...which requires normalizing `[u8; suggest_constructor_cycle_error::::m::{impl#0}::encode_buffer::{constant#0}]`...
note: ...which requires resolving instance `suggest_constructor_cycle_error::m::Uuid::encode_buffer::{constant#0}`...
--> $DIR/auxiliary/suggest-constructor-cycle-error.rs:5:40
|
LL | pub fn encode_buffer() -> [u8; LENGTH] {
| ^^^^^^
= note: ...which requires calculating the lang items map...
= note: ...which again requires getting the resolver for lowering, completing the cycle
= note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0391`.