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

Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
a0fcc8e
Add `display` method to `OsStr`
riverbl Jan 7, 2024
e060274
tests: Fix typo unix_sigpipe-error.rs -> unix_sigpipe-sig_ign.rs
Enselic Feb 9, 2024
a1cb3db
tests: Rename unix_sigpipe.rs to unix_sigpipe-bare.rs for clarity
Enselic Feb 9, 2024
d14f158
tests: Combine unix_sigpipe-not-used.rs and unix_sigpipe-only-feature.rs
Enselic Feb 9, 2024
948b1d6
tests: Add unix_sigpipe-different-duplicates.rs test variant
Enselic Feb 9, 2024
0da1b71
Add test case for primitive links in alias js
notriddle Feb 24, 2024
3bcef2d
Fix issues in suggesting importing extern crate paths
chenyukang Feb 17, 2024
03a10a9
Changing some attributes to only_local.
surechen Feb 27, 2024
8719b74
Fix link generation for locate foreign macro in jump to definition fe…
GuillaumeGomez Feb 27, 2024
4dd05e6
Add regression test for link generation on foreign macro in jump to d…
GuillaumeGomez Feb 27, 2024
7e10a5c
handle unavailable creation time as `io::ErrorKind::Unsupported`
janstarke Feb 27, 2024
1feef44
rename RPITIT from opaque to synthetic
compiler-errors Feb 27, 2024
b57ddfe
Print RPITIT like an opaque
compiler-errors Feb 27, 2024
8a6d353
Split rustc_type_ir to avoid rustc_ast from depending on it
oli-obk Feb 27, 2024
c7476f8
CFI: Fix typo in test file names
rcvalle Feb 27, 2024
cc584ba
Process alias-relate obligations in CoerceUnsized loop
compiler-errors Feb 27, 2024
5e29e26
Remove the `UntranslatableDiagnosticTrivial` lint.
nnethercote Feb 5, 2024
d840408
Rollup merge of #120051 - riverbl:os-str-display, r=m-ou-se
GuillaumeGomez Feb 28, 2024
c5dafe6
Rollup merge of #121226 - chenyukang:yukang-fix-import-alias, r=david…
GuillaumeGomez Feb 28, 2024
587d828
Rollup merge of #121423 - nnethercote:rm-UntranslatableDiagnosticTriv…
GuillaumeGomez Feb 28, 2024
d8e6550
Rollup merge of #121527 - Enselic:unix_sigpipe-tests-fixes, r=davidtwco
GuillaumeGomez Feb 28, 2024
65b190d
Rollup merge of #121572 - notriddle:notriddle/test-case-121106, r=Gui…
GuillaumeGomez Feb 28, 2024
796af69
Rollup merge of #121661 - surechen:change_attribute_to_local_20240226…
GuillaumeGomez Feb 28, 2024
b609afe
Rollup merge of #121680 - GuillaumeGomez:foreign-macro-jump-to-def, r…
GuillaumeGomez Feb 28, 2024
a0027e8
Rollup merge of #121686 - compiler-errors:rpitit-printing, r=lcnr
GuillaumeGomez Feb 28, 2024
2492f93
Rollup merge of #121691 - janstarke:handle-missing-creation-time-as-u…
GuillaumeGomez Feb 28, 2024
a62cfe0
Rollup merge of #121695 - oli-obk:split_ty_utils, r=compiler-errors
GuillaumeGomez Feb 28, 2024
ca69a1f
Rollup merge of #121698 - rcvalle:rust-cfi-fix-typo, r=compiler-errors
GuillaumeGomez Feb 28, 2024
1b08d1a
Rollup merge of #121702 - compiler-errors:coerce-alias-relate, r=lcnr
GuillaumeGomez Feb 28, 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
Print RPITIT like an opaque
  • Loading branch information
compiler-errors committed Feb 27, 2024
commit b57ddfe079cbd9974f0b1f68a50f8f1b901cfdaf
20 changes: 12 additions & 8 deletions compiler/rustc_middle/src/ty/print/pretty.rs
Original file line number Diff line number Diff line change
Expand Up @@ -715,13 +715,7 @@ pub trait PrettyPrinter<'tcx>: Printer<'tcx> + fmt::Write {
p!(print_def_path(def_id, &[]));
}
ty::Alias(ty::Projection | ty::Inherent | ty::Weak, ref data) => {
if !(self.should_print_verbose() || with_no_queries())
&& self.tcx().is_impl_trait_in_trait(data.def_id)
{
return self.pretty_print_opaque_impl_type(data.def_id, data.args);
} else {
p!(print(data))
}
p!(print(data))
}
ty::Placeholder(placeholder) => match placeholder.bound.kind {
ty::BoundTyKind::Anon => p!(write("{placeholder:?}")),
Expand Down Expand Up @@ -3053,7 +3047,17 @@ define_print_and_forward_display! {
if let DefKind::Impl { of_trait: false } = cx.tcx().def_kind(cx.tcx().parent(self.def_id)) {
p!(pretty_print_inherent_projection(self))
} else {
p!(print_def_path(self.def_id, self.args));
// If we're printing verbosely, or don't want to invoke queries
// (`is_impl_trait_in_trait`), then fall back to printing the def path.
// This is likely what you want if you're debugging the compiler anyways.
if !(cx.should_print_verbose() || with_no_queries())
&& cx.tcx().is_impl_trait_in_trait(self.def_id)
{
return cx.pretty_print_opaque_impl_type(self.def_id, self.args);
} else {
p!(print_def_path(self.def_id, self.args));
}

}
}

Expand Down
2 changes: 1 addition & 1 deletion tests/ui/impl-trait/in-trait/async-and-ret-ref.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ trait T {}

trait MyTrait {
async fn foo() -> &'static impl T;
//~^ ERROR the associated type `<Self as MyTrait>::{opaque#0}` may not live long enough
//~^ ERROR the associated type `impl T` may not live long enough
}

fn main() {}
4 changes: 2 additions & 2 deletions tests/ui/impl-trait/in-trait/async-and-ret-ref.stderr
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
error[E0310]: the associated type `<Self as MyTrait>::{synthetic#0}` may not live long enough
error[E0310]: the associated type `impl T` may not live long enough
--> $DIR/async-and-ret-ref.rs:7:5
|
LL | async fn foo() -> &'static impl T;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| the associated type `<Self as MyTrait>::{synthetic#0}` must be valid for the static lifetime...
| the associated type `impl T` must be valid for the static lifetime...
| ...so that the reference type `&'static impl T` does not outlive the data it points at

error: aborting due to 1 previous error
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ trait Erased {
impl<T: Original> Erased for T {
fn f(&self) -> Box<dyn Fn()> {
Box::new(<T as Original>::f())
//~^ ERROR the associated type `<T as Original>::{opaque#0}` may not live long enough
//~^ ERROR the associated type `impl Fn()` may not live long enough
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
error[E0310]: the associated type `<T as Original>::{synthetic#0}` may not live long enough
error[E0310]: the associated type `impl Fn()` may not live long enough
--> $DIR/missing-static-bound-from-impl.rs:11:9
|
LL | Box::new(<T as Original>::f())
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| the associated type `<T as Original>::{synthetic#0}` must be valid for the static lifetime...
| the associated type `impl Fn()` must be valid for the static lifetime...
| ...so that the type `impl Fn()` will meet its required lifetime bounds

error: aborting due to 1 previous error
Expand Down