Skip to content

Commit

Permalink
Auto merge of rust-lang#102767 - matthiaskrgr:rollup-vcbt81v, r=matth…
Browse files Browse the repository at this point in the history
…iaskrgr

Rollup of 6 pull requests

Successful merges:

 - rust-lang#102577 (Warn about Visual Studio Code branding confusion)
 - rust-lang#102720 (do not reverse the expected type and found type for ObligationCauseCo…)
 - rust-lang#102744 (rustdoc: remove unused CSS `.content .item-list`)
 - rust-lang#102747 (rustdoc: remove unused CSS `.docblock a:not(.srclink)`)
 - rust-lang#102748 (Disable compressed debug sections on i586-gnu)
 - rust-lang#102761 (let-else: test else block with non-never uninhabited type)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
  • Loading branch information
bors committed Oct 7, 2022
2 parents cf0fa76 + a09e2f6 commit 5854680
Show file tree
Hide file tree
Showing 18 changed files with 53 additions and 30 deletions.
5 changes: 3 additions & 2 deletions compiler/rustc_codegen_ssa/src/back/link.rs
Original file line number Diff line number Diff line change
Expand Up @@ -977,9 +977,10 @@ fn link_natively<'a>(
but `link.exe` was not found",
);
sess.note_without_error(
"please ensure that VS 2013, VS 2015, VS 2017, VS 2019 or VS 2022 \
was installed with the Visual C++ option",
"please ensure that Visual Studio 2017 or later, or Build Tools \
for Visual Studio were installed with the Visual C++ option.",
);
sess.note_without_error("VS Code is a different product, and is not sufficient.");
}
sess.abort_if_errors();
}
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_hir_analysis/src/check/_match.rs
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
err.help("consider adding an `else` block that evaluates to the expected type");
error = true;
},
ret_reason.is_none(),
false,
);
error
}
Expand Down
4 changes: 4 additions & 0 deletions src/ci/docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -242,10 +242,14 @@ For targets: `i586-unknown-linux-gnu`
- Operating System > Target OS = linux
- Operating System > Linux kernel version = 3.2.101
- Binary utilities > Version of binutils = 2.32
- Binary utilities > binutils extra config = --enable-compressed-debug-sections=none -- (\*)
- C-library > glibc version = 2.17.0
- C compiler > gcc version = 8.3.0
- C compiler > C++ = ENABLE
(\*) Compressed debug is enabled by default for gas (assembly) on Linux/x86 targets,
but that makes our `compiler_builtins` incompatible with binutils < 2.32.
### `powerpc-linux-gnu.config`
For targets: `powerpc-unknown-linux-gnu`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,7 @@ CT_BINUTILS_LINKERS_LIST="ld"
CT_BINUTILS_LINKER_DEFAULT="bfd"
# CT_BINUTILS_PLUGINS is not set
CT_BINUTILS_RELRO=m
CT_BINUTILS_EXTRA_CONFIG_ARRAY=""
CT_BINUTILS_EXTRA_CONFIG_ARRAY="--enable-compressed-debug-sections=none"
# CT_BINUTILS_FOR_TARGET is not set
CT_ALL_BINUTILS_CHOICES="BINUTILS"

