mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 16:24:46 +00:00
Auto merge of #126781 - matthiaskrgr:rollup-5u4pens, r=matthiaskrgr
Rollup of 8 pull requests Successful merges: - #126125 (Improve conflict marker recovery) - #126481 (Add `powerpc-unknown-openbsd` maintenance status) - #126613 (Print the tested value in int_log tests) - #126617 (Expand `avx512_target_feature` to include VEX variants) - #126700 (Make edition dependent `:expr` macro fragment act like the edition-dependent `:pat` fragment does) - #126707 (Pass target to inaccessible-temp-dir rmake test) - #126767 (`StaticForeignItem` and `StaticItem` are the same) - #126774 (Fix another assertion failure for some Expect diagnostics.) r? `@ghost` `@rustbot` modify labels: rollup
This commit is contained in:
commit
d40f30e1df
@ -3184,38 +3184,6 @@ pub struct StaticItem {
|
||||
pub expr: Option<P<Expr>>,
|
||||
}
|
||||
|
||||
/// A static item in `extern` block.
|
||||
// This struct is identical to StaticItem for now but it's going to have a safety attribute.
|
||||
#[derive(Clone, Encodable, Decodable, Debug)]
|
||||
pub struct StaticForeignItem {
|
||||
pub ty: P<Ty>,
|
||||
pub safety: Safety,
|
||||
pub mutability: Mutability,
|
||||
pub expr: Option<P<Expr>>,
|
||||
}
|
||||
|
||||
impl From<StaticItem> for StaticForeignItem {
|
||||
fn from(static_item: StaticItem) -> StaticForeignItem {
|
||||
StaticForeignItem {
|
||||
ty: static_item.ty,
|
||||
safety: static_item.safety,
|
||||
mutability: static_item.mutability,
|
||||
expr: static_item.expr,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<StaticForeignItem> for StaticItem {
|
||||
fn from(static_item: StaticForeignItem) -> StaticItem {
|
||||
StaticItem {
|
||||
ty: static_item.ty,
|
||||
safety: static_item.safety,
|
||||
mutability: static_item.mutability,
|
||||
expr: static_item.expr,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Encodable, Decodable, Debug)]
|
||||
pub struct ConstItem {
|
||||
pub defaultness: Defaultness,
|
||||
@ -3430,7 +3398,7 @@ impl TryFrom<ItemKind> for AssocItemKind {
|
||||
#[derive(Clone, Encodable, Decodable, Debug)]
|
||||
pub enum ForeignItemKind {
|
||||
/// A foreign static item (`static FOO: u8`).
|
||||
Static(Box<StaticForeignItem>),
|
||||
Static(Box<StaticItem>),
|
||||
/// An foreign function.
|
||||
Fn(Box<Fn>),
|
||||
/// An foreign type.
|
||||
|
@ -1310,12 +1310,7 @@ pub fn noop_flat_map_item<K: NoopVisitItemKind>(
|
||||
impl NoopVisitItemKind for ForeignItemKind {
|
||||
fn noop_visit(&mut self, visitor: &mut impl MutVisitor) {
|
||||
match self {
|
||||
ForeignItemKind::Static(box StaticForeignItem {
|
||||
ty,
|
||||
mutability: _,
|
||||
expr,
|
||||
safety: _,
|
||||
}) => {
|
||||
ForeignItemKind::Static(box StaticItem { ty, mutability: _, expr, safety: _ }) => {
|
||||
visitor.visit_ty(ty);
|
||||
visit_opt(expr, |expr| visitor.visit_expr(expr));
|
||||
}
|
||||
|
@ -900,7 +900,11 @@ pub enum NonterminalKind {
|
||||
PatWithOr,
|
||||
Expr,
|
||||
/// Matches an expression using the rules from edition 2021 and earlier.
|
||||
Expr2021,
|
||||
Expr2021 {
|
||||
/// Keep track of whether the user used `:expr` or `:expr_2021` and we inferred it from the
|
||||
/// edition of the span. This is used for diagnostics AND feature gating.
|
||||
inferred: bool,
|
||||
},
|
||||
Ty,
|
||||
Ident,
|
||||
Lifetime,
|
||||
@ -929,8 +933,13 @@ impl NonterminalKind {
|
||||
Edition::Edition2021 | Edition::Edition2024 => NonterminalKind::PatWithOr,
|
||||
},
|
||||
sym::pat_param => NonterminalKind::PatParam { inferred: false },
|
||||
sym::expr => NonterminalKind::Expr,
|
||||
sym::expr_2021 if edition().at_least_rust_2021() => NonterminalKind::Expr2021,
|
||||
sym::expr => match edition() {
|
||||
Edition::Edition2015 | Edition::Edition2018 | Edition::Edition2021 => {
|
||||
NonterminalKind::Expr2021 { inferred: true }
|
||||
}
|
||||
Edition::Edition2024 => NonterminalKind::Expr,
|
||||
},
|
||||
sym::expr_2021 => NonterminalKind::Expr2021 { inferred: false },
|
||||
sym::ty => NonterminalKind::Ty,
|
||||
sym::ident => NonterminalKind::Ident,
|
||||
sym::lifetime => NonterminalKind::Lifetime,
|
||||
@ -949,8 +958,8 @@ impl NonterminalKind {
|
||||
NonterminalKind::Stmt => sym::stmt,
|
||||
NonterminalKind::PatParam { inferred: false } => sym::pat_param,
|
||||
NonterminalKind::PatParam { inferred: true } | NonterminalKind::PatWithOr => sym::pat,
|
||||
NonterminalKind::Expr => sym::expr,
|
||||
NonterminalKind::Expr2021 => sym::expr_2021,
|
||||
NonterminalKind::Expr | NonterminalKind::Expr2021 { inferred: true } => sym::expr,
|
||||
NonterminalKind::Expr2021 { inferred: false } => sym::expr_2021,
|
||||
NonterminalKind::Ty => sym::ty,
|
||||
NonterminalKind::Ident => sym::ident,
|
||||
NonterminalKind::Lifetime => sym::lifetime,
|
||||
|
@ -672,12 +672,7 @@ impl WalkItemKind for ForeignItemKind {
|
||||
) -> V::Result {
|
||||
let &Item { id, span, ident, ref vis, .. } = item;
|
||||
match self {
|
||||
ForeignItemKind::Static(box StaticForeignItem {
|
||||
ty,
|
||||
mutability: _,
|
||||
expr,
|
||||
safety: _,
|
||||
}) => {
|
||||
ForeignItemKind::Static(box StaticItem { ty, mutability: _, expr, safety: _ }) => {
|
||||
try_visit!(visitor.visit_ty(ty));
|
||||
visit_opt!(visitor, visit_expr, expr);
|
||||
}
|
||||
|
@ -664,12 +664,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
|
||||
|
||||
hir::ForeignItemKind::Fn(fn_dec, fn_args, generics, safety)
|
||||
}
|
||||
ForeignItemKind::Static(box StaticForeignItem {
|
||||
ty,
|
||||
mutability,
|
||||
expr: _,
|
||||
safety,
|
||||
}) => {
|
||||
ForeignItemKind::Static(box StaticItem { ty, mutability, expr: _, safety }) => {
|
||||
let ty = self
|
||||
.lower_ty(ty, ImplTraitContext::Disallowed(ImplTraitPosition::StaticTy));
|
||||
let safety = self.lower_safety(*safety, hir::Safety::Unsafe);
|
||||
|
@ -1232,7 +1232,7 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
|
||||
self.check_foreign_ty_genericless(generics, where_clauses);
|
||||
self.check_foreign_item_ascii_only(fi.ident);
|
||||
}
|
||||
ForeignItemKind::Static(box StaticForeignItem { expr, safety, .. }) => {
|
||||
ForeignItemKind::Static(box StaticItem { expr, safety, .. }) => {
|
||||
self.check_foreign_item_safety(fi.span, *safety);
|
||||
self.check_foreign_kind_bodyless(fi.ident, "static", expr.as_ref().map(|b| b.span));
|
||||
self.check_foreign_item_ascii_only(fi.ident);
|
||||
|
@ -37,12 +37,7 @@ impl<'a> State<'a> {
|
||||
ast::ForeignItemKind::Fn(box ast::Fn { defaultness, sig, generics, body }) => {
|
||||
self.print_fn_full(sig, ident, generics, vis, *defaultness, body.as_deref(), attrs);
|
||||
}
|
||||
ast::ForeignItemKind::Static(box ast::StaticForeignItem {
|
||||
ty,
|
||||
mutability,
|
||||
expr,
|
||||
safety,
|
||||
}) => {
|
||||
ast::ForeignItemKind::Static(box ast::StaticItem { ty, mutability, expr, safety }) => {
|
||||
self.print_safety(*safety);
|
||||
self.print_item_const(
|
||||
ident,
|
||||
|
@ -1456,10 +1456,10 @@ impl DiagCtxtInner {
|
||||
}
|
||||
|
||||
if diagnostic.has_future_breakage() {
|
||||
// Future breakages aren't emitted if they're `Level::Allow`,
|
||||
// but they still need to be constructed and stashed below,
|
||||
// so they'll trigger the must_produce_diag check.
|
||||
assert!(matches!(diagnostic.level, Error | Warning | Allow));
|
||||
// Future breakages aren't emitted if they're `Level::Allow` or
|
||||
// `Level::Expect`, but they still need to be constructed and
|
||||
// stashed below, so they'll trigger the must_produce_diag check.
|
||||
assert!(matches!(diagnostic.level, Error | Warning | Allow | Expect(_)));
|
||||
self.future_breakage_diagnostics.push(diagnostic.clone());
|
||||
}
|
||||
|
||||
|
@ -1292,7 +1292,9 @@ fn is_in_follow(tok: &mbe::TokenTree, kind: NonterminalKind) -> IsInFollow {
|
||||
// maintain
|
||||
IsInFollow::Yes
|
||||
}
|
||||
NonterminalKind::Stmt | NonterminalKind::Expr | NonterminalKind::Expr2021 => {
|
||||
NonterminalKind::Stmt
|
||||
| NonterminalKind::Expr
|
||||
| NonterminalKind::Expr2021 { inferred: _ } => {
|
||||
const TOKENS: &[&str] = &["`=>`", "`,`", "`;`"];
|
||||
match tok {
|
||||
TokenTree::Token(token) => match token.kind {
|
||||
|
@ -113,7 +113,8 @@ pub(super) fn parse(
|
||||
);
|
||||
token::NonterminalKind::Ident
|
||||
});
|
||||
if kind == token::NonterminalKind::Expr2021
|
||||
if kind
|
||||
== (token::NonterminalKind::Expr2021 { inferred: false })
|
||||
&& !features.expr_fragment_specifier_2024
|
||||
{
|
||||
rustc_session::parse::feature_err(
|
||||
|
@ -2965,9 +2965,10 @@ impl<'a> Parser<'a> {
|
||||
|
||||
/// This checks if this is a conflict marker, depending of the parameter passed.
|
||||
///
|
||||
/// * `>>>>>`
|
||||
/// * `=====`
|
||||
/// * `<<<<<`
|
||||
/// * `<<<<<<<`
|
||||
/// * `|||||||`
|
||||
/// * `=======`
|
||||
/// * `>>>>>>>`
|
||||
///
|
||||
pub(super) fn is_vcs_conflict_marker(
|
||||
&mut self,
|
||||
@ -2997,14 +2998,18 @@ impl<'a> Parser<'a> {
|
||||
}
|
||||
|
||||
pub(crate) fn err_vcs_conflict_marker(&mut self) -> PResult<'a, ()> {
|
||||
// <<<<<<<
|
||||
let Some(start) = self.conflict_marker(&TokenKind::BinOp(token::Shl), &TokenKind::Lt)
|
||||
else {
|
||||
return Ok(());
|
||||
};
|
||||
let mut spans = Vec::with_capacity(3);
|
||||
spans.push(start);
|
||||
// |||||||
|
||||
let mut middlediff3 = None;
|
||||
// =======
|
||||
let mut middle = None;
|
||||
// >>>>>>>
|
||||
let mut end = None;
|
||||
loop {
|
||||
if self.token.kind == TokenKind::Eof {
|
||||
@ -3025,29 +3030,50 @@ impl<'a> Parser<'a> {
|
||||
}
|
||||
self.bump();
|
||||
}
|
||||
|
||||
let mut err = self.dcx().struct_span_err(spans, "encountered diff marker");
|
||||
err.span_label(start, "after this is the code before the merge");
|
||||
if let Some(middle) = middlediff3 {
|
||||
err.span_label(middle, "");
|
||||
}
|
||||
match middlediff3 {
|
||||
// We're using diff3
|
||||
Some(middlediff3) => {
|
||||
err.span_label(
|
||||
start,
|
||||
"between this marker and `|||||||` is the code that we're merging into",
|
||||
);
|
||||
err.span_label(middlediff3, "between this marker and `=======` is the base code (what the two refs diverged from)");
|
||||
}
|
||||
None => {
|
||||
err.span_label(
|
||||
start,
|
||||
"between this marker and `=======` is the code that we're merging into",
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
if let Some(middle) = middle {
|
||||
err.span_label(middle, "");
|
||||
err.span_label(middle, "between this marker and `>>>>>>>` is the incoming code");
|
||||
}
|
||||
if let Some(end) = end {
|
||||
err.span_label(end, "above this are the incoming code changes");
|
||||
err.span_label(end, "this marker concludes the conflict region");
|
||||
}
|
||||
err.help(
|
||||
"if you're having merge conflicts after pulling new code, the top section is the code \
|
||||
you already had and the bottom section is the remote code",
|
||||
);
|
||||
err.help(
|
||||
"if you're in the middle of a rebase, the top section is the code being rebased onto \
|
||||
and the bottom section is the code coming from the current commit being rebased",
|
||||
);
|
||||
err.note(
|
||||
"for an explanation on these markers from the `git` documentation, visit \
|
||||
<https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>",
|
||||
"conflict markers indicate that a merge was started but could not be completed due \
|
||||
to merge conflicts\n\
|
||||
to resolve a conflict, keep only the code you want and then delete the lines \
|
||||
containing conflict markers",
|
||||
);
|
||||
err.help(
|
||||
"if you're having merge conflicts after pulling new code:\n\
|
||||
the top section is the code you already had and the bottom section is the remote code\n\
|
||||
if you're in the middle of a rebase:\n\
|
||||
the top section is the code being rebased onto and the bottom section is the code \
|
||||
coming from the current commit being rebased",
|
||||
);
|
||||
|
||||
err.note(
|
||||
"for an explanation on these markers from the `git` documentation:\n\
|
||||
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>",
|
||||
);
|
||||
|
||||
Err(err)
|
||||
}
|
||||
|
||||
|
@ -1228,7 +1228,7 @@ impl<'a> Parser<'a> {
|
||||
ident_span: ident.span,
|
||||
const_span,
|
||||
});
|
||||
ForeignItemKind::Static(Box::new(StaticForeignItem {
|
||||
ForeignItemKind::Static(Box::new(StaticItem {
|
||||
ty,
|
||||
mutability: Mutability::Not,
|
||||
expr,
|
||||
|
@ -36,7 +36,7 @@ impl<'a> Parser<'a> {
|
||||
}
|
||||
|
||||
match kind {
|
||||
NonterminalKind::Expr2021 => {
|
||||
NonterminalKind::Expr2021 { inferred: _ } => {
|
||||
token.can_begin_expr()
|
||||
// This exception is here for backwards compatibility.
|
||||
&& !token.is_keyword(kw::Let)
|
||||
@ -47,7 +47,6 @@ impl<'a> Parser<'a> {
|
||||
token.can_begin_expr()
|
||||
// This exception is here for backwards compatibility.
|
||||
&& !token.is_keyword(kw::Let)
|
||||
&& (!token.is_keyword(kw::Const) || token.span.edition().at_least_rust_2024())
|
||||
}
|
||||
NonterminalKind::Ty => token.can_begin_type(),
|
||||
NonterminalKind::Ident => get_macro_ident(token).is_some(),
|
||||
@ -149,7 +148,7 @@ impl<'a> Parser<'a> {
|
||||
})?)
|
||||
}
|
||||
|
||||
NonterminalKind::Expr | NonterminalKind::Expr2021 => {
|
||||
NonterminalKind::Expr | NonterminalKind::Expr2021 { inferred: _ } => {
|
||||
NtExpr(self.parse_expr_force_collect()?)
|
||||
}
|
||||
NonterminalKind::Literal => {
|
||||
|
@ -217,12 +217,7 @@ impl<'a, 'b, 'tcx> visit::Visitor<'a> for DefCollector<'a, 'b, 'tcx> {
|
||||
|
||||
fn visit_foreign_item(&mut self, fi: &'a ForeignItem) {
|
||||
let def_kind = match fi.kind {
|
||||
ForeignItemKind::Static(box StaticForeignItem {
|
||||
ty: _,
|
||||
mutability,
|
||||
expr: _,
|
||||
safety,
|
||||
}) => {
|
||||
ForeignItemKind::Static(box StaticItem { ty: _, mutability, expr: _, safety }) => {
|
||||
let safety = match safety {
|
||||
ast::Safety::Unsafe(_) | ast::Safety::Default => hir::Safety::Unsafe,
|
||||
ast::Safety::Safe(_) => hir::Safety::Safe,
|
||||
|
@ -208,6 +208,11 @@ const X86_ALLOWED_FEATURES: &[(&str, Stability)] = &[
|
||||
("avx512vnni", Unstable(sym::avx512_target_feature)),
|
||||
("avx512vp2intersect", Unstable(sym::avx512_target_feature)),
|
||||
("avx512vpopcntdq", Unstable(sym::avx512_target_feature)),
|
||||
("avxifma", Unstable(sym::avx512_target_feature)),
|
||||
("avxneconvert", Unstable(sym::avx512_target_feature)),
|
||||
("avxvnni", Unstable(sym::avx512_target_feature)),
|
||||
("avxvnniint16", Unstable(sym::avx512_target_feature)),
|
||||
("avxvnniint8", Unstable(sym::avx512_target_feature)),
|
||||
("bmi1", Stable),
|
||||
("bmi2", Stable),
|
||||
("cmpxchg16b", Stable),
|
||||
|
@ -24,15 +24,15 @@ fn checked_ilog() {
|
||||
|
||||
#[cfg(not(miri))] // Miri is too slow
|
||||
for i in i16::MIN..=0 {
|
||||
assert_eq!(i.checked_ilog(4), None);
|
||||
assert_eq!(i.checked_ilog(4), None, "checking {i}");
|
||||
}
|
||||
#[cfg(not(miri))] // Miri is too slow
|
||||
for i in 1..=i16::MAX {
|
||||
assert_eq!(i.checked_ilog(13), Some((i as f32).log(13.0) as u32));
|
||||
assert_eq!(i.checked_ilog(13), Some((i as f32).log(13.0) as u32), "checking {i}");
|
||||
}
|
||||
#[cfg(not(miri))] // Miri is too slow
|
||||
for i in 1..=u16::MAX {
|
||||
assert_eq!(i.checked_ilog(13), Some((i as f32).log(13.0) as u32));
|
||||
assert_eq!(i.checked_ilog(13), Some((i as f32).log(13.0) as u32), "checking {i}");
|
||||
}
|
||||
}
|
||||
|
||||
@ -49,30 +49,30 @@ fn checked_ilog2() {
|
||||
assert_eq!(0i16.checked_ilog2(), None);
|
||||
|
||||
for i in 1..=u8::MAX {
|
||||
assert_eq!(i.checked_ilog2(), Some((i as f32).log2() as u32));
|
||||
assert_eq!(i.checked_ilog2(), Some((i as f32).log2() as u32), "checking {i}");
|
||||
}
|
||||
#[cfg(not(miri))] // Miri is too slow
|
||||
for i in 1..=u16::MAX {
|
||||
// Guard against Android's imprecise f32::ilog2 implementation.
|
||||
if i != 8192 && i != 32768 {
|
||||
assert_eq!(i.checked_ilog2(), Some((i as f32).log2() as u32));
|
||||
assert_eq!(i.checked_ilog2(), Some((i as f32).log2() as u32), "checking {i}");
|
||||
}
|
||||
}
|
||||
for i in i8::MIN..=0 {
|
||||
assert_eq!(i.checked_ilog2(), None);
|
||||
assert_eq!(i.checked_ilog2(), None, "checking {i}");
|
||||
}
|
||||
for i in 1..=i8::MAX {
|
||||
assert_eq!(i.checked_ilog2(), Some((i as f32).log2() as u32));
|
||||
assert_eq!(i.checked_ilog2(), Some((i as f32).log2() as u32), "checking {i}");
|
||||
}
|
||||
#[cfg(not(miri))] // Miri is too slow
|
||||
for i in i16::MIN..=0 {
|
||||
assert_eq!(i.checked_ilog2(), None);
|
||||
assert_eq!(i.checked_ilog2(), None, "checking {i}");
|
||||
}
|
||||
#[cfg(not(miri))] // Miri is too slow
|
||||
for i in 1..=i16::MAX {
|
||||
// Guard against Android's imprecise f32::ilog2 implementation.
|
||||
if i != 8192 {
|
||||
assert_eq!(i.checked_ilog2(), Some((i as f32).log2() as u32));
|
||||
assert_eq!(i.checked_ilog2(), Some((i as f32).log2() as u32), "checking {i}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -95,19 +95,19 @@ fn checked_ilog10() {
|
||||
|
||||
#[cfg(not(miri))] // Miri is too slow
|
||||
for i in i16::MIN..=0 {
|
||||
assert_eq!(i.checked_ilog10(), None);
|
||||
assert_eq!(i.checked_ilog10(), None, "checking {i}");
|
||||
}
|
||||
#[cfg(not(miri))] // Miri is too slow
|
||||
for i in 1..=i16::MAX {
|
||||
assert_eq!(i.checked_ilog10(), Some((i as f32).log10() as u32));
|
||||
assert_eq!(i.checked_ilog10(), Some((i as f32).log10() as u32), "checking {i}");
|
||||
}
|
||||
#[cfg(not(miri))] // Miri is too slow
|
||||
for i in 1..=u16::MAX {
|
||||
assert_eq!(i.checked_ilog10(), Some((i as f32).log10() as u32));
|
||||
assert_eq!(i.checked_ilog10(), Some((i as f32).log10() as u32), "checking {i}");
|
||||
}
|
||||
#[cfg(not(miri))] // Miri is too slow
|
||||
for i in 1..=100_000u32 {
|
||||
assert_eq!(i.checked_ilog10(), Some((i as f32).log10() as u32));
|
||||
assert_eq!(i.checked_ilog10(), Some((i as f32).log10() as u32), "checking {i}");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -60,6 +60,7 @@
|
||||
- [mipsel-sony-psx](platform-support/mipsel-sony-psx.md)
|
||||
- [mipsisa\*r6\*-unknown-linux-gnu\*](platform-support/mips-release-6.md)
|
||||
- [nvptx64-nvidia-cuda](platform-support/nvptx64-nvidia-cuda.md)
|
||||
- [powerpc-unknown-openbsd](platform-support/powerpc-unknown-openbsd.md)
|
||||
- [powerpc64-ibm-aix](platform-support/aix.md)
|
||||
- [riscv32im-risc0-zkvm-elf](platform-support/riscv32im-risc0-zkvm-elf.md)
|
||||
- [riscv32imac-unknown-xous-elf](platform-support/riscv32imac-unknown-xous-elf.md)
|
||||
|
@ -330,7 +330,7 @@ target | std | host | notes
|
||||
`powerpc-unknown-linux-gnuspe` | ✓ | | PowerPC SPE Linux
|
||||
`powerpc-unknown-linux-musl` | ? | | PowerPC Linux with musl 1.2.3
|
||||
[`powerpc-unknown-netbsd`](platform-support/netbsd.md) | ✓ | ✓ | NetBSD 32-bit powerpc systems
|
||||
`powerpc-unknown-openbsd` | ? | |
|
||||
[`powerpc-unknown-openbsd`](platform-support/powerpc-unknown-openbsd.md) | * | |
|
||||
`powerpc-wrs-vxworks-spe` | ? | |
|
||||
`powerpc-wrs-vxworks` | ? | |
|
||||
`powerpc64-unknown-freebsd` | ✓ | ✓ | PPC64 FreeBSD (ELFv1 and ELFv2)
|
||||
|
@ -0,0 +1,3 @@
|
||||
## Designated maintainers
|
||||
|
||||
`powerpc-unknown-openbsd` is not maintained by OpenBSD developers and there are currently no active rustc maintainers.
|
@ -449,13 +449,13 @@ pub fn eq_foreign_item_kind(l: &ForeignItemKind, r: &ForeignItemKind) -> bool {
|
||||
use ForeignItemKind::*;
|
||||
match (l, r) {
|
||||
(
|
||||
Static(box StaticForeignItem {
|
||||
Static(box StaticItem {
|
||||
ty: lt,
|
||||
mutability: lm,
|
||||
expr: le,
|
||||
safety: ls,
|
||||
}),
|
||||
Static(box StaticForeignItem {
|
||||
Static(box StaticItem {
|
||||
ty: rt,
|
||||
mutability: rm,
|
||||
expr: re,
|
||||
|
@ -19,7 +19,7 @@
|
||||
// Reason: `set_readonly` has no effect on directories
|
||||
// and does not prevent modification.
|
||||
|
||||
use run_make_support::{fs_wrapper, rustc, test_while_readonly};
|
||||
use run_make_support::{fs_wrapper, rustc, target, test_while_readonly};
|
||||
|
||||
fn main() {
|
||||
// Create an inaccessible directory.
|
||||
@ -28,6 +28,7 @@ fn main() {
|
||||
// Run rustc with `-Z temps-dir` set to a directory *inside* the inaccessible one,
|
||||
// so that it can't create `tmp`.
|
||||
rustc()
|
||||
.target(&target())
|
||||
.input("program.rs")
|
||||
.arg("-Ztemps-dir=inaccessible/tmp")
|
||||
.run_fail()
|
||||
|
@ -251,7 +251,7 @@ warning: unexpected `cfg` condition value: `zebra`
|
||||
LL | cfg!(target_feature = "zebra");
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: expected values for `target_feature` are: `10e60`, `2e3`, `3e3r1`, `3e3r2`, `3e3r3`, `3e7`, `7e10`, `a`, `aclass`, `adx`, `aes`, `altivec`, `alu32`, `atomics`, `avx`, `avx2`, `avx512bf16`, `avx512bitalg`, `avx512bw`, `avx512cd`, `avx512dq`, `avx512f`, `avx512fp16`, `avx512ifma`, `avx512vbmi`, `avx512vbmi2`, `avx512vl`, `avx512vnni`, `avx512vp2intersect`, `avx512vpopcntdq`, `bf16`, `bmi1`, `bmi2`, `bti`, and `bulk-memory` and 186 more
|
||||
= note: expected values for `target_feature` are: `10e60`, `2e3`, `3e3r1`, `3e3r2`, `3e3r3`, `3e7`, `7e10`, `a`, `aclass`, `adx`, `aes`, `altivec`, `alu32`, `atomics`, `avx`, `avx2`, `avx512bf16`, `avx512bitalg`, `avx512bw`, `avx512cd`, `avx512dq`, `avx512f`, `avx512fp16`, `avx512ifma`, `avx512vbmi`, `avx512vbmi2`, `avx512vl`, `avx512vnni`, `avx512vp2intersect`, `avx512vpopcntdq`, `avxifma`, `avxneconvert`, `avxvnni`, `avxvnniint16`, and `avxvnniint8` and 191 more
|
||||
= note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg.html> for more information about checking conditional configuration
|
||||
|
||||
warning: 27 warnings emitted
|
||||
|
@ -165,7 +165,7 @@ warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
|
||||
LL | target_feature = "_UNEXPECTED_VALUE",
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: expected values for `target_feature` are: `10e60`, `2e3`, `3e3r1`, `3e3r2`, `3e3r3`, `3e7`, `7e10`, `a`, `aclass`, `adx`, `aes`, `altivec`, `alu32`, `atomics`, `avx`, `avx2`, `avx512bf16`, `avx512bitalg`, `avx512bw`, `avx512cd`, `avx512dq`, `avx512f`, `avx512fp16`, `avx512ifma`, `avx512vbmi`, `avx512vbmi2`, `avx512vl`, `avx512vnni`, `avx512vp2intersect`, `avx512vpopcntdq`, `bf16`, `bmi1`, `bmi2`, `bti`, `bulk-memory`, `c`, `cache`, `cmpxchg16b`, `crc`, `crt-static`, `d`, `d32`, `dit`, `doloop`, `dotprod`, `dpb`, `dpb2`, `dsp`, `dsp1e2`, `dspe60`, `e`, `e1`, `e2`, `edsp`, `elrw`, `ermsb`, `exception-handling`, `extended-const`, `f`, `f16c`, `f32mm`, `f64mm`, `fcma`, `fdivdu`, `fhm`, `flagm`, `float1e2`, `float1e3`, `float3e4`, `float7e60`, `floate1`, `fma`, `fp-armv8`, `fp16`, `fp64`, `fpuv2_df`, `fpuv2_sf`, `fpuv3_df`, `fpuv3_hf`, `fpuv3_hi`, `fpuv3_sf`, `frecipe`, `frintts`, `fxsr`, `gfni`, `hard-float`, `hard-float-abi`, `hard-tp`, `high-registers`, `hvx`, `hvx-length128b`, `hwdiv`, `i8mm`, `jsconv`, `lahfsahf`, `lasx`, `lbt`, `lor`, `lse`, `lsx`, `lvz`, `lzcnt`, `m`, `mclass`, `movbe`, `mp`, `mp1e2`, `msa`, `mte`, `multivalue`, `mutable-globals`, `neon`, `nontrapping-fptoint`, `nvic`, `paca`, `pacg`, `pan`, `pclmulqdq`, `pmuv3`, `popcnt`, `power10-vector`, `power8-altivec`, `power8-vector`, `power9-altivec`, `power9-vector`, `prfchw`, `rand`, `ras`, `rclass`, `rcpc`, `rcpc2`, `rdm`, `rdrand`, `rdseed`, `reference-types`, `relax`, `relaxed-simd`, `rtm`, `sb`, `sha`, `sha2`, `sha3`, `sign-ext`, `simd128`, `sm4`, `spe`, `ssbs`, `sse`, `sse2`, `sse3`, `sse4.1`, `sse4.2`, `sse4a`, `ssse3`, `sve`, `sve2`, `sve2-aes`, `sve2-bitperm`, `sve2-sha3`, `sve2-sm4`, `tbm`, `thumb-mode`, `thumb2`, `tme`, `trust`, `trustzone`, `ual`, `unaligned-scalar-mem`, `v`, `v5te`, `v6`, `v6k`, `v6t2`, `v7`, `v8`, `v8.1a`, `v8.2a`, `v8.3a`, `v8.4a`, `v8.5a`, `v8.6a`, `v8.7a`, `vaes`, `vdsp2e60f`, `vdspv1`, `vdspv2`, `vfp2`, `vfp3`, `vfp4`, `vh`, `virt`, `virtualization`, `vpclmulqdq`, `vsx`, `xsave`, `xsavec`, `xsaveopt`, `xsaves`, `zba`, `zbb`, `zbc`, `zbkb`, `zbkc`, `zbkx`, `zbs`, `zdinx`, `zfh`, `zfhmin`, `zfinx`, `zhinx`, `zhinxmin`, `zk`, `zkn`, `zknd`, `zkne`, `zknh`, `zkr`, `zks`, `zksed`, `zksh`, and `zkt`
|
||||
= note: expected values for `target_feature` are: `10e60`, `2e3`, `3e3r1`, `3e3r2`, `3e3r3`, `3e7`, `7e10`, `a`, `aclass`, `adx`, `aes`, `altivec`, `alu32`, `atomics`, `avx`, `avx2`, `avx512bf16`, `avx512bitalg`, `avx512bw`, `avx512cd`, `avx512dq`, `avx512f`, `avx512fp16`, `avx512ifma`, `avx512vbmi`, `avx512vbmi2`, `avx512vl`, `avx512vnni`, `avx512vp2intersect`, `avx512vpopcntdq`, `avxifma`, `avxneconvert`, `avxvnni`, `avxvnniint16`, `avxvnniint8`, `bf16`, `bmi1`, `bmi2`, `bti`, `bulk-memory`, `c`, `cache`, `cmpxchg16b`, `crc`, `crt-static`, `d`, `d32`, `dit`, `doloop`, `dotprod`, `dpb`, `dpb2`, `dsp`, `dsp1e2`, `dspe60`, `e`, `e1`, `e2`, `edsp`, `elrw`, `ermsb`, `exception-handling`, `extended-const`, `f`, `f16c`, `f32mm`, `f64mm`, `fcma`, `fdivdu`, `fhm`, `flagm`, `float1e2`, `float1e3`, `float3e4`, `float7e60`, `floate1`, `fma`, `fp-armv8`, `fp16`, `fp64`, `fpuv2_df`, `fpuv2_sf`, `fpuv3_df`, `fpuv3_hf`, `fpuv3_hi`, `fpuv3_sf`, `frecipe`, `frintts`, `fxsr`, `gfni`, `hard-float`, `hard-float-abi`, `hard-tp`, `high-registers`, `hvx`, `hvx-length128b`, `hwdiv`, `i8mm`, `jsconv`, `lahfsahf`, `lasx`, `lbt`, `lor`, `lse`, `lsx`, `lvz`, `lzcnt`, `m`, `mclass`, `movbe`, `mp`, `mp1e2`, `msa`, `mte`, `multivalue`, `mutable-globals`, `neon`, `nontrapping-fptoint`, `nvic`, `paca`, `pacg`, `pan`, `pclmulqdq`, `pmuv3`, `popcnt`, `power10-vector`, `power8-altivec`, `power8-vector`, `power9-altivec`, `power9-vector`, `prfchw`, `rand`, `ras`, `rclass`, `rcpc`, `rcpc2`, `rdm`, `rdrand`, `rdseed`, `reference-types`, `relax`, `relaxed-simd`, `rtm`, `sb`, `sha`, `sha2`, `sha3`, `sign-ext`, `simd128`, `sm4`, `spe`, `ssbs`, `sse`, `sse2`, `sse3`, `sse4.1`, `sse4.2`, `sse4a`, `ssse3`, `sve`, `sve2`, `sve2-aes`, `sve2-bitperm`, `sve2-sha3`, `sve2-sm4`, `tbm`, `thumb-mode`, `thumb2`, `tme`, `trust`, `trustzone`, `ual`, `unaligned-scalar-mem`, `v`, `v5te`, `v6`, `v6k`, `v6t2`, `v7`, `v8`, `v8.1a`, `v8.2a`, `v8.3a`, `v8.4a`, `v8.5a`, `v8.6a`, `v8.7a`, `vaes`, `vdsp2e60f`, `vdspv1`, `vdspv2`, `vfp2`, `vfp3`, `vfp4`, `vh`, `virt`, `virtualization`, `vpclmulqdq`, `vsx`, `xsave`, `xsavec`, `xsaveopt`, `xsaves`, `zba`, `zbb`, `zbc`, `zbkb`, `zbkc`, `zbkx`, `zbs`, `zdinx`, `zfh`, `zfhmin`, `zfinx`, `zhinx`, `zhinxmin`, `zk`, `zkn`, `zknd`, `zkne`, `zknh`, `zkr`, `zks`, `zksed`, `zksh`, and `zkt`
|
||||
= note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg.html> for more information about checking conditional configuration
|
||||
|
||||
warning: unexpected `cfg` condition value: `_UNEXPECTED_VALUE`
|
||||
|
@ -1,11 +1,23 @@
|
||||
// This test covers similar crashes from both #126521 and #126751.
|
||||
|
||||
macro_rules! foo {
|
||||
($val:ident) => {
|
||||
true;
|
||||
};
|
||||
}
|
||||
|
||||
macro_rules! bar {
|
||||
($val:ident) => {
|
||||
(5_i32.overflowing_sub(3));
|
||||
};
|
||||
}
|
||||
|
||||
fn main() {
|
||||
#[expect(semicolon_in_expressions_from_macros)]
|
||||
//~^ ERROR the `#[expect]` attribute is an experimental feature
|
||||
let _ = foo!(x);
|
||||
|
||||
#[expect(semicolon_in_expressions_from_macros)]
|
||||
//~^ ERROR the `#[expect]` attribute is an experimental feature
|
||||
let _ = bar!(x);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
error[E0658]: the `#[expect]` attribute is an experimental feature
|
||||
--> $DIR/expect-future_breakage-crash-issue-126521.rs:8:5
|
||||
--> $DIR/expect-future_breakage-crash-issue-126521.rs:16:5
|
||||
|
|
||||
LL | #[expect(semicolon_in_expressions_from_macros)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
@ -8,6 +8,16 @@ LL | #[expect(semicolon_in_expressions_from_macros)]
|
||||
= help: add `#![feature(lint_reasons)]` to the crate attributes to enable
|
||||
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
error[E0658]: the `#[expect]` attribute is an experimental feature
|
||||
--> $DIR/expect-future_breakage-crash-issue-126521.rs:20:5
|
||||
|
|
||||
LL | #[expect(semicolon_in_expressions_from_macros)]
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: see issue #54503 <https://github.com/rust-lang/rust/issues/54503> for more information
|
||||
= help: add `#![feature(lint_reasons)]` to the crate attributes to enable
|
||||
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0658`.
|
||||
|
9
tests/ui/macros/auxiliary/expr_2021_implicit.rs
Normal file
9
tests/ui/macros/auxiliary/expr_2021_implicit.rs
Normal file
@ -0,0 +1,9 @@
|
||||
//@ edition:2021
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! m {
|
||||
($expr:expr) => {
|
||||
compile_error!("did not expect an expression to be parsed");
|
||||
};
|
||||
(const { }) => {};
|
||||
}
|
12
tests/ui/macros/expr_2021_implicit_in_2024.rs
Normal file
12
tests/ui/macros/expr_2021_implicit_in_2024.rs
Normal file
@ -0,0 +1,12 @@
|
||||
//@ compile-flags: --edition=2024 -Zunstable-options
|
||||
//@ aux-build:expr_2021_implicit.rs
|
||||
|
||||
//@ check-pass
|
||||
|
||||
extern crate expr_2021_implicit;
|
||||
|
||||
// Makes sure that a `:expr` fragment matcher defined in a edition 2021 crate
|
||||
// still parses like an `expr_2021` fragment matcher in a 2024 user crate.
|
||||
expr_2021_implicit::m!(const {});
|
||||
|
||||
fn main() {}
|
@ -1,13 +0,0 @@
|
||||
//@ compile-flags: --edition=2018
|
||||
|
||||
// This test ensures that expr_2021 is not allowed on pre-2021 editions
|
||||
|
||||
macro_rules! m {
|
||||
($e:expr_2021) => { //~ ERROR: invalid fragment specifier `expr_2021`
|
||||
$e
|
||||
};
|
||||
}
|
||||
|
||||
fn main() {
|
||||
m!(()); //~ ERROR: no rules expected the token `(`
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
error: invalid fragment specifier `expr_2021`
|
||||
--> $DIR/expr_2021_old_edition.rs:6:6
|
||||
|
|
||||
LL | ($e:expr_2021) => {
|
||||
| ^^^^^^^^^^^^
|
||||
|
|
||||
= help: fragment specifier `expr_2021` requires Rust 2021 or later
|
||||
valid fragment specifiers are `ident`, `block`, `stmt`, `expr`, `pat`, `ty`, `lifetime`, `literal`, `path`, `meta`, `tt`, `item` and `vis`
|
||||
|
||||
error: no rules expected the token `(`
|
||||
--> $DIR/expr_2021_old_edition.rs:12:8
|
||||
|
|
||||
LL | macro_rules! m {
|
||||
| -------------- when calling this macro
|
||||
...
|
||||
LL | m!(());
|
||||
| ^ no rules expected this token in macro call
|
||||
|
|
||||
note: while trying to match meta-variable `$e:ident`
|
||||
--> $DIR/expr_2021_old_edition.rs:6:6
|
||||
|
|
||||
LL | ($e:expr_2021) => {
|
||||
| ^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
@ -2,20 +2,25 @@ error: encountered diff marker
|
||||
--> $DIR/enum-2.rs:3:1
|
||||
|
|
||||
LL | <<<<<<< HEAD
|
||||
| ^^^^^^^ after this is the code before the merge
|
||||
| ^^^^^^^ between this marker and `|||||||` is the code that we're merging into
|
||||
LL | x: u8,
|
||||
LL | |||||||
|
||||
| -------
|
||||
| ------- between this marker and `=======` is the base code (what the two refs diverged from)
|
||||
LL | z: (),
|
||||
LL | =======
|
||||
| -------
|
||||
| ------- between this marker and `>>>>>>>` is the incoming code
|
||||
LL | y: i8,
|
||||
LL | >>>>>>> branch
|
||||
| ^^^^^^^ above this are the incoming code changes
|
||||
| ^^^^^^^ this marker concludes the conflict region
|
||||
|
|
||||
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code
|
||||
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
= note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
|
||||
to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
|
||||
= help: if you're having merge conflicts after pulling new code:
|
||||
the top section is the code you already had and the bottom section is the remote code
|
||||
if you're in the middle of a rebase:
|
||||
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation:
|
||||
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
@ -2,17 +2,22 @@ error: encountered diff marker
|
||||
--> $DIR/enum.rs:2:1
|
||||
|
|
||||
LL | <<<<<<< HEAD
|
||||
| ^^^^^^^ after this is the code before the merge
|
||||
| ^^^^^^^ between this marker and `=======` is the code that we're merging into
|
||||
LL | Foo(u8),
|
||||
LL | =======
|
||||
| -------
|
||||
| ------- between this marker and `>>>>>>>` is the incoming code
|
||||
LL | Bar(i8),
|
||||
LL | >>>>>>> branch
|
||||
| ^^^^^^^ above this are the incoming code changes
|
||||
| ^^^^^^^ this marker concludes the conflict region
|
||||
|
|
||||
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code
|
||||
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
= note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
|
||||
to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
|
||||
= help: if you're having merge conflicts after pulling new code:
|
||||
the top section is the code you already had and the bottom section is the remote code
|
||||
if you're in the middle of a rebase:
|
||||
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation:
|
||||
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
@ -2,17 +2,22 @@ error: encountered diff marker
|
||||
--> $DIR/fn-arg.rs:3:1
|
||||
|
|
||||
LL | <<<<<<< HEAD
|
||||
| ^^^^^^^ after this is the code before the merge
|
||||
| ^^^^^^^ between this marker and `=======` is the code that we're merging into
|
||||
LL | x: u8,
|
||||
LL | =======
|
||||
| -------
|
||||
| ------- between this marker and `>>>>>>>` is the incoming code
|
||||
LL | x: i8,
|
||||
LL | >>>>>>> branch
|
||||
| ^^^^^^^ above this are the incoming code changes
|
||||
| ^^^^^^^ this marker concludes the conflict region
|
||||
|
|
||||
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code
|
||||
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
= note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
|
||||
to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
|
||||
= help: if you're having merge conflicts after pulling new code:
|
||||
the top section is the code you already had and the bottom section is the remote code
|
||||
if you're in the middle of a rebase:
|
||||
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation:
|
||||
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
@ -2,17 +2,22 @@ error: encountered diff marker
|
||||
--> $DIR/item-with-attr.rs:2:1
|
||||
|
|
||||
LL | <<<<<<< HEAD
|
||||
| ^^^^^^^ after this is the code before the merge
|
||||
| ^^^^^^^ between this marker and `=======` is the code that we're merging into
|
||||
LL | fn foo() {}
|
||||
LL | =======
|
||||
| -------
|
||||
| ------- between this marker and `>>>>>>>` is the incoming code
|
||||
LL | fn bar() {}
|
||||
LL | >>>>>>> branch
|
||||
| ^^^^^^^ above this are the incoming code changes
|
||||
| ^^^^^^^ this marker concludes the conflict region
|
||||
|
|
||||
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code
|
||||
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
= note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
|
||||
to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
|
||||
= help: if you're having merge conflicts after pulling new code:
|
||||
the top section is the code you already had and the bottom section is the remote code
|
||||
if you're in the middle of a rebase:
|
||||
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation:
|
||||
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
@ -2,17 +2,22 @@ error: encountered diff marker
|
||||
--> $DIR/item.rs:1:1
|
||||
|
|
||||
LL | <<<<<<< HEAD
|
||||
| ^^^^^^^ after this is the code before the merge
|
||||
| ^^^^^^^ between this marker and `=======` is the code that we're merging into
|
||||
LL | fn foo() {}
|
||||
LL | =======
|
||||
| -------
|
||||
| ------- between this marker and `>>>>>>>` is the incoming code
|
||||
LL | fn bar() {}
|
||||
LL | >>>>>>> branch
|
||||
| ^^^^^^^ above this are the incoming code changes
|
||||
| ^^^^^^^ this marker concludes the conflict region
|
||||
|
|
||||
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code
|
||||
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
= note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
|
||||
to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
|
||||
= help: if you're having merge conflicts after pulling new code:
|
||||
the top section is the code you already had and the bottom section is the remote code
|
||||
if you're in the middle of a rebase:
|
||||
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation:
|
||||
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
@ -2,17 +2,22 @@ error: encountered diff marker
|
||||
--> $DIR/statement.rs:10:1
|
||||
|
|
||||
LL | <<<<<<< HEAD
|
||||
| ^^^^^^^ after this is the code before the merge
|
||||
| ^^^^^^^ between this marker and `=======` is the code that we're merging into
|
||||
LL | S::foo();
|
||||
LL | =======
|
||||
| -------
|
||||
| ------- between this marker and `>>>>>>>` is the incoming code
|
||||
LL | S::bar();
|
||||
LL | >>>>>>> branch
|
||||
| ^^^^^^^ above this are the incoming code changes
|
||||
| ^^^^^^^ this marker concludes the conflict region
|
||||
|
|
||||
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code
|
||||
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
= note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
|
||||
to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
|
||||
= help: if you're having merge conflicts after pulling new code:
|
||||
the top section is the code you already had and the bottom section is the remote code
|
||||
if you're in the middle of a rebase:
|
||||
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation:
|
||||
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
@ -2,17 +2,22 @@ error: encountered diff marker
|
||||
--> $DIR/struct-expr.rs:6:1
|
||||
|
|
||||
LL | <<<<<<< HEAD
|
||||
| ^^^^^^^ after this is the code before the merge
|
||||
| ^^^^^^^ between this marker and `=======` is the code that we're merging into
|
||||
LL | x: 42,
|
||||
LL | =======
|
||||
| -------
|
||||
| ------- between this marker and `>>>>>>>` is the incoming code
|
||||
LL | x: 0,
|
||||
LL | >>>>>>> branch
|
||||
| ^^^^^^^ above this are the incoming code changes
|
||||
| ^^^^^^^ this marker concludes the conflict region
|
||||
|
|
||||
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code
|
||||
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
= note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
|
||||
to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
|
||||
= help: if you're having merge conflicts after pulling new code:
|
||||
the top section is the code you already had and the bottom section is the remote code
|
||||
if you're in the middle of a rebase:
|
||||
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation:
|
||||
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
@ -2,17 +2,22 @@ error: encountered diff marker
|
||||
--> $DIR/struct.rs:2:1
|
||||
|
|
||||
LL | <<<<<<< HEAD
|
||||
| ^^^^^^^ after this is the code before the merge
|
||||
| ^^^^^^^ between this marker and `=======` is the code that we're merging into
|
||||
LL | x: u8,
|
||||
LL | =======
|
||||
| -------
|
||||
| ------- between this marker and `>>>>>>>` is the incoming code
|
||||
LL | x: i8,
|
||||
LL | >>>>>>> branch
|
||||
| ^^^^^^^ above this are the incoming code changes
|
||||
| ^^^^^^^ this marker concludes the conflict region
|
||||
|
|
||||
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code
|
||||
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
= note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
|
||||
to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
|
||||
= help: if you're having merge conflicts after pulling new code:
|
||||
the top section is the code you already had and the bottom section is the remote code
|
||||
if you're in the middle of a rebase:
|
||||
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation:
|
||||
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
@ -2,17 +2,22 @@ error: encountered diff marker
|
||||
--> $DIR/trait-item.rs:2:1
|
||||
|
|
||||
LL | <<<<<<< HEAD
|
||||
| ^^^^^^^ after this is the code before the merge
|
||||
| ^^^^^^^ between this marker and `=======` is the code that we're merging into
|
||||
LL | fn foo() {}
|
||||
LL | =======
|
||||
| -------
|
||||
| ------- between this marker and `>>>>>>>` is the incoming code
|
||||
LL | fn bar() {}
|
||||
LL | >>>>>>> branch
|
||||
| ^^^^^^^ above this are the incoming code changes
|
||||
| ^^^^^^^ this marker concludes the conflict region
|
||||
|
|
||||
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code
|
||||
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
= note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
|
||||
to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
|
||||
= help: if you're having merge conflicts after pulling new code:
|
||||
the top section is the code you already had and the bottom section is the remote code
|
||||
if you're in the middle of a rebase:
|
||||
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation:
|
||||
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
@ -2,17 +2,22 @@ error: encountered diff marker
|
||||
--> $DIR/tuple-struct.rs:2:1
|
||||
|
|
||||
LL | <<<<<<< HEAD
|
||||
| ^^^^^^^ after this is the code before the merge
|
||||
| ^^^^^^^ between this marker and `=======` is the code that we're merging into
|
||||
LL | u8,
|
||||
LL | =======
|
||||
| -------
|
||||
| ------- between this marker and `>>>>>>>` is the incoming code
|
||||
LL | i8,
|
||||
LL | >>>>>>> branch
|
||||
| ^^^^^^^ above this are the incoming code changes
|
||||
| ^^^^^^^ this marker concludes the conflict region
|
||||
|
|
||||
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code
|
||||
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
= note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
|
||||
to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
|
||||
= help: if you're having merge conflicts after pulling new code:
|
||||
the top section is the code you already had and the bottom section is the remote code
|
||||
if you're in the middle of a rebase:
|
||||
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation:
|
||||
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
@ -2,17 +2,22 @@ error: encountered diff marker
|
||||
--> $DIR/unclosed-delims-in-macro.rs:2:1
|
||||
|
|
||||
LL | <<<<<<< HEAD
|
||||
| ^^^^^^^ after this is the code before the merge
|
||||
| ^^^^^^^ between this marker and `=======` is the code that we're merging into
|
||||
...
|
||||
LL | =======
|
||||
| -------
|
||||
| ------- between this marker and `>>>>>>>` is the incoming code
|
||||
LL | () { //
|
||||
LL | >>>>>>> 7a4f13c blah blah blah
|
||||
| ^^^^^^^ above this are the incoming code changes
|
||||
| ^^^^^^^ this marker concludes the conflict region
|
||||
|
|
||||
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code
|
||||
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
= note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
|
||||
to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
|
||||
= help: if you're having merge conflicts after pulling new code:
|
||||
the top section is the code you already had and the bottom section is the remote code
|
||||
if you're in the middle of a rebase:
|
||||
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation:
|
||||
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
@ -2,13 +2,17 @@ mod tests {
|
||||
#[test]
|
||||
<<<<<<< HEAD
|
||||
//~^ ERROR encountered diff marker
|
||||
//~| NOTE after this is the code before the merge
|
||||
//~| NOTE between this marker and `=======`
|
||||
|
||||
//~| NOTE conflict markers indicate that
|
||||
//~| HELP if you're having merge conflicts
|
||||
//~| NOTE for an explanation on these markers
|
||||
|
||||
fn test1() {
|
||||
=======
|
||||
//~^ NOTE
|
||||
//~^ NOTE between this marker and `>>>>>>>`
|
||||
fn test2() {
|
||||
>>>>>>> 7a4f13c blah blah blah
|
||||
//~^ NOTE above this are the incoming code changes
|
||||
//~^ NOTE this marker concludes the conflict region
|
||||
}
|
||||
}
|
||||
|
@ -2,17 +2,22 @@ error: encountered diff marker
|
||||
--> $DIR/unclosed-delims.rs:3:1
|
||||
|
|
||||
LL | <<<<<<< HEAD
|
||||
| ^^^^^^^ after this is the code before the merge
|
||||
| ^^^^^^^ between this marker and `=======` is the code that we're merging into
|
||||
...
|
||||
LL | =======
|
||||
| -------
|
||||
| ------- between this marker and `>>>>>>>` is the incoming code
|
||||
...
|
||||
LL | >>>>>>> 7a4f13c blah blah blah
|
||||
| ^^^^^^^ above this are the incoming code changes
|
||||
| ^^^^^^^ this marker concludes the conflict region
|
||||
|
|
||||
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code
|
||||
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
= note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
|
||||
to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
|
||||
= help: if you're having merge conflicts after pulling new code:
|
||||
the top section is the code you already had and the bottom section is the remote code
|
||||
if you're in the middle of a rebase:
|
||||
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation:
|
||||
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
@ -2,17 +2,22 @@ error: encountered diff marker
|
||||
--> $DIR/use-statement.rs:2:1
|
||||
|
|
||||
LL | <<<<<<< HEAD
|
||||
| ^^^^^^^ after this is the code before the merge
|
||||
| ^^^^^^^ between this marker and `=======` is the code that we're merging into
|
||||
LL | bar,
|
||||
LL | =======
|
||||
| -------
|
||||
| ------- between this marker and `>>>>>>>` is the incoming code
|
||||
LL | baz,
|
||||
LL | >>>>>>> branch
|
||||
| ^^^^^^^ above this are the incoming code changes
|
||||
| ^^^^^^^ this marker concludes the conflict region
|
||||
|
|
||||
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code
|
||||
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
= note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
|
||||
to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
|
||||
= help: if you're having merge conflicts after pulling new code:
|
||||
the top section is the code you already had and the bottom section is the remote code
|
||||
if you're in the middle of a rebase:
|
||||
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
|
||||
= note: for an explanation on these markers from the `git` documentation:
|
||||
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user