Auto merge of #123171 - matthiaskrgr:rollup-7id2r8o, r=matthiaskrgr
Rollup of 6 pull requests Successful merges: - #123063 (Function ABI is irrelevant for reachability) - #123096 (Don't check match scrutinee of postfix match for unused parens) - #123146 (Use compiletest directives instead of manually checking TARGET / tools) - #123160 (remove `def_id_to_node_id` in ast lowering) - #123162 (Correctly get complete intra-doc link data) - #123164 (Bump Unicode printables to version 15.1, align to unicode_data) r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
ba527200cc
@ -865,7 +865,9 @@ trait UnusedDelimLint {
|
||||
(iter, UnusedDelimsCtx::ForIterExpr, true, None, Some(body.span.lo()), true)
|
||||
}
|
||||
|
||||
Match(ref head, ..) if Self::LINT_EXPR_IN_PATTERN_MATCHING_CTX => {
|
||||
Match(ref head, _, ast::MatchKind::Prefix)
|
||||
if Self::LINT_EXPR_IN_PATTERN_MATCHING_CTX =>
|
||||
{
|
||||
let left = e.span.lo() + rustc_span::BytePos(5);
|
||||
(head, UnusedDelimsCtx::MatchScrutineeExpr, true, Some(left), None, true)
|
||||
}
|
||||
|
@ -215,7 +215,6 @@ pub struct ResolverAstLowering {
|
||||
pub next_node_id: ast::NodeId,
|
||||
|
||||
pub node_id_to_def_id: NodeMap<LocalDefId>,
|
||||
pub def_id_to_node_id: IndexVec<LocalDefId, ast::NodeId>,
|
||||
|
||||
pub trait_map: NodeMap<Vec<hir::TraitCandidate>>,
|
||||
/// List functions and methods for which lifetime elision was successful.
|
||||
|
@ -24,7 +24,6 @@ use rustc_middle::query::Providers;
|
||||
use rustc_middle::ty::{self, ExistentialTraitRef, TyCtxt};
|
||||
use rustc_privacy::DefIdVisitor;
|
||||
use rustc_session::config::CrateType;
|
||||
use rustc_target::spec::abi::Abi;
|
||||
|
||||
/// Determines whether this item is recursive for reachability. See `is_recursively_reachable_local`
|
||||
/// below for details.
|
||||
@ -164,16 +163,6 @@ impl<'tcx> ReachableContext<'tcx> {
|
||||
if !self.any_library {
|
||||
// If we are building an executable, only explicitly extern
|
||||
// types need to be exported.
|
||||
let reachable =
|
||||
if let Node::Item(hir::Item { kind: hir::ItemKind::Fn(sig, ..), .. })
|
||||
| Node::ImplItem(hir::ImplItem {
|
||||
kind: hir::ImplItemKind::Fn(sig, ..), ..
|
||||
}) = *node
|
||||
{
|
||||
sig.header.abi != Abi::Rust
|
||||
} else {
|
||||
false
|
||||
};
|
||||
let codegen_attrs = if self.tcx.def_kind(search_item).has_codegen_attrs() {
|
||||
self.tcx.codegen_fn_attrs(search_item)
|
||||
} else {
|
||||
@ -182,7 +171,7 @@ impl<'tcx> ReachableContext<'tcx> {
|
||||
let is_extern = codegen_attrs.contains_extern_indicator();
|
||||
let std_internal =
|
||||
codegen_attrs.flags.contains(CodegenFnAttrFlags::RUSTC_STD_INTERNAL_SYMBOL);
|
||||
if reachable || is_extern || std_internal {
|
||||
if is_extern || std_internal {
|
||||
self.reachable_symbols.insert(search_item);
|
||||
}
|
||||
} else {
|
||||
|
@ -1618,7 +1618,6 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
|
||||
.into_items()
|
||||
.map(|(k, f)| (k, f.key()))
|
||||
.collect(),
|
||||
def_id_to_node_id: self.def_id_to_node_id,
|
||||
trait_map: self.trait_map,
|
||||
lifetime_elision_allowed: self.lifetime_elision_allowed,
|
||||
lint_buffer: Steal::new(self.lint_buffer),
|
||||
|
@ -63,7 +63,10 @@ pub(crate) fn is_printable(x: char) -> bool {
|
||||
if 0x2cea2 <= x && x < 0x2ceb0 {
|
||||
return false;
|
||||
}
|
||||
if 0x2ebe1 <= x && x < 0x2f800 {
|
||||
if 0x2ebe1 <= x && x < 0x2ebf0 {
|
||||
return false;
|
||||
}
|
||||
if 0x2ee5e <= x && x < 0x2f800 {
|
||||
return false;
|
||||
}
|
||||
if 0x2fa1e <= x && x < 0x30000 {
|
||||
@ -112,7 +115,7 @@ const SINGLETONS0U: &[(u8, u8)] = &[
|
||||
(0x2b, 3),
|
||||
(0x2d, 11),
|
||||
(0x2e, 1),
|
||||
(0x30, 3),
|
||||
(0x30, 4),
|
||||
(0x31, 2),
|
||||
(0x32, 1),
|
||||
(0xa7, 2),
|
||||
@ -157,12 +160,12 @@ const SINGLETONS0L: &[u8] = &[
|
||||
0x7e, 0x7f, 0xb5, 0xc5, 0xd4, 0xd5, 0xdc, 0xf0,
|
||||
0xf1, 0xf5, 0x72, 0x73, 0x8f, 0x74, 0x75, 0x96,
|
||||
0x26, 0x2e, 0x2f, 0xa7, 0xaf, 0xb7, 0xbf, 0xc7,
|
||||
0xcf, 0xd7, 0xdf, 0x9a, 0x40, 0x97, 0x98, 0x30,
|
||||
0x8f, 0x1f, 0xd2, 0xd4, 0xce, 0xff, 0x4e, 0x4f,
|
||||
0x5a, 0x5b, 0x07, 0x08, 0x0f, 0x10, 0x27, 0x2f,
|
||||
0xee, 0xef, 0x6e, 0x6f, 0x37, 0x3d, 0x3f, 0x42,
|
||||
0x45, 0x90, 0x91, 0x53, 0x67, 0x75, 0xc8, 0xc9,
|
||||
0xd0, 0xd1, 0xd8, 0xd9, 0xe7, 0xfe, 0xff,
|
||||
0xcf, 0xd7, 0xdf, 0x9a, 0x00, 0x40, 0x97, 0x98,
|
||||
0x30, 0x8f, 0x1f, 0xd2, 0xd4, 0xce, 0xff, 0x4e,
|
||||
0x4f, 0x5a, 0x5b, 0x07, 0x08, 0x0f, 0x10, 0x27,
|
||||
0x2f, 0xee, 0xef, 0x6e, 0x6f, 0x37, 0x3d, 0x3f,
|
||||
0x42, 0x45, 0x90, 0x91, 0x53, 0x67, 0x75, 0xc8,
|
||||
0xc9, 0xd0, 0xd1, 0xd8, 0xd9, 0xe7, 0xfe, 0xff,
|
||||
];
|
||||
#[rustfmt::skip]
|
||||
const SINGLETONS1U: &[(u8, u8)] = &[
|
||||
@ -339,10 +342,9 @@ const NORMAL0: &[u8] = &[
|
||||
0x80, 0xbe, 0x22,
|
||||
0x74, 0x0c,
|
||||
0x80, 0xd6, 0x1a,
|
||||
0x0c, 0x05,
|
||||
0x80, 0xff, 0x05,
|
||||
0x80, 0xdf, 0x0c,
|
||||
0xf2, 0x9d, 0x03,
|
||||
0x81, 0x10, 0x05,
|
||||
0x80, 0xdf, 0x0b,
|
||||
0xf2, 0x9e, 0x03,
|
||||
0x37, 0x09,
|
||||
0x81, 0x5c, 0x14,
|
||||
0x80, 0xb8, 0x08,
|
||||
|
@ -90,7 +90,7 @@ fn check_redundant_explicit_link<'md>(
|
||||
) -> Option<()> {
|
||||
let mut broken_line_callback = |link: BrokenLink<'md>| Some((link.reference, "".into()));
|
||||
let mut offset_iter = Parser::new_with_broken_link_callback(
|
||||
&doc,
|
||||
doc,
|
||||
main_body_opts(),
|
||||
Some(&mut broken_line_callback),
|
||||
)
|
||||
@ -264,6 +264,7 @@ fn collect_link_data(offset_iter: &mut OffsetIter<'_, '_>) -> LinkData {
|
||||
let mut resolvable_link = None;
|
||||
let mut resolvable_link_range = None;
|
||||
let mut display_link = String::new();
|
||||
let mut is_resolvable = true;
|
||||
|
||||
while let Some((event, range)) = offset_iter.next() {
|
||||
match event {
|
||||
@ -281,6 +282,11 @@ fn collect_link_data(offset_iter: &mut OffsetIter<'_, '_>) -> LinkData {
|
||||
resolvable_link = Some(code);
|
||||
resolvable_link_range = Some(range);
|
||||
}
|
||||
Event::Start(_) => {
|
||||
// If there is anything besides backticks, it's not considered as an intra-doc link
|
||||
// so we ignore it.
|
||||
is_resolvable = false;
|
||||
}
|
||||
Event::End(_) => {
|
||||
break;
|
||||
}
|
||||
@ -288,6 +294,11 @@ fn collect_link_data(offset_iter: &mut OffsetIter<'_, '_>) -> LinkData {
|
||||
}
|
||||
}
|
||||
|
||||
if !is_resolvable {
|
||||
resolvable_link_range = None;
|
||||
resolvable_link = None;
|
||||
}
|
||||
|
||||
LinkData { resolvable_link, resolvable_link_range, display_link }
|
||||
}
|
||||
|
||||
|
@ -691,9 +691,9 @@ pub fn line_directive<'line>(
|
||||
}
|
||||
}
|
||||
|
||||
/// This is generated by collecting directives from ui tests and then extracting their directive
|
||||
/// names. This is **not** an exhaustive list of all possible directives. Instead, this is a
|
||||
/// best-effort approximation for diagnostics.
|
||||
/// This was originally generated by collecting directives from ui tests and then extracting their
|
||||
/// directive names. This is **not** an exhaustive list of all possible directives. Instead, this is
|
||||
/// a best-effort approximation for diagnostics. Add new headers to this list when needed.
|
||||
const KNOWN_DIRECTIVE_NAMES: &[&str] = &[
|
||||
// tidy-alphabetical-start
|
||||
"assembly-output",
|
||||
@ -837,6 +837,7 @@ const KNOWN_DIRECTIVE_NAMES: &[&str] = &[
|
||||
"needs-sanitizer-thread",
|
||||
"needs-threads",
|
||||
"needs-unwind",
|
||||
"needs-wasmtime",
|
||||
"needs-xray",
|
||||
"no-prefer-dynamic",
|
||||
"normalize-stderr-32bit",
|
||||
@ -872,6 +873,7 @@ const KNOWN_DIRECTIVE_NAMES: &[&str] = &[
|
||||
"only-unix",
|
||||
"only-wasm32",
|
||||
"only-wasm32-bare",
|
||||
"only-wasm32-wasip1",
|
||||
"only-windows",
|
||||
"only-x86",
|
||||
"only-x86_64",
|
||||
|
@ -149,6 +149,11 @@ pub(super) fn handle_needs(
|
||||
condition: config.target_cfg().relocation_model == "pic",
|
||||
ignore_reason: "ignored on targets without PIC relocation model",
|
||||
},
|
||||
Need {
|
||||
name: "needs-wasmtime",
|
||||
condition: config.runner.as_ref().is_some_and(|r| r.contains("wasmtime")),
|
||||
ignore_reason: "ignored when wasmtime runner is not available",
|
||||
},
|
||||
];
|
||||
|
||||
let (name, comment) = match ln.split_once([':', ' ']) {
|
||||
|
@ -8,6 +8,10 @@
|
||||
//! settings. Turning off optimizations and enabling debug assertions tends to produce the most
|
||||
//! dependence on core that is possible, so that is the configuration we test here.
|
||||
|
||||
// wasm and nvptx targets don't produce rlib files that object can parse.
|
||||
//@ ignore-wasm
|
||||
//@ ignore-nvptx64
|
||||
|
||||
#![deny(warnings)]
|
||||
|
||||
extern crate run_make_support;
|
||||
@ -33,10 +37,6 @@ path = "lib.rs""#;
|
||||
fn main() {
|
||||
let target_dir = tmp_dir().join("target");
|
||||
let target = std::env::var("TARGET").unwrap();
|
||||
if target.starts_with("wasm") || target.starts_with("nvptx") {
|
||||
// wasm and nvptx targets don't produce rlib files that object can parse.
|
||||
return;
|
||||
}
|
||||
|
||||
println!("Testing compiler_builtins for {}", target);
|
||||
|
||||
|
@ -1,3 +1,6 @@
|
||||
//@ only-wasm32-wasip1
|
||||
//@ needs-wasmtime
|
||||
|
||||
extern crate run_make_support;
|
||||
|
||||
use run_make_support::{rustc, tmp_dir};
|
||||
@ -5,23 +8,10 @@ use std::path::Path;
|
||||
use std::process::Command;
|
||||
|
||||
fn main() {
|
||||
if std::env::var("TARGET").unwrap() != "wasm32-wasip1" {
|
||||
return;
|
||||
}
|
||||
|
||||
rustc().input("foo.rs").target("wasm32-wasip1").run();
|
||||
|
||||
let file = tmp_dir().join("foo.wasm");
|
||||
|
||||
let has_wasmtime = match Command::new("wasmtime").arg("--version").output() {
|
||||
Ok(s) => s.status.success(),
|
||||
_ => false,
|
||||
};
|
||||
if !has_wasmtime {
|
||||
println!("skipping test, wasmtime isn't available");
|
||||
return;
|
||||
}
|
||||
|
||||
run(&file, "return_two_i32", "1\n2\n");
|
||||
run(&file, "return_two_i64", "3\n4\n");
|
||||
run(&file, "return_two_f32", "5\n6\n");
|
||||
|
@ -1,13 +1,10 @@
|
||||
//@ only-wasm32-wasip1
|
||||
extern crate run_make_support;
|
||||
|
||||
use run_make_support::{rustc, tmp_dir, wasmparser};
|
||||
use std::collections::HashMap;
|
||||
|
||||
fn main() {
|
||||
if std::env::var("TARGET").unwrap() != "wasm32-wasip1" {
|
||||
return;
|
||||
}
|
||||
|
||||
rustc().input("foo.rs").target("wasm32-wasip1").run();
|
||||
rustc().input("bar.rs").target("wasm32-wasip1").arg("-Clto").opt().run();
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
//@ only-wasm32-wasip1
|
||||
extern crate run_make_support;
|
||||
|
||||
use run_make_support::{tmp_dir, wasmparser, rustc};
|
||||
@ -5,10 +6,6 @@ use std::collections::HashMap;
|
||||
use std::path::Path;
|
||||
|
||||
fn main() {
|
||||
if std::env::var("TARGET").unwrap() != "wasm32-wasip1" {
|
||||
return;
|
||||
}
|
||||
|
||||
rustc().input("foo.rs").target("wasm32-wasip1").opt().run();
|
||||
|
||||
verify(&tmp_dir().join("foo.wasm"));
|
||||
|
@ -1,3 +1,5 @@
|
||||
//@ only-wasm32-wasip1
|
||||
|
||||
extern crate run_make_support;
|
||||
|
||||
use run_make_support::{tmp_dir, wasmparser, rustc};
|
||||
@ -6,10 +8,6 @@ use std::path::Path;
|
||||
use wasmparser::ExternalKind::*;
|
||||
|
||||
fn main() {
|
||||
if std::env::var("TARGET").unwrap() != "wasm32-wasip1" {
|
||||
return;
|
||||
}
|
||||
|
||||
test(&[]);
|
||||
test(&["-O"]);
|
||||
test(&["-Clto"]);
|
||||
|
@ -1,3 +1,5 @@
|
||||
//@ only-wasm32-wasip1
|
||||
|
||||
extern crate run_make_support;
|
||||
|
||||
use run_make_support::{tmp_dir, wasmparser, rustc};
|
||||
@ -5,10 +7,6 @@ use std::collections::HashMap;
|
||||
use wasmparser::TypeRef::Func;
|
||||
|
||||
fn main() {
|
||||
if std::env::var("TARGET").unwrap() != "wasm32-wasip1" {
|
||||
return;
|
||||
}
|
||||
|
||||
rustc().input("foo.rs").target("wasm32-wasip1").run();
|
||||
rustc()
|
||||
.input("bar.rs")
|
||||
|
@ -1,3 +1,4 @@
|
||||
//@ only-wasm32-wasip1
|
||||
#![deny(warnings)]
|
||||
|
||||
extern crate run_make_support;
|
||||
@ -5,10 +6,6 @@ extern crate run_make_support;
|
||||
use run_make_support::{rustc, tmp_dir};
|
||||
|
||||
fn main() {
|
||||
if std::env::var("TARGET").unwrap() != "wasm32-wasip1" {
|
||||
return;
|
||||
}
|
||||
|
||||
test("a");
|
||||
test("b");
|
||||
test("c");
|
||||
|
@ -1,13 +1,11 @@
|
||||
//@ only-wasm32-wasip1
|
||||
|
||||
extern crate run_make_support;
|
||||
|
||||
use run_make_support::{rustc, tmp_dir, wasmparser};
|
||||
use std::collections::HashMap;
|
||||
|
||||
fn main() {
|
||||
if std::env::var("TARGET").unwrap() != "wasm32-wasip1" {
|
||||
return;
|
||||
}
|
||||
|
||||
rustc()
|
||||
.input("main.rs")
|
||||
.target("wasm32-wasip1")
|
||||
|
@ -1,3 +1,4 @@
|
||||
//@ only-wasm32-wasip1
|
||||
#![deny(warnings)]
|
||||
|
||||
extern crate run_make_support;
|
||||
@ -5,10 +6,6 @@ extern crate run_make_support;
|
||||
use run_make_support::{rustc, tmp_dir};
|
||||
|
||||
fn main() {
|
||||
if std::env::var("TARGET").unwrap() != "wasm32-wasip1" {
|
||||
return;
|
||||
}
|
||||
|
||||
rustc().input("foo.rs").target("wasm32-wasip1").arg("-Clto").opt().run();
|
||||
|
||||
let bytes = std::fs::read(&tmp_dir().join("foo.wasm")).unwrap();
|
||||
|
@ -1,13 +1,10 @@
|
||||
//@ only-wasm32-wasip1
|
||||
extern crate run_make_support;
|
||||
|
||||
use run_make_support::{rustc, tmp_dir, wasmparser};
|
||||
use std::collections::{HashMap, HashSet};
|
||||
|
||||
fn main() {
|
||||
if std::env::var("TARGET").unwrap() != "wasm32-wasip1" {
|
||||
return;
|
||||
}
|
||||
|
||||
test_file("foo.rs", &[("a", &["foo"]), ("b", &["foo"])]);
|
||||
test_file("bar.rs", &[("m1", &["f", "g"]), ("m2", &["f"])]);
|
||||
test_file("baz.rs", &[("sqlite", &["allocate", "deallocate"])]);
|
||||
|
@ -1,13 +1,10 @@
|
||||
//@ only-wasm32-wasip1
|
||||
extern crate run_make_support;
|
||||
|
||||
use run_make_support::{rustc, tmp_dir, wasmparser};
|
||||
use std::path::Path;
|
||||
|
||||
fn main() {
|
||||
if std::env::var("TARGET").unwrap() != "wasm32-wasip1" {
|
||||
return;
|
||||
}
|
||||
|
||||
rustc().input("foo.rs").target("wasm32-wasip1").run();
|
||||
verify_symbols(&tmp_dir().join("foo.wasm"));
|
||||
rustc().input("foo.rs").target("wasm32-wasip1").opt().run();
|
||||
|
@ -1,13 +1,10 @@
|
||||
//@ only-wasm32-wasip1
|
||||
extern crate run_make_support;
|
||||
|
||||
use run_make_support::{rustc, tmp_dir, wasmparser};
|
||||
use std::path::Path;
|
||||
|
||||
fn main() {
|
||||
if std::env::var("TARGET").unwrap() != "wasm32-wasip1" {
|
||||
return;
|
||||
}
|
||||
|
||||
rustc().input("foo.rs").target("wasm32-wasip1").run();
|
||||
verify_symbols(&tmp_dir().join("foo.wasm"));
|
||||
rustc().input("foo.rs").target("wasm32-wasip1").arg("-Clto").run();
|
||||
|
8
tests/rustdoc-ui/invalid-redundant-explicit-link.rs
Normal file
8
tests/rustdoc-ui/invalid-redundant-explicit-link.rs
Normal file
@ -0,0 +1,8 @@
|
||||
//@ check-pass
|
||||
|
||||
// Regression test for <https://github.com/rust-lang/rust/issues/123158>. It
|
||||
// should not emit any warning.
|
||||
|
||||
//! [**`SomeTrait`**](SomeTrait):
|
||||
|
||||
pub trait SomeTrait {}
|
8
tests/ui/match/postfix-match/no-unused-parens.rs
Normal file
8
tests/ui/match/postfix-match/no-unused-parens.rs
Normal file
@ -0,0 +1,8 @@
|
||||
//@ check-pass
|
||||
|
||||
#![feature(postfix_match)]
|
||||
|
||||
fn main() {
|
||||
(&1).match { a => a };
|
||||
(1 + 2).match { b => b };
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user