Skip to content

Rollup of 8 pull requests #64230

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 17 commits into from
Sep 6, 2019
Merged
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
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
2 changes: 1 addition & 1 deletion src/bootstrap/bootstrap.py
Original file line number Diff line number Diff line change
@@ -668,7 +668,7 @@ def check_submodule(self, module, slow_submodules):
def update_submodule(self, module, checked_out, recorded_submodules):
module_path = os.path.join(self.rust_root, module)

if checked_out != None:
if checked_out is not None:
default_encoding = sys.getdefaultencoding()
checked_out = checked_out.communicate()[0].decode(default_encoding).strip()
if recorded_submodules[module] == checked_out:
1 change: 1 addition & 0 deletions src/bootstrap/compile.rs
Original file line number Diff line number Diff line change
@@ -212,6 +212,7 @@ pub fn std_cargo(builder: &Builder<'_>,
emscripten: false,
});
cargo.env("LLVM_CONFIG", llvm_config);
cargo.env("RUSTC_BUILD_SANITIZERS", "1");
}

cargo.arg("--features").arg(features)
31 changes: 31 additions & 0 deletions src/libcore/option.rs
Original file line number Diff line number Diff line change
@@ -1110,6 +1110,18 @@ impl<T: Deref> Option<T> {
/// to the original one, additionally coercing the contents via [`Deref`].
///
/// [`Deref`]: ../../std/ops/trait.Deref.html
///
/// # Examples
///
/// ```
/// #![feature(inner_deref)]
///
/// let x: Option<String> = Some("hey".to_owned());
/// assert_eq!(x.as_deref(), Some("hey"));
///
/// let x: Option<String> = None;
/// assert_eq!(x.as_deref(), None);
/// ```
pub fn as_deref(&self) -> Option<&T::Target> {
self.as_ref().map(|t| t.deref())
}
@@ -1121,6 +1133,18 @@ impl<T: DerefMut> Option<T> {
///
/// Leaves the original `Option` in-place, creating a new one containing a mutable reference to
/// the inner type's `Deref::Target` type.
///
/// # Examples
///
/// ```
/// #![feature(inner_deref)]
///
/// let mut x: Option<String> = Some("hey".to_owned());
/// assert_eq!(x.as_deref_mut().map(|x| {
/// x.make_ascii_uppercase();
/// x
/// }), Some("HEY".to_owned().as_mut_str()));
/// ```
pub fn as_deref_mut(&mut self) -> Option<&mut T::Target> {
self.as_mut().map(|t| t.deref_mut())
}
@@ -1199,6 +1223,13 @@ impl<T: Clone> Clone for Option<T> {
#[stable(feature = "rust1", since = "1.0.0")]
impl<T> Default for Option<T> {
/// Returns [`None`][Option::None].
///
/// # Examples
///
/// ```
/// let opt: Option<u32> = Option::default();
/// assert!(opt.is_none());
/// ```
#[inline]
fn default() -> Option<T> { None }
}
2 changes: 1 addition & 1 deletion src/libcore/unicode/printable.py
Original file line number Diff line number Diff line change
@@ -60,7 +60,7 @@ def get_codepoints(f):
yield Codepoint(codepoint, class_)
prev_codepoint = codepoint

if class_first != None:
if class_first is not None:
raise ValueError("Missing Last after First")

for c in range(prev_codepoint + 1, NUM_CODEPOINTS):
12 changes: 6 additions & 6 deletions src/librustc/mir/interpret/error.rs
Original file line number Diff line number Diff line change
@@ -430,13 +430,13 @@ impl fmt::Debug for UnsupportedOpInfo<'tcx> {
match self {
PointerOutOfBounds { ptr, msg, allocation_size } => {
write!(f, "{} failed: pointer must be in-bounds at offset {}, \
but is outside bounds of allocation {} which has size {}",
but is outside bounds of allocation {} which has size {}",
msg, ptr.offset.bytes(), ptr.alloc_id, allocation_size.bytes())
},
ValidationFailure(ref err) => {
write!(f, "type validation failed: {}", err)
}
NoMirFor(ref func) => write!(f, "no mir for `{}`", func),
NoMirFor(ref func) => write!(f, "no MIR for `{}`", func),
FunctionAbiMismatch(caller_abi, callee_abi) =>
write!(f, "tried to call a function with ABI {:?} using caller ABI {:?}",
callee_abi, caller_abi),
@@ -451,9 +451,9 @@ impl fmt::Debug for UnsupportedOpInfo<'tcx> {
FunctionArgCountMismatch =>
write!(f, "tried to call a function with incorrect number of arguments"),
ReallocatedWrongMemoryKind(ref old, ref new) =>
write!(f, "tried to reallocate memory from {} to {}", old, new),
write!(f, "tried to reallocate memory from `{}` to `{}`", old, new),
DeallocatedWrongMemoryKind(ref old, ref new) =>
write!(f, "tried to deallocate {} memory but gave {} as the kind", old, new),
write!(f, "tried to deallocate `{}` memory but gave `{}` as the kind", old, new),
InvalidChar(c) =>
write!(f, "tried to interpret an invalid 32-bit value as a char: {}", c),
AlignmentCheckFailed { required, has } =>
@@ -462,7 +462,7 @@ impl fmt::Debug for UnsupportedOpInfo<'tcx> {
TypeNotPrimitive(ty) =>
write!(f, "expected primitive type, got {}", ty),
PathNotFound(ref path) =>
write!(f, "Cannot find path {:?}", path),
write!(f, "cannot find path {:?}", path),
IncorrectAllocationInformation(size, size2, align, align2) =>
write!(f, "incorrect alloc info: expected size {} and align {}, \
got size {} and align {}",
@@ -525,7 +525,7 @@ impl fmt::Debug for UnsupportedOpInfo<'tcx> {
InvalidBoolOp(_) =>
write!(f, "invalid boolean operation"),
UnterminatedCString(_) =>
write!(f, "attempted to get length of a null terminated string, but no null \
write!(f, "attempted to get length of a null-terminated string, but no null \
found before end of allocation"),
ReadUndefBytes(_) =>
write!(f, "attempted to read undefined bytes"),
20 changes: 10 additions & 10 deletions src/librustc/session/config.rs
Original file line number Diff line number Diff line change
@@ -1998,7 +1998,7 @@ pub fn parse_error_format(
Some(arg) => early_error(
ErrorOutputType::HumanReadable(HumanReadableErrorType::Default(color)),
&format!(
"argument for --error-format must be `human`, `json` or \
"argument for `--error-format` must be `human`, `json` or \
`short` (instead was `{}`)",
arg
),
@@ -2037,7 +2037,7 @@ pub fn build_session_options_and_crate_config(
early_error(
ErrorOutputType::default(),
&format!(
"argument for --edition must be one of: \
"argument for `--edition` must be one of: \
{}. (instead was `{}`)",
EDITION_NAME_LIST,
arg
@@ -2051,7 +2051,7 @@ pub fn build_session_options_and_crate_config(
early_error(
ErrorOutputType::default(),
&format!(
"Edition {} is unstable and only \
"edition {} is unstable and only \
available for nightly builds of rustc.",
edition,
)
@@ -2075,14 +2075,14 @@ pub fn build_session_options_and_crate_config(
if let ErrorOutputType::Json { pretty: true, json_rendered } = error_format {
early_error(
ErrorOutputType::Json { pretty: false, json_rendered },
"--error-format=pretty-json is unstable",
"`--error-format=pretty-json` is unstable",
);
}
if let ErrorOutputType::HumanReadable(HumanReadableErrorType::AnnotateSnippet(_)) =
error_format {
early_error(
ErrorOutputType::Json { pretty: false, json_rendered },
"--error-format=human-annotate-rs is unstable",
"`--error-format=human-annotate-rs` is unstable",
);
}
}
@@ -2132,8 +2132,8 @@ pub fn build_session_options_and_crate_config(
early_warn(
error_format,
&format!(
"--emit={} with -o incompatible with \
-C codegen-units=N for N > 1",
"`--emit={}` with `-o` incompatible with \
`-C codegen-units=N` for N > 1",
ot
),
);
@@ -2153,21 +2153,21 @@ pub fn build_session_options_and_crate_config(
if debugging_opts.threads == Some(0) {
early_error(
error_format,
"Value for threads must be a positive nonzero integer",
"value for threads must be a positive non-zero integer",
);
}

if debugging_opts.threads.unwrap_or(1) > 1 && debugging_opts.fuel.is_some() {
early_error(
error_format,
"Optimization fuel is incompatible with multiple threads",
"optimization fuel is incompatible with multiple threads",
);
}

if codegen_units == Some(0) {
early_error(
error_format,
"Value for codegen units must be a positive nonzero integer",
"value for codegen units must be a positive non-zero integer",
);
}

7 changes: 4 additions & 3 deletions src/librustc/traits/object_safety.rs
Original file line number Diff line number Diff line change
@@ -368,7 +368,7 @@ impl<'tcx> TyCtxt<'tcx> {
match self.layout_of(param_env.and(ty)) {
Ok(layout) => &layout.abi,
Err(err) => bug!(
"Error: {}\n while computing layout for type {:?}", err, ty
"error: {}\n while computing layout for type {:?}", err, ty
)
}
};
@@ -384,7 +384,7 @@ impl<'tcx> TyCtxt<'tcx> {
self.sess.delay_span_bug(
self.def_span(method.def_id),
&format!(
"Receiver when Self = () should have a Scalar ABI, found {:?}",
"receiver when `Self = ()` should have a Scalar ABI; found {:?}",
abi
),
);
@@ -406,7 +406,8 @@ impl<'tcx> TyCtxt<'tcx> {
self.sess.delay_span_bug(
self.def_span(method.def_id),
&format!(
"Receiver when Self = {} should have a ScalarPair ABI, found {:?}",
"receiver when `Self = {}` should have a ScalarPair ABI; \
found {:?}",
trait_object_ty, abi
),
);
3 changes: 3 additions & 0 deletions src/librustc_asan/build.rs
Original file line number Diff line number Diff line change
@@ -4,6 +4,9 @@ use build_helper::sanitizer_lib_boilerplate;
use cmake::Config;

fn main() {
if env::var("RUSTC_BUILD_SANITIZERS") != Ok("1".to_string()) {
return;
}
if let Some(llvm_config) = env::var_os("LLVM_CONFIG") {
build_helper::restore_library_path();

12 changes: 8 additions & 4 deletions src/librustc_errors/annotate_snippet_emitter_writer.rs
Original file line number Diff line number Diff line change
@@ -30,10 +30,14 @@ pub struct AnnotateSnippetEmitterWriter {
impl Emitter for AnnotateSnippetEmitterWriter {
/// The entry point for the diagnostics generation
fn emit_diagnostic(&mut self, db: &DiagnosticBuilder<'_>) {
let children = db.children.clone();
let (primary_span, suggestions) = self.primary_span_formatted(&db);
let mut children = db.children.clone();
let (mut primary_span, suggestions) = self.primary_span_formatted(&db);

// FIXME(#59346): Add `fix_multispans_in_std_macros` function from emitter.rs
self.fix_multispans_in_std_macros(&self.source_map,
&mut primary_span,
&mut children,
&db.level,
db.handler.flags.external_macro_backtrace);

self.emit_messages_default(&db.level,
db.message(),
@@ -105,7 +109,7 @@ impl<'a> DiagnosticConverter<'a> {
annotated_files: Vec<FileWithAnnotatedLines>,
primary_lo: Loc
) -> Vec<Slice> {
// FIXME(#59346): Provide a test case where `annotated_files` is > 1
// FIXME(#64205): Provide a test case where `annotated_files` is > 1
annotated_files.iter().flat_map(|annotated_file| {
annotated_file.lines.iter().map(|line| {
let line_source = Self::source_string(annotated_file.file.clone(), &line);
251 changes: 129 additions & 122 deletions src/librustc_errors/emitter.rs
Original file line number Diff line number Diff line change
@@ -247,14 +247,142 @@ pub trait Emitter {
(primary_span, &db.suggestions)
}
}

// This does a small "fix" for multispans by looking to see if it can find any that
// point directly at <*macros>. Since these are often difficult to read, this
// will change the span to point at the use site.
fn fix_multispans_in_std_macros(&self,
source_map: &Option<Lrc<SourceMapperDyn>>,
span: &mut MultiSpan,
children: &mut Vec<SubDiagnostic>,
level: &Level,
backtrace: bool) {
let mut spans_updated = self.fix_multispan_in_std_macros(source_map, span, backtrace);
for child in children.iter_mut() {
spans_updated |= self.fix_multispan_in_std_macros(
source_map,
&mut child.span,
backtrace
);
}
let msg = if level == &Error {
"this error originates in a macro outside of the current crate \
(in Nightly builds, run with -Z external-macro-backtrace \
for more info)".to_string()
} else {
"this warning originates in a macro outside of the current crate \
(in Nightly builds, run with -Z external-macro-backtrace \
for more info)".to_string()
};

if spans_updated {
children.push(SubDiagnostic {
level: Level::Note,
message: vec![
(msg,
Style::NoStyle),
],
span: MultiSpan::new(),
render_span: None,
});
}
}

// This "fixes" MultiSpans that contain Spans that are pointing to locations inside of
// <*macros>. Since these locations are often difficult to read, we move these Spans from
// <*macros> to their corresponding use site.
fn fix_multispan_in_std_macros(&self,
source_map: &Option<Lrc<SourceMapperDyn>>,
span: &mut MultiSpan,
always_backtrace: bool) -> bool {
let mut spans_updated = false;

if let Some(ref sm) = source_map {
let mut before_after: Vec<(Span, Span)> = vec![];
let mut new_labels: Vec<(Span, String)> = vec![];

// First, find all the spans in <*macros> and point instead at their use site
for sp in span.primary_spans() {
if sp.is_dummy() {
continue;
}
let call_sp = sm.call_span_if_macro(*sp);
if call_sp != *sp && !always_backtrace {
before_after.push((*sp, call_sp));
}
let backtrace_len = sp.macro_backtrace().len();
for (i, trace) in sp.macro_backtrace().iter().rev().enumerate() {
// Only show macro locations that are local
// and display them like a span_note
if trace.def_site_span.is_dummy() {
continue;
}
if always_backtrace {
new_labels.push((trace.def_site_span,
format!("in this expansion of `{}`{}",
trace.macro_decl_name,
if backtrace_len > 2 {
// if backtrace_len == 1 it'll be pointed
// at by "in this macro invocation"
format!(" (#{})", i + 1)
} else {
String::new()
})));
}
// Check to make sure we're not in any <*macros>
if !sm.span_to_filename(trace.def_site_span).is_macros() &&
!trace.macro_decl_name.starts_with("desugaring of ") &&
!trace.macro_decl_name.starts_with("#[") ||
always_backtrace {
new_labels.push((trace.call_site,
format!("in this macro invocation{}",
if backtrace_len > 2 && always_backtrace {
// only specify order when the macro
// backtrace is multiple levels deep
format!(" (#{})", i + 1)
} else {
String::new()
})));
if !always_backtrace {
break;
}
}
}
}
for (label_span, label_text) in new_labels {
span.push_span_label(label_span, label_text);
}
for sp_label in span.span_labels() {
if sp_label.span.is_dummy() {
continue;
}
if sm.span_to_filename(sp_label.span.clone()).is_macros() &&
!always_backtrace
{
let v = sp_label.span.macro_backtrace();
if let Some(use_site) = v.last() {
before_after.push((sp_label.span.clone(), use_site.call_site.clone()));
}
}
}
// After we have them, make sure we replace these 'bad' def sites with their use sites
for (before, after) in before_after {
span.replace(before, after);
spans_updated = true;
}
}

spans_updated
}
}

impl Emitter for EmitterWriter {
fn emit_diagnostic(&mut self, db: &DiagnosticBuilder<'_>) {
let mut children = db.children.clone();
let (mut primary_span, suggestions) = self.primary_span_formatted(&db);

self.fix_multispans_in_std_macros(&mut primary_span,
self.fix_multispans_in_std_macros(&self.sm,
&mut primary_span,
&mut children,
&db.level,
db.handler.flags.external_macro_backtrace);
@@ -919,127 +1047,6 @@ impl EmitterWriter {
max
}

// This "fixes" MultiSpans that contain Spans that are pointing to locations inside of
// <*macros>. Since these locations are often difficult to read, we move these Spans from
// <*macros> to their corresponding use site.
fn fix_multispan_in_std_macros(&mut self,
span: &mut MultiSpan,
always_backtrace: bool) -> bool {
let mut spans_updated = false;

if let Some(ref sm) = self.sm {
let mut before_after: Vec<(Span, Span)> = vec![];
let mut new_labels: Vec<(Span, String)> = vec![];

// First, find all the spans in <*macros> and point instead at their use site
for sp in span.primary_spans() {
if sp.is_dummy() {
continue;
}
let call_sp = sm.call_span_if_macro(*sp);
if call_sp != *sp && !always_backtrace {
before_after.push((*sp, call_sp));
}
let backtrace_len = sp.macro_backtrace().len();
for (i, trace) in sp.macro_backtrace().iter().rev().enumerate() {
// Only show macro locations that are local
// and display them like a span_note
if trace.def_site_span.is_dummy() {
continue;
}
if always_backtrace {
new_labels.push((trace.def_site_span,
format!("in this expansion of `{}`{}",
trace.macro_decl_name,
if backtrace_len > 2 {
// if backtrace_len == 1 it'll be pointed
// at by "in this macro invocation"
format!(" (#{})", i + 1)
} else {
String::new()
})));
}
// Check to make sure we're not in any <*macros>
if !sm.span_to_filename(trace.def_site_span).is_macros() &&
!trace.macro_decl_name.starts_with("desugaring of ") &&
!trace.macro_decl_name.starts_with("#[") ||
always_backtrace {
new_labels.push((trace.call_site,
format!("in this macro invocation{}",
if backtrace_len > 2 && always_backtrace {
// only specify order when the macro
// backtrace is multiple levels deep
format!(" (#{})", i + 1)
} else {
String::new()
})));
if !always_backtrace {
break;
}
}
}
}
for (label_span, label_text) in new_labels {
span.push_span_label(label_span, label_text);
}
for sp_label in span.span_labels() {
if sp_label.span.is_dummy() {
continue;
}
if sm.span_to_filename(sp_label.span.clone()).is_macros() &&
!always_backtrace
{
let v = sp_label.span.macro_backtrace();
if let Some(use_site) = v.last() {
before_after.push((sp_label.span.clone(), use_site.call_site.clone()));
}
}
}
// After we have them, make sure we replace these 'bad' def sites with their use sites
for (before, after) in before_after {
span.replace(before, after);
spans_updated = true;
}
}

spans_updated
}

// This does a small "fix" for multispans by looking to see if it can find any that
// point directly at <*macros>. Since these are often difficult to read, this
// will change the span to point at the use site.
fn fix_multispans_in_std_macros(&mut self,
span: &mut MultiSpan,
children: &mut Vec<SubDiagnostic>,
level: &Level,
backtrace: bool) {
let mut spans_updated = self.fix_multispan_in_std_macros(span, backtrace);
for child in children.iter_mut() {
spans_updated |= self.fix_multispan_in_std_macros(&mut child.span, backtrace);
}
let msg = if level == &Error {
"this error originates in a macro outside of the current crate \
(in Nightly builds, run with -Z external-macro-backtrace \
for more info)".to_string()
} else {
"this warning originates in a macro outside of the current crate \
(in Nightly builds, run with -Z external-macro-backtrace \
for more info)".to_string()
};

if spans_updated {
children.push(SubDiagnostic {
level: Level::Note,
message: vec![
(msg,
Style::NoStyle),
],
span: MultiSpan::new(),
render_span: None,
});
}
}

/// Adds a left margin to every line but the first, given a padding length and the label being
/// displayed, keeping the provided highlighting.
fn msg_to_buffer(&self,
3 changes: 3 additions & 0 deletions src/librustc_lsan/build.rs
Original file line number Diff line number Diff line change
@@ -4,6 +4,9 @@ use build_helper::sanitizer_lib_boilerplate;
use cmake::Config;

fn main() {
if env::var("RUSTC_BUILD_SANITIZERS") != Ok("1".to_string()) {
return;
}
if let Some(llvm_config) = env::var_os("LLVM_CONFIG") {
build_helper::restore_library_path();

2 changes: 1 addition & 1 deletion src/librustc_mir/borrow_check/conflict_errors.rs
Original file line number Diff line number Diff line change
@@ -98,7 +98,7 @@ impl<'cx, 'tcx> MirBorrowckCtxt<'cx, 'tcx> {
&self.describe_place_with_options(moved_place, IncludingDowncast(true))
.unwrap_or_else(|| "_".to_owned()),
);
err.span_label(span, format!("use of possibly uninitialized {}", item_msg));
err.span_label(span, format!("use of possibly-uninitialized {}", item_msg));

use_spans.var_span_label(
&mut err,
9 changes: 6 additions & 3 deletions src/librustc_mir/borrow_check/mod.rs
Original file line number Diff line number Diff line change
@@ -164,8 +164,8 @@ fn do_mir_borrowck<'a, 'tcx>(
};

let mdpe = MoveDataParamEnv {
move_data: move_data,
param_env: param_env,
move_data,
param_env,
};

let dead_unwinds = BitSet::new_empty(body.basic_blocks().len());
@@ -259,7 +259,10 @@ fn do_mir_borrowck<'a, 'tcx>(
move_error_reported: BTreeMap::new(),
uninitialized_error_reported: Default::default(),
errors_buffer,
disable_error_downgrading: false,
// Only downgrade errors on Rust 2015 and refuse to do so on Rust 2018.
// FIXME(Centril): In Rust 1.40.0, refuse doing so on 2015 as well and
// proceed to throwing out the migration infrastructure.
disable_error_downgrading: body.span.rust_2018(),
nonlexical_regioncx: regioncx,
used_mut: Default::default(),
used_mut_upvars: SmallVec::new(),
4 changes: 2 additions & 2 deletions src/librustc_mir/const_eval.rs
Original file line number Diff line number Diff line change
@@ -533,8 +533,8 @@ pub fn error_to_const_error<'mir, 'tcx>(

pub fn note_on_undefined_behavior_error() -> &'static str {
"The rules on what exactly is undefined behavior aren't clear, \
so this check might be overzealous. Please open an issue on the rust compiler \
repository if you believe it should not be considered undefined behavior"
so this check might be overzealous. Please open an issue on the rustc \
repository if you believe it should not be considered undefined behavior."
}

fn validate_and_turn_into_const<'tcx>(
2 changes: 1 addition & 1 deletion src/librustc_mir/error_codes.rs
Original file line number Diff line number Diff line change
@@ -748,7 +748,7 @@ It is not allowed to use or capture an uninitialized variable. For example:
```compile_fail,E0381
fn main() {
let x: i32;
let y = x; // error, use of possibly uninitialized variable
let y = x; // error, use of possibly-uninitialized variable
}
```
2 changes: 1 addition & 1 deletion src/librustc_mir/util/borrowck_errors.rs
Original file line number Diff line number Diff line change
@@ -50,7 +50,7 @@ impl<'cx, 'tcx> crate::borrow_check::MirBorrowckCtxt<'cx, 'tcx> {
self,
span,
E0381,
"{} of possibly uninitialized variable: `{}`",
"{} of possibly-uninitialized variable: `{}`",
verb,
desc,
)
3 changes: 3 additions & 0 deletions src/librustc_msan/build.rs
Original file line number Diff line number Diff line change
@@ -4,6 +4,9 @@ use build_helper::sanitizer_lib_boilerplate;
use cmake::Config;

fn main() {
if env::var("RUSTC_BUILD_SANITIZERS") != Ok("1".to_string()) {
return;
}
if let Some(llvm_config) = env::var_os("LLVM_CONFIG") {
build_helper::restore_library_path();

3 changes: 3 additions & 0 deletions src/librustc_tsan/build.rs
Original file line number Diff line number Diff line change
@@ -4,6 +4,9 @@ use build_helper::sanitizer_lib_boilerplate;
use cmake::Config;

fn main() {
if env::var("RUSTC_BUILD_SANITIZERS") != Ok("1".to_string()) {
return;
}
if let Some(llvm_config) = env::var_os("LLVM_CONFIG") {
build_helper::restore_library_path();

2 changes: 1 addition & 1 deletion src/libsyntax/parse/parser/expr.rs
Original file line number Diff line number Diff line change
@@ -982,7 +982,7 @@ impl<'a> Parser<'a> {
}
if self.is_do_catch_block() {
let mut db = self.fatal("found removed `do catch` syntax");
db.help("Following RFC #2388, the new non-placeholder syntax is `try`");
db.help("following RFC #2388, the new non-placeholder syntax is `try`");
return Err(db);
}
if self.is_try_block() {
2 changes: 1 addition & 1 deletion src/libsyntax/parse/parser/stmt.rs
Original file line number Diff line number Diff line change
@@ -469,7 +469,7 @@ impl<'a> Parser<'a> {
self.diagnostic().struct_span_warn(self.token.span, {
&format!("expected `;`, found {}", self.this_token_descr())
}).note({
"This was erroneously allowed and will become a hard error in a future release"
"this was erroneously allowed and will become a hard error in a future release"
}).emit();
}
}
2 changes: 0 additions & 2 deletions src/test/run-pass-valgrind/cast-enum-with-dtor.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// no-prefer-dynamic

#![allow(dead_code)]

// check dtor calling order when casting enums.
2 changes: 0 additions & 2 deletions src/test/run-pass-valgrind/cleanup-auto-borrow-obj.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// no-prefer-dynamic

// This would previously leak the Box<Trait> because we wouldn't
// schedule cleanups when auto borrowing trait objects.
// This program should be valgrind clean.
2 changes: 0 additions & 2 deletions src/test/run-pass-valgrind/cleanup-stdin.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// no-prefer-dynamic

fn main() {
let _ = std::io::stdin();
let _ = std::io::stdout();
1 change: 0 additions & 1 deletion src/test/run-pass-valgrind/down-with-thread-dtors.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// no-prefer-dynamic
// ignore-emscripten

thread_local!(static FOO: Foo = Foo);
2 changes: 0 additions & 2 deletions src/test/run-pass-valgrind/dst-dtor-1.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// no-prefer-dynamic

static mut DROP_RAN: bool = false;

struct Foo;
2 changes: 0 additions & 2 deletions src/test/run-pass-valgrind/dst-dtor-2.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// no-prefer-dynamic

static mut DROP_RAN: isize = 0;

struct Foo;
2 changes: 0 additions & 2 deletions src/test/run-pass-valgrind/dst-dtor-3.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// no-prefer-dynamic

#![feature(unsized_tuple_coercion)]

static mut DROP_RAN: bool = false;
2 changes: 0 additions & 2 deletions src/test/run-pass-valgrind/dst-dtor-4.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
// no-prefer-dynamic

#![feature(unsized_tuple_coercion)]

static mut DROP_RAN: isize = 0;
1 change: 0 additions & 1 deletion src/test/run-pass-valgrind/exit-flushes.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// no-prefer-dynamic
// ignore-cloudabi
// ignore-emscripten
// ignore-sgx no processes
1 change: 0 additions & 1 deletion src/test/run-pass-valgrind/osx-frameworks.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// no-prefer-dynamic
// pretty-expanded FIXME #23616

#![feature(rustc_private)]
2 changes: 1 addition & 1 deletion src/test/ui/asm/asm-out-read-uninit.rs
Original file line number Diff line number Diff line change
@@ -20,7 +20,7 @@ pub fn main() {
let x: isize;
unsafe {
asm!("mov $1, $0" : "=r"(x) : "r"(x));
//~^ ERROR use of possibly uninitialized variable: `x`
//~^ ERROR use of possibly-uninitialized variable: `x`
}
foo(x);
}
4 changes: 2 additions & 2 deletions src/test/ui/asm/asm-out-read-uninit.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/asm-out-read-uninit.rs:22:43
|
LL | asm!("mov $1, $0" : "=r"(x) : "r"(x));
| ^ use of possibly uninitialized `x`
| ^ use of possibly-uninitialized `x`

error: aborting due to previous error

Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@ async fn no_non_guaranteed_initialization(x: usize) -> usize {
y = echo(10).await;
}
y
//~^ use of possibly uninitialized variable: `y`
//~^ use of possibly-uninitialized variable: `y`
}

async fn echo(x: usize) -> usize { x + 1 }
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: use of possibly uninitialized variable: `y`
error[E0381]: use of possibly-uninitialized variable: `y`
--> $DIR/no-non-guaranteed-initialization.rs:10:5
|
LL | y
| ^ use of possibly uninitialized `y`
| ^ use of possibly-uninitialized `y`

error: aborting due to previous error

Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@ async fn noop() {}
async fn test_tuple() {
let mut t: (i32, i32);
t.0 = 42;
//~^ ERROR assign to part of possibly uninitialized variable: `t` [E0381]
//~^ ERROR assign to part of possibly-uninitialized variable: `t` [E0381]
noop().await;
t.1 = 88;
let _ = t;
@@ -20,7 +20,7 @@ async fn test_tuple() {
async fn test_tuple_struct() {
let mut t: T;
t.0 = 42;
//~^ ERROR assign to part of possibly uninitialized variable: `t` [E0381]
//~^ ERROR assign to part of possibly-uninitialized variable: `t` [E0381]
noop().await;
t.1 = 88;
let _ = t;
@@ -29,7 +29,7 @@ async fn test_tuple_struct() {
async fn test_struct() {
let mut t: S;
t.x = 42;
//~^ ERROR assign to part of possibly uninitialized variable: `t` [E0381]
//~^ ERROR assign to part of possibly-uninitialized variable: `t` [E0381]
noop().await;
t.y = 88;
let _ = t;
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
error[E0381]: assign to part of possibly uninitialized variable: `t`
error[E0381]: assign to part of possibly-uninitialized variable: `t`
--> $DIR/partial-initialization-across-await.rs:13:5
|
LL | t.0 = 42;
| ^^^^^^^^ use of possibly uninitialized `t`
| ^^^^^^^^ use of possibly-uninitialized `t`

error[E0381]: assign to part of possibly uninitialized variable: `t`
error[E0381]: assign to part of possibly-uninitialized variable: `t`
--> $DIR/partial-initialization-across-await.rs:22:5
|
LL | t.0 = 42;
| ^^^^^^^^ use of possibly uninitialized `t`
| ^^^^^^^^ use of possibly-uninitialized `t`

error[E0381]: assign to part of possibly uninitialized variable: `t`
error[E0381]: assign to part of possibly-uninitialized variable: `t`
--> $DIR/partial-initialization-across-await.rs:31:5
|
LL | t.x = 42;
| ^^^^^^^^ use of possibly uninitialized `t`
| ^^^^^^^^ use of possibly-uninitialized `t`

error: aborting due to 3 previous errors

8 changes: 4 additions & 4 deletions src/test/ui/borrowck/assign_mutable_fields.stderr
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
error[E0381]: assign to part of possibly uninitialized variable: `x`
error[E0381]: assign to part of possibly-uninitialized variable: `x`
--> $DIR/assign_mutable_fields.rs:9:5
|
LL | x.0 = 1;
| ^^^^^^^ use of possibly uninitialized `x`
| ^^^^^^^ use of possibly-uninitialized `x`

error[E0381]: assign to part of possibly uninitialized variable: `x`
error[E0381]: assign to part of possibly-uninitialized variable: `x`
--> $DIR/assign_mutable_fields.rs:17:5
|
LL | x.0 = 1;
| ^^^^^^^ use of possibly uninitialized `x`
| ^^^^^^^ use of possibly-uninitialized `x`

error: aborting due to 2 previous errors

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-and-init.rs
Original file line number Diff line number Diff line change
@@ -2,5 +2,5 @@ fn main() {
let i: isize;

println!("{}", false && { i = 5; true });
println!("{}", i); //~ ERROR borrow of possibly uninitialized variable: `i`
println!("{}", i); //~ ERROR borrow of possibly-uninitialized variable: `i`
}
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-and-init.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: borrow of possibly uninitialized variable: `i`
error[E0381]: borrow of possibly-uninitialized variable: `i`
--> $DIR/borrowck-and-init.rs:5:20
|
LL | println!("{}", i);
| ^ use of possibly uninitialized `i`
| ^ use of possibly-uninitialized `i`

error: aborting due to previous error

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-asm.rs
Original file line number Diff line number Diff line change
@@ -57,7 +57,7 @@ mod test_cases {
fn indirect_is_not_init() {
let x: i32;
unsafe {
asm!("nop" : "=*r"(x)); //~ ERROR use of possibly uninitialized variable
asm!("nop" : "=*r"(x)); //~ ERROR use of possibly-uninitialized variable
}
}

4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-asm.stderr
Original file line number Diff line number Diff line change
@@ -46,11 +46,11 @@ LL | unsafe {
LL | asm!("nop" : "+r"(x));
| ^ cannot assign twice to immutable variable

error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-asm.rs:60:32
|
LL | asm!("nop" : "=*r"(x));
| ^ use of possibly uninitialized `x`
| ^ use of possibly-uninitialized `x`

error[E0506]: cannot assign to `x` because it is borrowed
--> $DIR/borrowck-asm.rs:68:31
2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-block-unint.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
fn force<F>(f: F) where F: FnOnce() { f(); }
fn main() {
let x: isize;
force(|| { //~ ERROR borrow of possibly uninitialized variable: `x`
force(|| { //~ ERROR borrow of possibly-uninitialized variable: `x`
println!("{}", x);
});
}
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-block-unint.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: borrow of possibly uninitialized variable: `x`
error[E0381]: borrow of possibly-uninitialized variable: `x`
--> $DIR/borrowck-block-unint.rs:4:11
|
LL | force(|| {
| ^^ use of possibly uninitialized `x`
| ^^ use of possibly-uninitialized `x`
LL | println!("{}", x);
| - borrow occurs due to use in closure

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-break-uninit-2.rs
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@ fn foo() -> isize {
x = 0;
}

println!("{}", x); //~ ERROR borrow of possibly uninitialized variable: `x`
println!("{}", x); //~ ERROR borrow of possibly-uninitialized variable: `x`

return 17;
}
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-break-uninit-2.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: borrow of possibly uninitialized variable: `x`
error[E0381]: borrow of possibly-uninitialized variable: `x`
--> $DIR/borrowck-break-uninit-2.rs:9:20
|
LL | println!("{}", x);
| ^ use of possibly uninitialized `x`
| ^ use of possibly-uninitialized `x`

error: aborting due to previous error

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-break-uninit.rs
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@ fn foo() -> isize {
x = 0;
}

println!("{}", x); //~ ERROR borrow of possibly uninitialized variable: `x`
println!("{}", x); //~ ERROR borrow of possibly-uninitialized variable: `x`

return 17;
}
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-break-uninit.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: borrow of possibly uninitialized variable: `x`
error[E0381]: borrow of possibly-uninitialized variable: `x`
--> $DIR/borrowck-break-uninit.rs:9:20
|
LL | println!("{}", x);
| ^ use of possibly uninitialized `x`
| ^ use of possibly-uninitialized `x`

error: aborting due to previous error

6 changes: 3 additions & 3 deletions src/test/ui/borrowck/borrowck-field-sensitivity.rs
Original file line number Diff line number Diff line change
@@ -78,20 +78,20 @@ fn fu_move_after_fu_move() {

fn copy_after_field_assign_after_uninit() {
let mut x: A;
x.a = 1; //~ ERROR assign to part of possibly uninitialized variable: `x`
x.a = 1; //~ ERROR assign to part of possibly-uninitialized variable: `x`
drop(x.a);
}

fn borrow_after_field_assign_after_uninit() {
let mut x: A;
x.a = 1; //~ ERROR assign to part of possibly uninitialized variable: `x`
x.a = 1; //~ ERROR assign to part of possibly-uninitialized variable: `x`
let p = &x.a;
drop(*p);
}

fn move_after_field_assign_after_uninit() {
let mut x: A;
x.b = box 1; //~ ERROR assign to part of possibly uninitialized variable: `x`
x.b = box 1; //~ ERROR assign to part of possibly-uninitialized variable: `x`
drop(x.b);
}

12 changes: 6 additions & 6 deletions src/test/ui/borrowck/borrowck-field-sensitivity.stderr
Original file line number Diff line number Diff line change
@@ -108,23 +108,23 @@ LL | let _z = A { a: 4, .. x };
|
= note: move occurs because `x.b` has type `std::boxed::Box<isize>`, which does not implement the `Copy` trait

error[E0381]: assign to part of possibly uninitialized variable: `x`
error[E0381]: assign to part of possibly-uninitialized variable: `x`
--> $DIR/borrowck-field-sensitivity.rs:81:5
|
LL | x.a = 1;
| ^^^^^^^ use of possibly uninitialized `x`
| ^^^^^^^ use of possibly-uninitialized `x`

error[E0381]: assign to part of possibly uninitialized variable: `x`
error[E0381]: assign to part of possibly-uninitialized variable: `x`
--> $DIR/borrowck-field-sensitivity.rs:87:5
|
LL | x.a = 1;
| ^^^^^^^ use of possibly uninitialized `x`
| ^^^^^^^ use of possibly-uninitialized `x`

error[E0381]: assign to part of possibly uninitialized variable: `x`
error[E0381]: assign to part of possibly-uninitialized variable: `x`
--> $DIR/borrowck-field-sensitivity.rs:94:5
|
LL | x.b = box 1;
| ^^^ use of possibly uninitialized `x`
| ^^^ use of possibly-uninitialized `x`

error: aborting due to 14 previous errors

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-if-no-else.rs
Original file line number Diff line number Diff line change
@@ -2,5 +2,5 @@ fn foo(x: isize) { println!("{}", x); }

fn main() {
let x: isize; if 1 > 2 { x = 10; }
foo(x); //~ ERROR use of possibly uninitialized variable: `x`
foo(x); //~ ERROR use of possibly-uninitialized variable: `x`
}
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-if-no-else.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-if-no-else.rs:5:9
|
LL | foo(x);
| ^ use of possibly uninitialized `x`
| ^ use of possibly-uninitialized `x`

error: aborting due to previous error

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-if-with-else.rs
Original file line number Diff line number Diff line change
@@ -7,5 +7,5 @@ fn main() {
} else {
x = 10;
}
foo(x); //~ ERROR use of possibly uninitialized variable: `x`
foo(x); //~ ERROR use of possibly-uninitialized variable: `x`
}
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-if-with-else.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-if-with-else.rs:10:9
|
LL | foo(x);
| ^ use of possibly uninitialized `x`
| ^ use of possibly-uninitialized `x`

error: aborting due to previous error

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-init-in-called-fn-expr.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
fn main() {
let j = || -> isize {
let i: isize;
i //~ ERROR use of possibly uninitialized variable: `i`
i //~ ERROR use of possibly-uninitialized variable: `i`
};
j();
}
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-init-in-called-fn-expr.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: use of possibly uninitialized variable: `i`
error[E0381]: use of possibly-uninitialized variable: `i`
--> $DIR/borrowck-init-in-called-fn-expr.rs:4:9
|
LL | i
| ^ use of possibly uninitialized `i`
| ^ use of possibly-uninitialized `i`

error: aborting due to previous error

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-init-in-fn-expr.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
fn main() {
let f = || -> isize {
let i: isize;
i //~ ERROR use of possibly uninitialized variable: `i`
i //~ ERROR use of possibly-uninitialized variable: `i`
};
println!("{}", f());
}
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-init-in-fn-expr.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: use of possibly uninitialized variable: `i`
error[E0381]: use of possibly-uninitialized variable: `i`
--> $DIR/borrowck-init-in-fn-expr.rs:4:9
|
LL | i
| ^ use of possibly uninitialized `i`
| ^ use of possibly-uninitialized `i`

error: aborting due to previous error

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-init-in-fru.rs
Original file line number Diff line number Diff line change
@@ -7,6 +7,6 @@ struct Point {
fn main() {
let mut origin: Point;
origin = Point { x: 10, ..origin };
//~^ ERROR use of possibly uninitialized variable: `origin` [E0381]
//~^ ERROR use of possibly-uninitialized variable: `origin` [E0381]
origin.clone();
}
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-init-in-fru.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: use of possibly uninitialized variable: `origin`
error[E0381]: use of possibly-uninitialized variable: `origin`
--> $DIR/borrowck-init-in-fru.rs:9:5
|
LL | origin = Point { x: 10, ..origin };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of possibly uninitialized `origin.y`
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ use of possibly-uninitialized `origin.y`

error: aborting due to previous error

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-init-op-equal.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
fn test() {
let v: isize;
v += 1; //~ ERROR use of possibly uninitialized variable: `v`
v += 1; //~ ERROR use of possibly-uninitialized variable: `v`
v.clone();
}

4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-init-op-equal.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: use of possibly uninitialized variable: `v`
error[E0381]: use of possibly-uninitialized variable: `v`
--> $DIR/borrowck-init-op-equal.rs:3:5
|
LL | v += 1;
| ^^^^^^ use of possibly uninitialized `v`
| ^^^^^^ use of possibly-uninitialized `v`

error: aborting due to previous error

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-init-plus-equal.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
fn test() {
let mut v: isize;
v = v + 1; //~ ERROR use of possibly uninitialized variable: `v`
v = v + 1; //~ ERROR use of possibly-uninitialized variable: `v`
v.clone();
}

4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-init-plus-equal.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: use of possibly uninitialized variable: `v`
error[E0381]: use of possibly-uninitialized variable: `v`
--> $DIR/borrowck-init-plus-equal.rs:3:9
|
LL | v = v + 1;
| ^ use of possibly uninitialized `v`
| ^ use of possibly-uninitialized `v`

error: aborting due to previous error

13 changes: 6 additions & 7 deletions src/test/ui/borrowck/borrowck-migrate-to-nll.edition.stderr
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
warning[E0502]: cannot borrow `*block.current` as immutable because it is also borrowed as mutable
--> $DIR/borrowck-migrate-to-nll.rs:28:21
error[E0502]: cannot borrow `*block.current` as immutable because it is also borrowed as mutable
--> $DIR/borrowck-migrate-to-nll.rs:29:21
|
LL | let x = &mut block;
| ---------- mutable borrow occurs here
LL | let p: &'a u8 = &*block.current;
| ^^^^^^^^^^^^^^^ immutable borrow occurs here
LL | // (use `x` and `p` so enabling NLL doesn't assign overly short lifetimes)
...
LL | drop(x);
| - mutable borrow later used here
|
= warning: this error has been downgraded to a warning for backwards compatibility with previous releases
= warning: this represents potential undefined behavior in your code and this warning will become a hard error in the future
= note: for more information, try `rustc --explain E0729`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0502`.
4 changes: 3 additions & 1 deletion src/test/ui/borrowck/borrowck-migrate-to-nll.rs
Original file line number Diff line number Diff line change
@@ -4,6 +4,8 @@
//
// Therefore, for backwards-compatiblity, under borrowck=migrate the
// NLL checks will be emitted as *warnings*.
//
// In Rust 2018, no errors will be downgraded to warnings.

// NLL mode makes this compile-fail; we cannot currently encode a
// test that is run-pass or compile-fail based on compare-mode. So
@@ -16,7 +18,6 @@
//[zflag]compile-flags: -Z borrowck=migrate
//[edition]edition:2018
//[zflag] run-pass
//[edition] run-pass

pub struct Block<'a> {
current: &'a u8,
@@ -26,6 +27,7 @@ pub struct Block<'a> {
fn bump<'a>(mut block: &mut Block<'a>) {
let x = &mut block;
let p: &'a u8 = &*block.current;
//[edition]~^ ERROR cannot borrow `*block.current` as immutable
// (use `x` and `p` so enabling NLL doesn't assign overly short lifetimes)
drop(x);
drop(p);
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-migrate-to-nll.zflag.stderr
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
warning[E0502]: cannot borrow `*block.current` as immutable because it is also borrowed as mutable
--> $DIR/borrowck-migrate-to-nll.rs:28:21
--> $DIR/borrowck-migrate-to-nll.rs:29:21
|
LL | let x = &mut block;
| ---------- mutable borrow occurs here
LL | let p: &'a u8 = &*block.current;
| ^^^^^^^^^^^^^^^ immutable borrow occurs here
LL | // (use `x` and `p` so enabling NLL doesn't assign overly short lifetimes)
...
LL | drop(x);
| - mutable borrow later used here
|
2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-or-init.rs
Original file line number Diff line number Diff line change
@@ -2,5 +2,5 @@ fn main() {
let i: isize;

println!("{}", false || { i = 5; true });
println!("{}", i); //~ ERROR borrow of possibly uninitialized variable: `i`
println!("{}", i); //~ ERROR borrow of possibly-uninitialized variable: `i`
}
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-or-init.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: borrow of possibly uninitialized variable: `i`
error[E0381]: borrow of possibly-uninitialized variable: `i`
--> $DIR/borrowck-or-init.rs:5:20
|
LL | println!("{}", i);
| ^ use of possibly uninitialized `i`
| ^ use of possibly-uninitialized `i`

error: aborting due to previous error

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-partial-reinit-4.rs
Original file line number Diff line number Diff line change
@@ -15,7 +15,7 @@ impl Drop for Test2 {
fn stuff() {
let mut x : (Test2, Test2);
(x.0).0 = Some(Test);
//~^ ERROR assign of possibly uninitialized variable: `x.0`
//~^ ERROR assign of possibly-uninitialized variable: `x.0`
}

fn main() {
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-partial-reinit-4.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: assign of possibly uninitialized variable: `x.0`
error[E0381]: assign of possibly-uninitialized variable: `x.0`
--> $DIR/borrowck-partial-reinit-4.rs:17:5
|
LL | (x.0).0 = Some(Test);
| ^^^^^^^ use of possibly uninitialized `x.0`
| ^^^^^^^ use of possibly-uninitialized `x.0`

error: aborting due to previous error

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-return.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
fn f() -> isize {
let x: isize;
return x; //~ ERROR use of possibly uninitialized variable: `x`
return x; //~ ERROR use of possibly-uninitialized variable: `x`
}

fn main() { f(); }
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-return.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-return.rs:3:12
|
LL | return x;
| ^ use of possibly uninitialized `x`
| ^ use of possibly-uninitialized `x`

error: aborting due to previous error

4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-storage-dead.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-storage-dead.rs:16:17
|
LL | let _ = x + 1;
| ^ use of possibly uninitialized `x`
| ^ use of possibly-uninitialized `x`

error: aborting due to previous error

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-uninit-after-item.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
fn main() {
let bar;
fn baz(_x: isize) { }
baz(bar); //~ ERROR use of possibly uninitialized variable: `bar`
baz(bar); //~ ERROR use of possibly-uninitialized variable: `bar`
}
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-uninit-after-item.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: use of possibly uninitialized variable: `bar`
error[E0381]: use of possibly-uninitialized variable: `bar`
--> $DIR/borrowck-uninit-after-item.rs:4:9
|
LL | baz(bar);
| ^^^ use of possibly uninitialized `bar`
| ^^^ use of possibly-uninitialized `bar`

error: aborting due to previous error

4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-uninit-field-access.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: use of possibly uninitialized variable: `a`
error[E0381]: use of possibly-uninitialized variable: `a`
--> $DIR/borrowck-uninit-field-access.rs:21:13
|
LL | let _ = a.x + 1;
| ^^^ use of possibly uninitialized `a.x`
| ^^^ use of possibly-uninitialized `a.x`

error[E0382]: use of moved value: `line1.origin`
--> $DIR/borrowck-uninit-field-access.rs:25:13
20 changes: 10 additions & 10 deletions src/test/ui/borrowck/borrowck-uninit-in-assignop.rs
Original file line number Diff line number Diff line change
@@ -3,32 +3,32 @@

pub fn main() {
let x: isize;
x += 1; //~ ERROR use of possibly uninitialized variable: `x`
x += 1; //~ ERROR use of possibly-uninitialized variable: `x`

let x: isize;
x -= 1; //~ ERROR use of possibly uninitialized variable: `x`
x -= 1; //~ ERROR use of possibly-uninitialized variable: `x`

let x: isize;
x *= 1; //~ ERROR use of possibly uninitialized variable: `x`
x *= 1; //~ ERROR use of possibly-uninitialized variable: `x`

let x: isize;
x /= 1; //~ ERROR use of possibly uninitialized variable: `x`
x /= 1; //~ ERROR use of possibly-uninitialized variable: `x`

let x: isize;
x %= 1; //~ ERROR use of possibly uninitialized variable: `x`
x %= 1; //~ ERROR use of possibly-uninitialized variable: `x`

let x: isize;
x ^= 1; //~ ERROR use of possibly uninitialized variable: `x`
x ^= 1; //~ ERROR use of possibly-uninitialized variable: `x`

let x: isize;
x &= 1; //~ ERROR use of possibly uninitialized variable: `x`
x &= 1; //~ ERROR use of possibly-uninitialized variable: `x`

let x: isize;
x |= 1; //~ ERROR use of possibly uninitialized variable: `x`
x |= 1; //~ ERROR use of possibly-uninitialized variable: `x`

let x: isize;
x <<= 1; //~ ERROR use of possibly uninitialized variable: `x`
x <<= 1; //~ ERROR use of possibly-uninitialized variable: `x`

let x: isize;
x >>= 1; //~ ERROR use of possibly uninitialized variable: `x`
x >>= 1; //~ ERROR use of possibly-uninitialized variable: `x`
}
40 changes: 20 additions & 20 deletions src/test/ui/borrowck/borrowck-uninit-in-assignop.stderr
Original file line number Diff line number Diff line change
@@ -1,62 +1,62 @@
error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-uninit-in-assignop.rs:6:5
|
LL | x += 1;
| ^^^^^^ use of possibly uninitialized `x`
| ^^^^^^ use of possibly-uninitialized `x`

error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-uninit-in-assignop.rs:9:5
|
LL | x -= 1;
| ^^^^^^ use of possibly uninitialized `x`
| ^^^^^^ use of possibly-uninitialized `x`

error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-uninit-in-assignop.rs:12:5
|
LL | x *= 1;
| ^^^^^^ use of possibly uninitialized `x`
| ^^^^^^ use of possibly-uninitialized `x`

error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-uninit-in-assignop.rs:15:5
|
LL | x /= 1;
| ^^^^^^ use of possibly uninitialized `x`
| ^^^^^^ use of possibly-uninitialized `x`

error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-uninit-in-assignop.rs:18:5
|
LL | x %= 1;
| ^^^^^^ use of possibly uninitialized `x`
| ^^^^^^ use of possibly-uninitialized `x`

error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-uninit-in-assignop.rs:21:5
|
LL | x ^= 1;
| ^^^^^^ use of possibly uninitialized `x`
| ^^^^^^ use of possibly-uninitialized `x`

error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-uninit-in-assignop.rs:24:5
|
LL | x &= 1;
| ^^^^^^ use of possibly uninitialized `x`
| ^^^^^^ use of possibly-uninitialized `x`

error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-uninit-in-assignop.rs:27:5
|
LL | x |= 1;
| ^^^^^^ use of possibly uninitialized `x`
| ^^^^^^ use of possibly-uninitialized `x`

error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-uninit-in-assignop.rs:30:5
|
LL | x <<= 1;
| ^^^^^^^ use of possibly uninitialized `x`
| ^^^^^^^ use of possibly-uninitialized `x`

error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-uninit-in-assignop.rs:33:5
|
LL | x >>= 1;
| ^^^^^^^ use of possibly uninitialized `x`
| ^^^^^^^ use of possibly-uninitialized `x`

error: aborting due to 10 previous errors

8 changes: 4 additions & 4 deletions src/test/ui/borrowck/borrowck-uninit-ref-chain.rs
Original file line number Diff line number Diff line change
@@ -15,19 +15,19 @@ fn main() {


let mut a: S<i32, i32>;
a.x = 0; //~ ERROR assign to part of possibly uninitialized variable: `a` [E0381]
a.x = 0; //~ ERROR assign to part of possibly-uninitialized variable: `a` [E0381]
let _b = &a.x;

let mut a: S<&&i32, &&i32>;
a.x = &&0; //~ ERROR assign to part of possibly uninitialized variable: `a` [E0381]
a.x = &&0; //~ ERROR assign to part of possibly-uninitialized variable: `a` [E0381]
let _b = &**a.x;


let mut a: S<i32, i32>;
a.x = 0; //~ ERROR assign to part of possibly uninitialized variable: `a` [E0381]
a.x = 0; //~ ERROR assign to part of possibly-uninitialized variable: `a` [E0381]
let _b = &a.y;

let mut a: S<&&i32, &&i32>;
a.x = &&0; //~ assign to part of possibly uninitialized variable: `a` [E0381]
a.x = &&0; //~ assign to part of possibly-uninitialized variable: `a` [E0381]
let _b = &**a.y;
}
28 changes: 14 additions & 14 deletions src/test/ui/borrowck/borrowck-uninit-ref-chain.stderr
Original file line number Diff line number Diff line change
@@ -1,44 +1,44 @@
error[E0381]: borrow of possibly uninitialized variable: `x`
error[E0381]: borrow of possibly-uninitialized variable: `x`
--> $DIR/borrowck-uninit-ref-chain.rs:8:14
|
LL | let _y = &**x;
| ^^^^ use of possibly uninitialized `**x`
| ^^^^ use of possibly-uninitialized `**x`

error[E0381]: borrow of possibly uninitialized variable: `x`
error[E0381]: borrow of possibly-uninitialized variable: `x`
--> $DIR/borrowck-uninit-ref-chain.rs:11:14
|
LL | let _y = &**x;
| ^^^^ use of possibly uninitialized `**x`
| ^^^^ use of possibly-uninitialized `**x`

error[E0381]: borrow of possibly uninitialized variable: `x`
error[E0381]: borrow of possibly-uninitialized variable: `x`
--> $DIR/borrowck-uninit-ref-chain.rs:14:14
|
LL | let _y = &**x;
| ^^^^ use of possibly uninitialized `**x`
| ^^^^ use of possibly-uninitialized `**x`

error[E0381]: assign to part of possibly uninitialized variable: `a`
error[E0381]: assign to part of possibly-uninitialized variable: `a`
--> $DIR/borrowck-uninit-ref-chain.rs:18:5
|
LL | a.x = 0;
| ^^^^^^^ use of possibly uninitialized `a`
| ^^^^^^^ use of possibly-uninitialized `a`

error[E0381]: assign to part of possibly uninitialized variable: `a`
error[E0381]: assign to part of possibly-uninitialized variable: `a`
--> $DIR/borrowck-uninit-ref-chain.rs:22:5
|
LL | a.x = &&0;
| ^^^^^^^^^ use of possibly uninitialized `a`
| ^^^^^^^^^ use of possibly-uninitialized `a`

error[E0381]: assign to part of possibly uninitialized variable: `a`
error[E0381]: assign to part of possibly-uninitialized variable: `a`
--> $DIR/borrowck-uninit-ref-chain.rs:27:5
|
LL | a.x = 0;
| ^^^^^^^ use of possibly uninitialized `a`
| ^^^^^^^ use of possibly-uninitialized `a`

error[E0381]: assign to part of possibly uninitialized variable: `a`
error[E0381]: assign to part of possibly-uninitialized variable: `a`
--> $DIR/borrowck-uninit-ref-chain.rs:31:5
|
LL | a.x = &&0;
| ^^^^^^^^^ use of possibly uninitialized `a`
| ^^^^^^^^^ use of possibly-uninitialized `a`

error: aborting due to 7 previous errors

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-uninit.rs
Original file line number Diff line number Diff line change
@@ -2,5 +2,5 @@ fn foo(x: isize) { println!("{}", x); }

fn main() {
let x: isize;
foo(x); //~ ERROR use of possibly uninitialized variable: `x`
foo(x); //~ ERROR use of possibly-uninitialized variable: `x`
}
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-uninit.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-uninit.rs:5:9
|
LL | foo(x);
| ^ use of possibly uninitialized `x`
| ^ use of possibly-uninitialized `x`

error: aborting due to previous error

4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-union-uninitialized.rs
Original file line number Diff line number Diff line change
@@ -10,8 +10,8 @@ fn main() {
unsafe {
let mut s: S;
let mut u: U;
s.a = 0; //~ ERROR assign to part of possibly uninitialized variable: `s`
u.a = 0; //~ ERROR assign to part of possibly uninitialized variable: `u`
s.a = 0; //~ ERROR assign to part of possibly-uninitialized variable: `s`
u.a = 0; //~ ERROR assign to part of possibly-uninitialized variable: `u`
let sa = s.a;
let ua = u.a;
}
8 changes: 4 additions & 4 deletions src/test/ui/borrowck/borrowck-union-uninitialized.stderr
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
error[E0381]: assign to part of possibly uninitialized variable: `s`
error[E0381]: assign to part of possibly-uninitialized variable: `s`
--> $DIR/borrowck-union-uninitialized.rs:13:9
|
LL | s.a = 0;
| ^^^^^^^ use of possibly uninitialized `s`
| ^^^^^^^ use of possibly-uninitialized `s`

error[E0381]: assign to part of possibly uninitialized variable: `u`
error[E0381]: assign to part of possibly-uninitialized variable: `u`
--> $DIR/borrowck-union-uninitialized.rs:14:9
|
LL | u.a = 0;
| ^^^^^^^ use of possibly uninitialized `u`
| ^^^^^^^ use of possibly-uninitialized `u`

error: aborting due to 2 previous errors

8 changes: 4 additions & 4 deletions src/test/ui/borrowck/borrowck-use-in-index-lvalue.stderr
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
error[E0381]: use of possibly uninitialized variable: `w`
error[E0381]: use of possibly-uninitialized variable: `w`
--> $DIR/borrowck-use-in-index-lvalue.rs:3:5
|
LL | w[5] = 0;
| ^^^^ use of possibly uninitialized `*w`
| ^^^^ use of possibly-uninitialized `*w`

error[E0381]: use of possibly uninitialized variable: `w`
error[E0381]: use of possibly-uninitialized variable: `w`
--> $DIR/borrowck-use-in-index-lvalue.rs:6:5
|
LL | w[5] = 0;
| ^^^^ use of possibly uninitialized `*w`
| ^^^^ use of possibly-uninitialized `*w`

error: aborting due to 2 previous errors

Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: borrow of possibly uninitialized variable: `x`
error[E0381]: borrow of possibly-uninitialized variable: `x`
--> $DIR/borrowck-use-uninitialized-in-cast-trait.rs:9:13
|
LL | let y = x as *const dyn Foo;
| ^ use of possibly uninitialized `*x`
| ^ use of possibly-uninitialized `*x`

error: aborting due to previous error

Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: borrow of possibly uninitialized variable: `x`
error[E0381]: borrow of possibly-uninitialized variable: `x`
--> $DIR/borrowck-use-uninitialized-in-cast.rs:7:13
|
LL | let y = x as *const i32;
| ^ use of possibly uninitialized `*x`
| ^ use of possibly-uninitialized `*x`

error: aborting due to previous error

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-while-break.rs
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ fn test(cond: bool) {
v = 3;
break;
}
println!("{}", v); //~ ERROR borrow of possibly uninitialized variable: `v`
println!("{}", v); //~ ERROR borrow of possibly-uninitialized variable: `v`
}

fn main() {
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-while-break.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: borrow of possibly uninitialized variable: `v`
error[E0381]: borrow of possibly-uninitialized variable: `v`
--> $DIR/borrowck-while-break.rs:7:20
|
LL | println!("{}", v);
| ^ use of possibly uninitialized `v`
| ^ use of possibly-uninitialized `v`

error: aborting due to previous error

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-while-cond.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
fn main() {
let x: bool;
while x { } //~ ERROR use of possibly uninitialized variable: `x`
while x { } //~ ERROR use of possibly-uninitialized variable: `x`
}
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-while-cond.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-while-cond.rs:3:11
|
LL | while x { }
| ^ use of possibly uninitialized `x`
| ^ use of possibly-uninitialized `x`

error: aborting due to previous error

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/borrowck-while.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
fn f() -> isize {
let mut x: isize;
while 1 == 1 { x = 10; }
return x; //~ ERROR use of possibly uninitialized variable: `x`
return x; //~ ERROR use of possibly-uninitialized variable: `x`
}

fn main() { f(); }
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/borrowck-while.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: use of possibly uninitialized variable: `x`
error[E0381]: use of possibly-uninitialized variable: `x`
--> $DIR/borrowck-while.rs:4:12
|
LL | return x;
| ^ use of possibly uninitialized `x`
| ^ use of possibly-uninitialized `x`

error: aborting due to previous error

8 changes: 4 additions & 4 deletions src/test/ui/borrowck/disallow-possibly-uninitialized.rs
Original file line number Diff line number Diff line change
@@ -4,19 +4,19 @@
fn main() {
let mut t: (u64, u64);
t.0 = 1;
//~^ ERROR assign to part of possibly uninitialized variable: `t` [E0381]
//~^ ERROR assign to part of possibly-uninitialized variable: `t` [E0381]
t.1 = 1;

let mut t: (u64, u64);
t.1 = 1;
//~^ ERROR assign to part of possibly uninitialized variable: `t` [E0381]
//~^ ERROR assign to part of possibly-uninitialized variable: `t` [E0381]
t.0 = 1;

let mut t: (u64, u64);
t.0 = 1;
//~^ ERROR assign to part of possibly uninitialized variable: `t` [E0381]
//~^ ERROR assign to part of possibly-uninitialized variable: `t` [E0381]

let mut t: (u64,);
t.0 = 1;
//~^ ERROR assign to part of possibly uninitialized variable: `t` [E0381]
//~^ ERROR assign to part of possibly-uninitialized variable: `t` [E0381]
}
16 changes: 8 additions & 8 deletions src/test/ui/borrowck/disallow-possibly-uninitialized.stderr
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
error[E0381]: assign to part of possibly uninitialized variable: `t`
error[E0381]: assign to part of possibly-uninitialized variable: `t`
--> $DIR/disallow-possibly-uninitialized.rs:6:5
|
LL | t.0 = 1;
| ^^^^^^^ use of possibly uninitialized `t`
| ^^^^^^^ use of possibly-uninitialized `t`

error[E0381]: assign to part of possibly uninitialized variable: `t`
error[E0381]: assign to part of possibly-uninitialized variable: `t`
--> $DIR/disallow-possibly-uninitialized.rs:11:5
|
LL | t.1 = 1;
| ^^^^^^^ use of possibly uninitialized `t`
| ^^^^^^^ use of possibly-uninitialized `t`

error[E0381]: assign to part of possibly uninitialized variable: `t`
error[E0381]: assign to part of possibly-uninitialized variable: `t`
--> $DIR/disallow-possibly-uninitialized.rs:16:5
|
LL | t.0 = 1;
| ^^^^^^^ use of possibly uninitialized `t`
| ^^^^^^^ use of possibly-uninitialized `t`

error[E0381]: assign to part of possibly uninitialized variable: `t`
error[E0381]: assign to part of possibly-uninitialized variable: `t`
--> $DIR/disallow-possibly-uninitialized.rs:20:5
|
LL | t.0 = 1;
| ^^^^^^^ use of possibly uninitialized `t`
| ^^^^^^^ use of possibly-uninitialized `t`

error: aborting due to 4 previous errors

Original file line number Diff line number Diff line change
@@ -10,23 +10,23 @@ fn main() {
{
let mut t: Tuple;
t.0 = S(1);
//~^ ERROR assign to part of possibly uninitialized variable: `t` [E0381]
//~^ ERROR assign to part of possibly-uninitialized variable: `t` [E0381]
t.1 = 2;
println!("{:?} {:?}", t.0, t.1);
}

{
let mut u: Tpair;
u.0 = S(1);
//~^ ERROR assign to part of possibly uninitialized variable: `u` [E0381]
//~^ ERROR assign to part of possibly-uninitialized variable: `u` [E0381]
u.1 = 2;
println!("{:?} {:?}", u.0, u.1);
}

{
let mut v: Spair;
v.x = S(1);
//~^ ERROR assign to part of possibly uninitialized variable: `v` [E0381]
//~^ ERROR assign to part of possibly-uninitialized variable: `v` [E0381]
v.y = 2;
println!("{:?} {:?}", v.x, v.y);
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
error[E0381]: assign to part of possibly uninitialized variable: `t`
error[E0381]: assign to part of possibly-uninitialized variable: `t`
--> $DIR/issue-54499-field-mutation-marks-mut-as-used.rs:12:9
|
LL | t.0 = S(1);
| ^^^^^^^^^^ use of possibly uninitialized `t`
| ^^^^^^^^^^ use of possibly-uninitialized `t`

error[E0381]: assign to part of possibly uninitialized variable: `u`
error[E0381]: assign to part of possibly-uninitialized variable: `u`
--> $DIR/issue-54499-field-mutation-marks-mut-as-used.rs:20:9
|
LL | u.0 = S(1);
| ^^^^^^^^^^ use of possibly uninitialized `u`
| ^^^^^^^^^^ use of possibly-uninitialized `u`

error[E0381]: assign to part of possibly uninitialized variable: `v`
error[E0381]: assign to part of possibly-uninitialized variable: `v`
--> $DIR/issue-54499-field-mutation-marks-mut-as-used.rs:28:9
|
LL | v.x = S(1);
| ^^^^^^^^^^ use of possibly uninitialized `v`
| ^^^^^^^^^^ use of possibly-uninitialized `v`

error: aborting due to 3 previous errors

Original file line number Diff line number Diff line change
@@ -10,23 +10,23 @@ fn main() {
{
let t: Tuple;
t.0 = S(1);
//~^ ERROR assign to part of possibly uninitialized variable: `t` [E0381]
//~^ ERROR assign to part of possibly-uninitialized variable: `t` [E0381]
t.1 = 2;
println!("{:?} {:?}", t.0, t.1);
}

{
let u: Tpair;
u.0 = S(1);
//~^ ERROR assign to part of possibly uninitialized variable: `u` [E0381]
//~^ ERROR assign to part of possibly-uninitialized variable: `u` [E0381]
u.1 = 2;
println!("{:?} {:?}", u.0, u.1);
}

{
let v: Spair;
v.x = S(1);
//~^ ERROR assign to part of possibly uninitialized variable: `v` [E0381]
//~^ ERROR assign to part of possibly-uninitialized variable: `v` [E0381]
v.y = 2;
println!("{:?} {:?}", v.x, v.y);
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
error[E0381]: assign to part of possibly uninitialized variable: `t`
error[E0381]: assign to part of possibly-uninitialized variable: `t`
--> $DIR/issue-54499-field-mutation-of-never-init.rs:12:9
|
LL | t.0 = S(1);
| ^^^^^^^^^^ use of possibly uninitialized `t`
| ^^^^^^^^^^ use of possibly-uninitialized `t`

error[E0381]: assign to part of possibly uninitialized variable: `u`
error[E0381]: assign to part of possibly-uninitialized variable: `u`
--> $DIR/issue-54499-field-mutation-of-never-init.rs:20:9
|
LL | u.0 = S(1);
| ^^^^^^^^^^ use of possibly uninitialized `u`
| ^^^^^^^^^^ use of possibly-uninitialized `u`

error[E0381]: assign to part of possibly uninitialized variable: `v`
error[E0381]: assign to part of possibly-uninitialized variable: `v`
--> $DIR/issue-54499-field-mutation-of-never-init.rs:28:9
|
LL | v.x = S(1);
| ^^^^^^^^^^ use of possibly uninitialized `v`
| ^^^^^^^^^^ use of possibly-uninitialized `v`

error: aborting due to 3 previous errors

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/issue-62107-match-arm-scopes.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
fn main() {
let e: i32;
match e {
//~^ ERROR use of possibly uninitialized variable
//~^ ERROR use of possibly-uninitialized variable
ref u if true => {}
ref v if true => {
let tx = 0;
4 changes: 2 additions & 2 deletions src/test/ui/borrowck/issue-62107-match-arm-scopes.stderr
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: use of possibly uninitialized variable: `e`
error[E0381]: use of possibly-uninitialized variable: `e`
--> $DIR/issue-62107-match-arm-scopes.rs:3:11
|
LL | match e {
| ^ use of possibly uninitialized `e`
| ^ use of possibly-uninitialized `e`

error: aborting due to previous error

8 changes: 4 additions & 4 deletions src/test/ui/borrowck/reassignment_immutable_fields.stderr
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
error[E0381]: assign to part of possibly uninitialized variable: `x`
error[E0381]: assign to part of possibly-uninitialized variable: `x`
--> $DIR/reassignment_immutable_fields.rs:7:5
|
LL | x.0 = 1;
| ^^^^^^^ use of possibly uninitialized `x`
| ^^^^^^^ use of possibly-uninitialized `x`

error[E0381]: assign to part of possibly uninitialized variable: `x`
error[E0381]: assign to part of possibly-uninitialized variable: `x`
--> $DIR/reassignment_immutable_fields.rs:15:5
|
LL | x.0 = 1;
| ^^^^^^^ use of possibly uninitialized `x`
| ^^^^^^^ use of possibly-uninitialized `x`

error: aborting due to 2 previous errors

Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
error[E0381]: assign to part of possibly uninitialized variable: `x`
error[E0381]: assign to part of possibly-uninitialized variable: `x`
--> $DIR/reassignment_immutable_fields_overlapping.rs:12:5
|
LL | x.a = 1;
| ^^^^^^^ use of possibly uninitialized `x`
| ^^^^^^^ use of possibly-uninitialized `x`

error[E0594]: cannot assign to `x.b`, as `x` is not declared as mutable
--> $DIR/reassignment_immutable_fields_overlapping.rs:13:5
Original file line number Diff line number Diff line change
@@ -7,11 +7,11 @@ LL | x = (22, 44);
LL | x.0 = 1;
| ^^^^^^^ cannot assign

error[E0381]: assign to part of possibly uninitialized variable: `x`
error[E0381]: assign to part of possibly-uninitialized variable: `x`
--> $DIR/reassignment_immutable_fields_twice.rs:12:5
|
LL | x.0 = 1;
| ^^^^^^^ use of possibly uninitialized `x`
| ^^^^^^^ use of possibly-uninitialized `x`

error: aborting due to 2 previous errors

2 changes: 1 addition & 1 deletion src/test/ui/borrowck/two-phase-across-loop.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Test that a borrow which starts as a 2-phase borrow and gets
// Test that a borrow which starts as a two-phase borrow and gets
// carried around a loop winds up conflicting with itself.

struct Foo { x: String }
2 changes: 1 addition & 1 deletion src/test/ui/consts/const-err4.stderr
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ error[E0080]: it is undefined behavior to use this value
LL | Boo = [unsafe { Foo { b: () }.a }; 4][3],
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered uninitialized bytes, but expected initialized plain (non-pointer) bytes
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: aborting due to previous error

Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ error[E0080]: it is undefined behavior to use this value
LL | const I32_REF_USIZE_UNION: usize = unsafe { Nonsense { int_32_ref: &3 }.u };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:28:43
@@ -38,15 +38,15 @@ error[E0080]: it is undefined behavior to use this value
LL | const I32_REF_U64_UNION: u64 = unsafe { Nonsense { int_32_ref: &3 }.uint_64 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/const-pointer-values-in-various-types.rs:40:5
|
LL | const I32_REF_U128_UNION: u128 = unsafe { Nonsense { int_32_ref: &3 }.uint_128 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered uninitialized bytes, but expected initialized plain (non-pointer) bytes
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:43:43
@@ -78,15 +78,15 @@ error[E0080]: it is undefined behavior to use this value
LL | const I32_REF_I64_UNION: i64 = unsafe { Nonsense { int_32_ref: &3 }.int_64 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/const-pointer-values-in-various-types.rs:55:5
|
LL | const I32_REF_I128_UNION: i128 = unsafe { Nonsense { int_32_ref: &3 }.int_128 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered uninitialized bytes, but expected initialized plain (non-pointer) bytes
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:58:45
@@ -102,7 +102,7 @@ error[E0080]: it is undefined behavior to use this value
LL | const I32_REF_F64_UNION: f64 = unsafe { Nonsense { int_32_ref: &3 }.float_64 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:64:47
@@ -150,7 +150,7 @@ error[E0080]: it is undefined behavior to use this value
LL | const STR_U64_UNION: u64 = unsafe { Nonsense { stringy: "3" }.uint_64 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:82:43
@@ -190,7 +190,7 @@ error[E0080]: it is undefined behavior to use this value
LL | const STR_I64_UNION: i64 = unsafe { Nonsense { stringy: "3" }.int_64 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:97:43
@@ -214,7 +214,7 @@ error[E0080]: it is undefined behavior to use this value
LL | const STR_F64_UNION: f64 = unsafe { Nonsense { stringy: "3" }.float_64 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: any use of this value will cause an error
--> $DIR/const-pointer-values-in-various-types.rs:106:43
2 changes: 1 addition & 1 deletion src/test/ui/consts/const-eval/double_check2.stderr
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ LL | | Union { u8: &BAR }.bar,
LL | | )};
| |___^ type validation failed: encountered 5 at .1.<deref>, but expected a valid enum discriminant
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: aborting due to previous error

2 changes: 1 addition & 1 deletion src/test/ui/consts/const-eval/ref_to_int_match.stderr
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ error[E0080]: it is undefined behavior to use this value
LL | const BAR: Int = unsafe { Foo { r: &42 }.f };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: could not evaluate constant pattern
--> $DIR/ref_to_int_match.rs:7:14
2 changes: 1 addition & 1 deletion src/test/ui/consts/const-eval/transmute-const.stderr
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ error[E0080]: it is undefined behavior to use this value
LL | static FOO: bool = unsafe { mem::transmute(3u8) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 3, but expected something less or equal to 1
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: aborting due to previous error

18 changes: 9 additions & 9 deletions src/test/ui/consts/const-eval/ub-enum.stderr
Original file line number Diff line number Diff line change
@@ -4,71 +4,71 @@ error[E0080]: it is undefined behavior to use this value
LL | const BAD_ENUM: Enum = unsafe { TransmuteEnum { in2: 1 }.out1 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 1, but expected a valid enum discriminant
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-enum.rs:26:1
|
LL | const BAD_ENUM_PTR: Enum = unsafe { TransmuteEnum { in1: &1 }.out1 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected a valid enum discriminant
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-enum.rs:29:1
|
LL | const BAD_ENUM_WRAPPED: Wrap<Enum> = unsafe { TransmuteEnum { in1: &1 }.out2 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected something that cannot possibly fail to be equal to 0
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-enum.rs:48:1
|
LL | const BAD_ENUM2: Enum2 = unsafe { TransmuteEnum2 { in1: 0 }.out1 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 0, but expected a valid enum discriminant
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-enum.rs:50:1
|
LL | const BAD_ENUM2_PTR: Enum2 = unsafe { TransmuteEnum2 { in2: &0 }.out1 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected a valid enum discriminant
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-enum.rs:52:1
|
LL | const BAD_ENUM2_WRAPPED: Wrap<Enum2> = unsafe { TransmuteEnum2 { in2: &0 }.out2 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected something that cannot possibly fail to be equal to 2
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-enum.rs:56:1
|
LL | const BAD_ENUM2_UNDEF : Enum2 = unsafe { TransmuteEnum2 { in3: () }.out1 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered uninitialized bytes, but expected a valid enum discriminant
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-enum.rs:60:1
|
LL | const BAD_ENUM2_OPTION_PTR: Option<Enum2> = unsafe { TransmuteEnum2 { in2: &0 }.out3 };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected a valid enum discriminant
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-enum.rs:71:1
|
LL | const BAD_OPTION_CHAR: Option<(char, char)> = Some(('x', unsafe { TransmuteChar { a: !0 }.b }));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 4294967295 at .<downcast-variant(Some)>.0.1, but expected something less or equal to 1114111
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: aborting due to 9 previous errors

12 changes: 6 additions & 6 deletions src/test/ui/consts/const-eval/ub-nonnull.stderr
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ error[E0080]: it is undefined behavior to use this value
LL | const NULL_PTR: NonNull<u8> = unsafe { mem::transmute(0usize) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 0, but expected something greater or equal to 1
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: any use of this value will cause an error
--> $DIR/ub-nonnull.rs:18:29
@@ -30,39 +30,39 @@ error[E0080]: it is undefined behavior to use this value
LL | const NULL_U8: NonZeroU8 = unsafe { mem::transmute(0u8) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 0, but expected something greater or equal to 1
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-nonnull.rs:24:1
|
LL | const NULL_USIZE: NonZeroUsize = unsafe { mem::transmute(0usize) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 0, but expected something greater or equal to 1
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-nonnull.rs:32:1
|
LL | const UNINIT: NonZeroU8 = unsafe { Transmute { uninit: () }.out };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered uninitialized bytes, but expected something greater or equal to 1
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-nonnull.rs:40:1
|
LL | const BAD_RANGE1: RestrictedRange1 = unsafe { RestrictedRange1(42) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 42, but expected something in the range 10..=30
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-nonnull.rs:46:1
|
LL | const BAD_RANGE2: RestrictedRange2 = unsafe { RestrictedRange2(20) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 20, but expected something less or equal to 10, or greater or equal to 30
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: aborting due to 7 previous errors

10 changes: 5 additions & 5 deletions src/test/ui/consts/const-eval/ub-ref.stderr
Original file line number Diff line number Diff line change
@@ -4,39 +4,39 @@ error[E0080]: it is undefined behavior to use this value
LL | const UNALIGNED: &u16 = unsafe { mem::transmute(&[0u8; 4]) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered unaligned reference (required 2 byte alignment but found 1)
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-ref.rs:11:1
|
LL | const NULL: &u16 = unsafe { mem::transmute(0usize) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 0, but expected something greater or equal to 1
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-ref.rs:17:1
|
LL | const REF_AS_USIZE: usize = unsafe { mem::transmute(&0) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer, but expected initialized plain (non-pointer) bytes
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-ref.rs:20:1
|
LL | const REF_AS_USIZE_SLICE: &[usize] = &[unsafe { mem::transmute(&0) }];
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a pointer at .<deref>, but expected plain (non-pointer) bytes
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-ref.rs:23:1
|
LL | const USIZE_AS_REF: &'static u8 = unsafe { mem::transmute(1337usize) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered dangling reference (created from integer)
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: aborting due to 5 previous errors

6 changes: 3 additions & 3 deletions src/test/ui/consts/const-eval/ub-uninhabit.stderr
Original file line number Diff line number Diff line change
@@ -4,23 +4,23 @@ error[E0080]: it is undefined behavior to use this value
LL | const BAD_BAD_BAD: Bar = unsafe { (TransmuteUnion::<(), Bar> { a: () }).b };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a value of an uninhabited type
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-uninhabit.rs:18:1
|
LL | const BAD_BAD_REF: &Bar = unsafe { mem::transmute(1usize) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a value of an uninhabited type at .<deref>
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error[E0080]: it is undefined behavior to use this value
--> $DIR/ub-uninhabit.rs:21:1
|
LL | const BAD_BAD_ARRAY: [Bar; 1] = unsafe { (TransmuteUnion::<(), [Bar; 1]> { a: () }).b };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered a value of an uninhabited type
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: aborting due to 3 previous errors

2 changes: 1 addition & 1 deletion src/test/ui/consts/const-eval/ub-upvars.stderr
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@ LL | | move || { let _ = bad_ref; let _ = another_var; }
LL | | };
| |__^ type validation failed: encountered 0 at .<deref>.<dyn-downcast>.<closure-var(bad_ref)>, but expected something greater or equal to 1
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rust compiler repository if you believe it should not be considered undefined behavior
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.

error: aborting due to previous error

Loading