Expand Down
8 changes: 4 additions & 4 deletions src/librustdoc/html/render/print_item.rs
Original file line number Diff line number Diff line change
Expand Up @@ -890,7 +890,7 @@ fn item_trait(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, t: &clean:
w,
"implementors",
"Implementors",
"<div class=\"item-list\" id=\"implementors-list\">",
"<div id=\"implementors-list\">",
);
for implementor in concrete {
render_implementor(cx, implementor, it, w, &implementor_dups, &[]);
Expand All @@ -902,7 +902,7 @@ fn item_trait(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, t: &clean:
w,
"synthetic-implementors",
"Auto implementors",
"<div class=\"item-list\" id=\"synthetic-implementors-list\">",
"<div id=\"synthetic-implementors-list\">",
);
for implementor in synthetic {
render_implementor(
Expand All @@ -923,15 +923,15 @@ fn item_trait(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, t: &clean:
w,
"implementors",
"Implementors",
"<div class=\"item-list\" id=\"implementors-list\"></div>",
"<div id=\"implementors-list\"></div>",
);

if t.is_auto(cx.tcx()) {
write_small_section_header(
w,
"synthetic-implementors",
"Auto implementors",
"<div class=\"item-list\" id=\"synthetic-implementors-list\"></div>",
"<div id=\"synthetic-implementors-list\"></div>",
);
}
}
Expand Down
10 changes: 3 additions & 7 deletions src/librustdoc/html/static/css/rustdoc.css
Original file line number Diff line number Diff line change
Expand Up @@ -690,11 +690,6 @@ pre, .rustdoc.source .example-wrap {
border: 1px solid var(--border-color);
}

.content .item-list {
list-style-type: none;
padding: 0;
}

/* Shift "where ..." part of method or fn definition down a line */
.content .method .where,
.content .fn .where,
Expand Down Expand Up @@ -773,8 +768,9 @@ h2.small-section-header > .anchor {
}

.all-items a:hover,
.docblock a:not(.srclink):not(.test-arrow):not(.scrape-help):hover,
.docblock-short a:not(.srclink):not(.test-arrow):not(.scrape-help):hover, .item-info a {
.docblock a:not(.test-arrow):not(.scrape-help):hover,
.docblock-short a:not(.test-arrow):not(.scrape-help):hover,
.item-info a {
text-decoration: underline;
}

Expand Down
10 changes: 5 additions & 5 deletions src/test/rustdoc/impl-disambiguation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ pub trait Foo {}

pub struct Bar<T> { field: T }

// @has foo/trait.Foo.html '//*[@class="item-list"]//h3[@class="code-header"]' \
// @has foo/trait.Foo.html '//*[@id="implementors-list"]//h3[@class="code-header"]' \
// "impl Foo for Bar<u8>"
impl Foo for Bar<u8> {}
// @has foo/trait.Foo.html '//*[@class="item-list"]//h3[@class="code-header"]' \
// @has foo/trait.Foo.html '//*[@id="implementors-list"]//h3[@class="code-header"]' \
// "impl Foo for Bar<u16>"
impl Foo for Bar<u16> {}
// @has foo/trait.Foo.html '//*[@class="item-list"]//h3[@class="code-header"]' \
// @has foo/trait.Foo.html '//*[@id="implementors-list"]//h3[@class="code-header"]' \
// "impl<'a> Foo for &'a Bar<u8>"
impl<'a> Foo for &'a Bar<u8> {}

Expand All @@ -22,9 +22,9 @@ pub mod mod2 {
pub enum Baz {}
}

// @has foo/trait.Foo.html '//*[@class="item-list"]//h3[@class="code-header"]' \
// @has foo/trait.Foo.html '//*[@id="implementors-list"]//h3[@class="code-header"]' \
// "impl Foo for foo::mod1::Baz"
impl Foo for mod1::Baz {}
// @has foo/trait.Foo.html '//*[@class="item-list"]//h3[@class="code-header"]' \
// @has foo/trait.Foo.html '//*[@id="implementors-list"]//h3[@class="code-header"]' \
// "impl<'a> Foo for &'a foo::mod2::Baz"
impl<'a> Foo for &'a mod2::Baz {}
2 changes: 1 addition & 1 deletion src/test/rustdoc/impl-parts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ pub struct Foo<T> { field: T }

// @has impl_parts/struct.Foo.html '//*[@class="impl has-srclink"]//h3[@class="code-header"]' \
// "impl<T: Clone> !AnAutoTrait for Foo<T>where T: Sync,"
// @has impl_parts/trait.AnAutoTrait.html '//*[@class="item-list"]//h3[@class="code-header"]' \
// @has impl_parts/trait.AnAutoTrait.html '//*[@id="implementors-list"]//h3[@class="code-header"]' \
// "impl<T: Clone> !AnAutoTrait for Foo<T>where T: Sync,"
impl<T: Clone> !AnAutoTrait for Foo<T> where T: Sync {}
2 changes: 1 addition & 1 deletion src/test/ui/async-await/issue-66387-if-without-else.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ error[E0317]: `if` may be missing an `else` clause
LL | / if true {
LL | | return 0;
LL | | }
| |_____^ expected `()`, found `i32`
| |_____^ expected `i32`, found `()`
|
= note: `if` expressions without `else` evaluate to `()`
= help: consider adding an `else` block that evaluates to the expected type
Expand Down
2 changes: 1 addition & 1 deletion src/test/ui/consts/control-flow/issue-50577.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ error[E0317]: `if` may be missing an `else` clause
--> $DIR/issue-50577.rs:3:16
|
LL | Drop = assert_eq!(1, 1),
| ^^^^^^^^^^^^^^^^ expected `()`, found `isize`
| ^^^^^^^^^^^^^^^^ expected `isize`, found `()`
|
= note: `if` expressions without `else` evaluate to `()`
= help: consider adding an `else` block that evaluates to the expected type
Expand Down
2 changes: 1 addition & 1 deletion src/test/ui/expr/if/if-without-else-result.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
fn main() {
let a = if true { true };
//~^ ERROR `if` may be missing an `else` clause [E0317]
//~| expected `()`, found `bool`
//~| expected `bool`, found `()`
println!("{}", a);
}
2 changes: 1 addition & 1 deletion src/test/ui/expr/if/if-without-else-result.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ LL | let a = if true { true };
| ^^^^^^^^^^----^^
| | |
| | found here
| expected `()`, found `bool`
| expected `bool`, found `()`
|
= note: `if` expressions without `else` evaluate to `()`
= help: consider adding an `else` block that evaluates to the expected type
Expand Down
2 changes: 1 addition & 1 deletion src/test/ui/expr/if/issue-4201.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ fn main() {
0
} else if false {
//~^ ERROR `if` may be missing an `else` clause
//~| expected `()`, found integer
//~| expected integer, found `()`
1
};
}
2 changes: 1 addition & 1 deletion src/test/ui/expr/if/issue-4201.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ LL | |
LL | | 1
| | - found here
LL | | };
| |_____^ expected `()`, found integer
| |_____^ expected integer, found `()`
|
= note: `if` expressions without `else` evaluate to `()`
= help: consider adding an `else` block that evaluates to the expected type
Expand Down
2 changes: 1 addition & 1 deletion src/test/ui/issues/issue-19991.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

fn main() {
if let Some(homura) = Some("madoka") { //~ ERROR missing an `else` clause
//~| expected `()`, found integer
//~| expected integer, found `()`
765
};
}
2 changes: 1 addition & 1 deletion src/test/ui/issues/issue-19991.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ LL | |
LL | | 765
| | --- found here
LL | | };
| |_____^ expected `()`, found integer
| |_____^ expected integer, found `()`
|
= note: `if` expressions without `else` evaluate to `()`
= help: consider adding an `else` block that evaluates to the expected type
Expand Down
11 changes: 11 additions & 0 deletions src/test/ui/let-else/let-else-non-diverging.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,15 @@ fn main() {
}
};
let Some(x) = Some(1) else { Some(2) }; //~ ERROR does not diverge

// Ensure that uninhabited types do not "diverge".
// This might be relaxed in the future, but when it is,
// it should be an explicitly wanted descision.
let Some(x) = Some(1) else { foo::<Uninhabited>() }; //~ ERROR does not diverge
}

enum Uninhabited {}

fn foo<T>() -> T {
panic!()
}
13 changes: 12 additions & 1 deletion src/test/ui/let-else/let-else-non-diverging.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,17 @@ LL | let Some(x) = Some(1) else { Some(2) };
= help: try adding a diverging expression, such as `return` or `panic!(..)`
= help: ...or use `match` instead of `let...else`

error: aborting due to 3 previous errors
error[E0308]: `else` clause of `let...else` does not diverge
--> $DIR/let-else-non-diverging.rs:15:32
|
LL | let Some(x) = Some(1) else { foo::<Uninhabited>() };
| ^^^^^^^^^^^^^^^^^^^^^^^^ expected `!`, found enum `Uninhabited`
|
= note: expected type `!`
found enum `Uninhabited`
= help: try adding a diverging expression, such as `return` or `panic!(..)`
= help: ...or use `match` instead of `let...else`

error: aborting due to 4 previous errors

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

0 comments on commit 5854680

Please sign in to comment.