Auto merge of #56962 - nivkner:fixme_fixup4, r=pnkfelix
address some FIXME whose associated issues were marked as closed part of #44366
This commit is contained in:
commit
27a25df2e2
25 changed files with 54 additions and 94 deletions
|
@ -1601,15 +1601,12 @@ extern "C" {
|
||||||
-> &'a Value;
|
-> &'a Value;
|
||||||
pub fn LLVMRustDIBuilderCreateOpDeref() -> i64;
|
pub fn LLVMRustDIBuilderCreateOpDeref() -> i64;
|
||||||
pub fn LLVMRustDIBuilderCreateOpPlusUconst() -> i64;
|
pub fn LLVMRustDIBuilderCreateOpPlusUconst() -> i64;
|
||||||
}
|
|
||||||
|
|
||||||
#[allow(improper_ctypes)] // FIXME(#52456) needed for RustString.
|
#[allow(improper_ctypes)]
|
||||||
extern "C" {
|
|
||||||
pub fn LLVMRustWriteTypeToString(Type: &Type, s: &RustString);
|
pub fn LLVMRustWriteTypeToString(Type: &Type, s: &RustString);
|
||||||
|
#[allow(improper_ctypes)]
|
||||||
pub fn LLVMRustWriteValueToString(value_ref: &Value, s: &RustString);
|
pub fn LLVMRustWriteValueToString(value_ref: &Value, s: &RustString);
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
pub fn LLVMIsAConstantInt(value_ref: &Value) -> Option<&Value>;
|
pub fn LLVMIsAConstantInt(value_ref: &Value) -> Option<&Value>;
|
||||||
pub fn LLVMIsAConstantFP(value_ref: &Value) -> Option<&Value>;
|
pub fn LLVMIsAConstantFP(value_ref: &Value) -> Option<&Value>;
|
||||||
|
|
||||||
|
@ -1687,21 +1684,15 @@ extern "C" {
|
||||||
pub fn LLVMRustDestroyArchive(AR: &'static mut Archive);
|
pub fn LLVMRustDestroyArchive(AR: &'static mut Archive);
|
||||||
|
|
||||||
pub fn LLVMRustGetSectionName(SI: &SectionIterator, data: &mut *const c_char) -> size_t;
|
pub fn LLVMRustGetSectionName(SI: &SectionIterator, data: &mut *const c_char) -> size_t;
|
||||||
}
|
|
||||||
|
|
||||||
#[allow(improper_ctypes)] // FIXME(#52456) needed for RustString.
|
#[allow(improper_ctypes)]
|
||||||
extern "C" {
|
|
||||||
pub fn LLVMRustWriteTwineToString(T: &Twine, s: &RustString);
|
pub fn LLVMRustWriteTwineToString(T: &Twine, s: &RustString);
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
pub fn LLVMContextSetDiagnosticHandler(C: &Context,
|
pub fn LLVMContextSetDiagnosticHandler(C: &Context,
|
||||||
Handler: DiagnosticHandler,
|
Handler: DiagnosticHandler,
|
||||||
DiagnosticContext: *mut c_void);
|
DiagnosticContext: *mut c_void);
|
||||||
}
|
|
||||||
|
|
||||||
#[allow(improper_ctypes)] // FIXME(#52456) needed for RustString.
|
#[allow(improper_ctypes)]
|
||||||
extern "C" {
|
|
||||||
pub fn LLVMRustUnpackOptimizationDiagnostic(DI: &'a DiagnosticInfo,
|
pub fn LLVMRustUnpackOptimizationDiagnostic(DI: &'a DiagnosticInfo,
|
||||||
pass_name_out: &RustString,
|
pass_name_out: &RustString,
|
||||||
function_out: &mut Option<&'a Value>,
|
function_out: &mut Option<&'a Value>,
|
||||||
|
@ -1709,34 +1700,23 @@ extern "C" {
|
||||||
loc_column_out: &mut c_uint,
|
loc_column_out: &mut c_uint,
|
||||||
loc_filename_out: &RustString,
|
loc_filename_out: &RustString,
|
||||||
message_out: &RustString);
|
message_out: &RustString);
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
pub fn LLVMRustUnpackInlineAsmDiagnostic(DI: &'a DiagnosticInfo,
|
pub fn LLVMRustUnpackInlineAsmDiagnostic(DI: &'a DiagnosticInfo,
|
||||||
cookie_out: &mut c_uint,
|
cookie_out: &mut c_uint,
|
||||||
message_out: &mut Option<&'a Twine>,
|
message_out: &mut Option<&'a Twine>,
|
||||||
instruction_out: &mut Option<&'a Value>);
|
instruction_out: &mut Option<&'a Value>);
|
||||||
}
|
|
||||||
|
|
||||||
#[allow(improper_ctypes)] // FIXME(#52456) needed for RustString.
|
#[allow(improper_ctypes)]
|
||||||
extern "C" {
|
|
||||||
pub fn LLVMRustWriteDiagnosticInfoToString(DI: &DiagnosticInfo, s: &RustString);
|
pub fn LLVMRustWriteDiagnosticInfoToString(DI: &DiagnosticInfo, s: &RustString);
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
pub fn LLVMRustGetDiagInfoKind(DI: &DiagnosticInfo) -> DiagnosticKind;
|
pub fn LLVMRustGetDiagInfoKind(DI: &DiagnosticInfo) -> DiagnosticKind;
|
||||||
|
|
||||||
pub fn LLVMRustSetInlineAsmDiagnosticHandler(C: &Context,
|
pub fn LLVMRustSetInlineAsmDiagnosticHandler(C: &Context,
|
||||||
H: InlineAsmDiagHandler,
|
H: InlineAsmDiagHandler,
|
||||||
CX: *mut c_void);
|
CX: *mut c_void);
|
||||||
}
|
|
||||||
|
|
||||||
#[allow(improper_ctypes)] // FIXME(#52456) needed for RustString.
|
#[allow(improper_ctypes)]
|
||||||
extern "C" {
|
|
||||||
pub fn LLVMRustWriteSMDiagnosticToString(d: &SMDiagnostic, s: &RustString);
|
pub fn LLVMRustWriteSMDiagnosticToString(d: &SMDiagnostic, s: &RustString);
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" {
|
|
||||||
pub fn LLVMRustWriteArchive(Dst: *const c_char,
|
pub fn LLVMRustWriteArchive(Dst: *const c_char,
|
||||||
NumMembers: size_t,
|
NumMembers: size_t,
|
||||||
Members: *const &RustArchiveMember,
|
Members: *const &RustArchiveMember,
|
||||||
|
|
|
@ -347,7 +347,7 @@ impl<'a, 'gcx, 'tcx> Builder<'a, 'gcx, 'tcx> {
|
||||||
span: test.span,
|
span: test.span,
|
||||||
ty: mty,
|
ty: mty,
|
||||||
|
|
||||||
// FIXME(#47184): This constant comes from user
|
// FIXME(#54571): This constant comes from user
|
||||||
// input (a constant in a pattern). Are
|
// input (a constant in a pattern). Are
|
||||||
// there forms where users can add type
|
// there forms where users can add type
|
||||||
// annotations here? For example, an
|
// annotations here? For example, an
|
||||||
|
|
|
@ -83,7 +83,7 @@ impl<'tcx> PatternTypeProjections<'tcx> {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn ref_binding(&self) -> Self {
|
pub(crate) fn ref_binding(&self) -> Self {
|
||||||
// FIXME(#47184): ignore for now
|
// FIXME(#55401): ignore for now
|
||||||
PatternTypeProjections { contents: vec![] }
|
PatternTypeProjections { contents: vec![] }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,8 @@
|
||||||
|
|
||||||
//! Representation of a `#[doc(cfg(...))]` attribute.
|
//! Representation of a `#[doc(cfg(...))]` attribute.
|
||||||
|
|
||||||
// FIXME: Once RFC #1868 is implemented, switch to use those structures instead.
|
// FIXME: Once the portability lint RFC is implemented (see tracking issue #41619),
|
||||||
|
// switch to use those structures instead.
|
||||||
|
|
||||||
use std::mem;
|
use std::mem;
|
||||||
use std::fmt::{self, Write};
|
use std::fmt::{self, Write};
|
||||||
|
|
|
@ -1240,10 +1240,8 @@ fn write_minify_replacer<W: Write>(dst: &mut W,
|
||||||
/// static HTML tree. Each component in the cleaned path will be passed as an
|
/// static HTML tree. Each component in the cleaned path will be passed as an
|
||||||
/// argument to `f`. The very last component of the path (ie the file name) will
|
/// argument to `f`. The very last component of the path (ie the file name) will
|
||||||
/// be passed to `f` if `keep_filename` is true, and ignored otherwise.
|
/// be passed to `f` if `keep_filename` is true, and ignored otherwise.
|
||||||
// FIXME (#9639): The closure should deal with &[u8] instead of &str
|
|
||||||
// FIXME (#9639): This is too conservative, rejecting non-UTF-8 paths
|
|
||||||
fn clean_srcpath<F>(src_root: &Path, p: &Path, keep_filename: bool, mut f: F) where
|
fn clean_srcpath<F>(src_root: &Path, p: &Path, keep_filename: bool, mut f: F) where
|
||||||
F: FnMut(&str),
|
F: FnMut(&OsStr),
|
||||||
{
|
{
|
||||||
// make it relative, if possible
|
// make it relative, if possible
|
||||||
let p = p.strip_prefix(src_root).unwrap_or(p);
|
let p = p.strip_prefix(src_root).unwrap_or(p);
|
||||||
|
@ -1256,8 +1254,8 @@ fn clean_srcpath<F>(src_root: &Path, p: &Path, keep_filename: bool, mut f: F) wh
|
||||||
}
|
}
|
||||||
|
|
||||||
match c {
|
match c {
|
||||||
Component::ParentDir => f("up"),
|
Component::ParentDir => f("up".as_ref()),
|
||||||
Component::Normal(c) => f(c.to_str().unwrap()),
|
Component::Normal(c) => f(c),
|
||||||
_ => continue,
|
_ => continue,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1356,7 +1354,7 @@ impl<'a> SourceCollector<'a> {
|
||||||
cur.push(component);
|
cur.push(component);
|
||||||
fs::create_dir_all(&cur).unwrap();
|
fs::create_dir_all(&cur).unwrap();
|
||||||
root_path.push_str("../");
|
root_path.push_str("../");
|
||||||
href.push_str(component);
|
href.push_str(&component.to_string_lossy());
|
||||||
href.push('/');
|
href.push('/');
|
||||||
});
|
});
|
||||||
let mut fname = p.file_name()
|
let mut fname = p.file_name()
|
||||||
|
@ -2243,7 +2241,7 @@ impl<'a> Item<'a> {
|
||||||
};
|
};
|
||||||
|
|
||||||
clean_srcpath(&src_root, file, false, |component| {
|
clean_srcpath(&src_root, file, false, |component| {
|
||||||
path.push_str(component);
|
path.push_str(&component.to_string_lossy());
|
||||||
path.push('/');
|
path.push('/');
|
||||||
});
|
});
|
||||||
let mut fname = file.file_name().expect("source has no filename")
|
let mut fname = file.file_name().expect("source has no filename")
|
||||||
|
|
|
@ -163,11 +163,7 @@ rust_get_null_ptr() {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Debug helpers strictly to verify ABI conformance.
|
// Debug helpers strictly to verify ABI conformance.
|
||||||
*
|
|
||||||
* FIXME (#2665): move these into a testcase when the testsuite
|
|
||||||
* understands how to have explicit C files included.
|
|
||||||
*/
|
|
||||||
|
|
||||||
struct quad {
|
struct quad {
|
||||||
uint64_t a;
|
uint64_t a;
|
||||||
|
|
|
@ -41,7 +41,6 @@ impl<'a> SingleRegionTrait<'a> for &'a u32 {}
|
||||||
struct SingleRegionStruct<'a>(&'a u32);
|
struct SingleRegionStruct<'a>(&'a u32);
|
||||||
|
|
||||||
fn simple_type_hrtb<'b>() -> impl for<'a> SingleRegionTrait<'a> { 5 }
|
fn simple_type_hrtb<'b>() -> impl for<'a> SingleRegionTrait<'a> { 5 }
|
||||||
// FIXME(cramertj) add test after #45992 lands to ensure lint is triggered
|
|
||||||
fn elision_single_region_trait(x: &u32) -> impl SingleRegionTrait { x }
|
fn elision_single_region_trait(x: &u32) -> impl SingleRegionTrait { x }
|
||||||
fn elision_single_region_struct(x: SingleRegionStruct) -> impl Into<SingleRegionStruct> { x }
|
fn elision_single_region_struct(x: SingleRegionStruct) -> impl Into<SingleRegionStruct> { x }
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ use std::collections::HashMap;
|
||||||
use issue_31702_1::U256;
|
use issue_31702_1::U256;
|
||||||
|
|
||||||
pub struct Ethash {
|
pub struct Ethash {
|
||||||
engine_params: for<'a> fn() -> Option<&'a Vec<u8>>,
|
engine_params: fn() -> Option<&'static Vec<u8>>,
|
||||||
u256_params: HashMap<String, U256>,
|
u256_params: HashMap<String, U256>,
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,11 +11,6 @@
|
||||||
// run-pass
|
// run-pass
|
||||||
// aux-build:issue-31702-1.rs
|
// aux-build:issue-31702-1.rs
|
||||||
// aux-build:issue-31702-2.rs
|
// aux-build:issue-31702-2.rs
|
||||||
// ignore-test: FIXME(#31702) when this test was added it was thought that the
|
|
||||||
// accompanying llvm update would fix it, but
|
|
||||||
// unfortunately it appears that was not the case. In
|
|
||||||
// the interest of not deleting the test, though,
|
|
||||||
// this is just tagged with ignore-test
|
|
||||||
|
|
||||||
// this test is actually entirely in the linked library crates
|
// this test is actually entirely in the linked library crates
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
// var, but we do not permit you to use the complete var afterwards.
|
// var, but we do not permit you to use the complete var afterwards.
|
||||||
// We hope to fix this at some point.
|
// We hope to fix this at some point.
|
||||||
//
|
//
|
||||||
// FIXME(#21232)
|
// FIXME(#54987)
|
||||||
|
|
||||||
fn assign_both_fields_and_use() {
|
fn assign_both_fields_and_use() {
|
||||||
let mut x: (u32, u32);
|
let mut x: (u32, u32);
|
||||||
|
|
|
@ -10,7 +10,7 @@ LL | *y = 1;
|
||||||
| ------ first borrow later used here
|
| ------ first borrow later used here
|
||||||
|
|
||||||
error[E0499]: cannot borrow `x` as mutable more than once at a time
|
error[E0499]: cannot borrow `x` as mutable more than once at a time
|
||||||
--> $DIR/borrowck-describe-lvalue.rs:307:20
|
--> $DIR/borrowck-describe-lvalue.rs:306:20
|
||||||
|
|
|
|
||||||
LL | let y = &mut x;
|
LL | let y = &mut x;
|
||||||
| ------ first mutable borrow occurs here
|
| ------ first mutable borrow occurs here
|
||||||
|
@ -21,7 +21,7 @@ LL | *y = 1;
|
||||||
| ------ first borrow later used here
|
| ------ first borrow later used here
|
||||||
|
|
||||||
error: captured variable cannot escape `FnMut` closure body
|
error: captured variable cannot escape `FnMut` closure body
|
||||||
--> $DIR/borrowck-describe-lvalue.rs:305:16
|
--> $DIR/borrowck-describe-lvalue.rs:304:16
|
||||||
|
|
|
|
||||||
LL | || {
|
LL | || {
|
||||||
| - inferred to be a `FnMut` closure
|
| - inferred to be a `FnMut` closure
|
||||||
|
@ -368,7 +368,7 @@ LL | drop(x);
|
||||||
= warning: this represents potential undefined behavior in your code and this warning will become a hard error in the future
|
= warning: this represents potential undefined behavior in your code and this warning will become a hard error in the future
|
||||||
|
|
||||||
error[E0382]: use of moved value: `x`
|
error[E0382]: use of moved value: `x`
|
||||||
--> $DIR/borrowck-describe-lvalue.rs:318:22
|
--> $DIR/borrowck-describe-lvalue.rs:317:22
|
||||||
|
|
|
|
||||||
LL | drop(x);
|
LL | drop(x);
|
||||||
| - value moved here
|
| - value moved here
|
||||||
|
|
|
@ -220,7 +220,7 @@ LL | };
|
||||||
| - first borrow ends here
|
| - first borrow ends here
|
||||||
|
|
||||||
error[E0499]: cannot borrow `**x` as mutable more than once at a time
|
error[E0499]: cannot borrow `**x` as mutable more than once at a time
|
||||||
--> $DIR/borrowck-describe-lvalue.rs:307:25
|
--> $DIR/borrowck-describe-lvalue.rs:306:25
|
||||||
|
|
|
|
||||||
LL | let y = &mut x;
|
LL | let y = &mut x;
|
||||||
| - first mutable borrow occurs here
|
| - first mutable borrow occurs here
|
||||||
|
@ -231,7 +231,7 @@ LL | }
|
||||||
| - first borrow ends here
|
| - first borrow ends here
|
||||||
|
|
||||||
error[E0382]: use of moved value: `x`
|
error[E0382]: use of moved value: `x`
|
||||||
--> $DIR/borrowck-describe-lvalue.rs:318:22
|
--> $DIR/borrowck-describe-lvalue.rs:317:22
|
||||||
|
|
|
|
||||||
LL | drop(x);
|
LL | drop(x);
|
||||||
| - value moved here
|
| - value moved here
|
||||||
|
|
|
@ -10,7 +10,7 @@ LL | *y = 1;
|
||||||
| ------ first borrow later used here
|
| ------ first borrow later used here
|
||||||
|
|
||||||
error[E0499]: cannot borrow `x` as mutable more than once at a time
|
error[E0499]: cannot borrow `x` as mutable more than once at a time
|
||||||
--> $DIR/borrowck-describe-lvalue.rs:307:20
|
--> $DIR/borrowck-describe-lvalue.rs:306:20
|
||||||
|
|
|
|
||||||
LL | let y = &mut x;
|
LL | let y = &mut x;
|
||||||
| ------ first mutable borrow occurs here
|
| ------ first mutable borrow occurs here
|
||||||
|
@ -21,7 +21,7 @@ LL | *y = 1;
|
||||||
| ------ first borrow later used here
|
| ------ first borrow later used here
|
||||||
|
|
||||||
error: captured variable cannot escape `FnMut` closure body
|
error: captured variable cannot escape `FnMut` closure body
|
||||||
--> $DIR/borrowck-describe-lvalue.rs:305:16
|
--> $DIR/borrowck-describe-lvalue.rs:304:16
|
||||||
|
|
|
|
||||||
LL | || {
|
LL | || {
|
||||||
| - inferred to be a `FnMut` closure
|
| - inferred to be a `FnMut` closure
|
||||||
|
@ -362,7 +362,7 @@ LL | drop(x);
|
||||||
| - mutable borrow later used here
|
| - mutable borrow later used here
|
||||||
|
|
||||||
error[E0382]: use of moved value: `x`
|
error[E0382]: use of moved value: `x`
|
||||||
--> $DIR/borrowck-describe-lvalue.rs:318:22
|
--> $DIR/borrowck-describe-lvalue.rs:317:22
|
||||||
|
|
|
|
||||||
LL | drop(x);
|
LL | drop(x);
|
||||||
| - value moved here
|
| - value moved here
|
||||||
|
|
|
@ -299,7 +299,6 @@ fn main() {
|
||||||
}
|
}
|
||||||
// Field from upvar nested
|
// Field from upvar nested
|
||||||
{
|
{
|
||||||
// FIXME(#49824) -- the free region error below should probably not be there
|
|
||||||
let mut x = 0;
|
let mut x = 0;
|
||||||
|| {
|
|| {
|
||||||
|| { //[mir]~ ERROR captured variable cannot escape `FnMut` closure body
|
|| { //[mir]~ ERROR captured variable cannot escape `FnMut` closure body
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
error[E0716]: temporary value dropped while borrowed
|
error[E0716]: temporary value dropped while borrowed
|
||||||
--> $DIR/issue-36082.rs:23:19
|
--> $DIR/issue-36082.rs:21:19
|
||||||
|
|
|
|
||||||
LL | let val: &_ = x.borrow().0;
|
LL | let val: &_ = x.borrow().0;
|
||||||
| ^^^^^^^^^^ - temporary value is freed at the end of this statement
|
| ^^^^^^^^^^ - temporary value is freed at the end of this statement
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
error[E0597]: borrowed value does not live long enough
|
error[E0597]: borrowed value does not live long enough
|
||||||
--> $DIR/issue-36082.rs:23:19
|
--> $DIR/issue-36082.rs:21:19
|
||||||
|
|
|
|
||||||
LL | let val: &_ = x.borrow().0;
|
LL | let val: &_ = x.borrow().0;
|
||||||
| ^^^^^^^^^^ - temporary value dropped here while still borrowed
|
| ^^^^^^^^^^ - temporary value dropped here while still borrowed
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
error[E0716]: temporary value dropped while borrowed
|
error[E0716]: temporary value dropped while borrowed
|
||||||
--> $DIR/issue-36082.rs:23:19
|
--> $DIR/issue-36082.rs:21:19
|
||||||
|
|
|
|
||||||
LL | let val: &_ = x.borrow().0;
|
LL | let val: &_ = x.borrow().0;
|
||||||
| ^^^^^^^^^^ - temporary value is freed at the end of this statement
|
| ^^^^^^^^^^ - temporary value is freed at the end of this statement
|
||||||
|
|
|
@ -11,8 +11,6 @@
|
||||||
// revisions: ast mir
|
// revisions: ast mir
|
||||||
//[mir]compile-flags: -Z borrowck=mir
|
//[mir]compile-flags: -Z borrowck=mir
|
||||||
|
|
||||||
// FIXME(#49821) -- No tip about using a let binding
|
|
||||||
|
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
|
|
@ -12,9 +12,6 @@
|
||||||
// approximate the shorter end-point (`'y`) to with `'static`. This is
|
// approximate the shorter end-point (`'y`) to with `'static`. This is
|
||||||
// because `'y` is higher-ranked but we know of no relations to other
|
// because `'y` is higher-ranked but we know of no relations to other
|
||||||
// regions. Note that `'static` shows up in the stderr output as `'0`.
|
// regions. Note that `'static` shows up in the stderr output as `'0`.
|
||||||
//
|
|
||||||
// FIXME(#45827) Because of shortcomings in the MIR type checker,
|
|
||||||
// these errors are not (yet) reported.
|
|
||||||
|
|
||||||
// compile-flags:-Zborrowck=mir -Zverbose
|
// compile-flags:-Zborrowck=mir -Zverbose
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
note: External requirements
|
note: External requirements
|
||||||
--> $DIR/propagate-approximated-shorter-to-static-no-bound.rs:45:47
|
--> $DIR/propagate-approximated-shorter-to-static-no-bound.rs:42:47
|
||||||
|
|
|
|
||||||
LL | establish_relationships(&cell_a, &cell_b, |_outlives, x, y| {
|
LL | establish_relationships(&cell_a, &cell_b, |_outlives, x, y| {
|
||||||
| _______________________________________________^
|
| _______________________________________________^
|
||||||
|
@ -20,7 +20,7 @@ LL | | });
|
||||||
= note: where '_#1r: '_#0r
|
= note: where '_#1r: '_#0r
|
||||||
|
|
||||||
note: No external requirements
|
note: No external requirements
|
||||||
--> $DIR/propagate-approximated-shorter-to-static-no-bound.rs:44:1
|
--> $DIR/propagate-approximated-shorter-to-static-no-bound.rs:41:1
|
||||||
|
|
|
|
||||||
LL | / fn supply<'a, 'b>(cell_a: Cell<&'a u32>, cell_b: Cell<&'b u32>) {
|
LL | / fn supply<'a, 'b>(cell_a: Cell<&'a u32>, cell_b: Cell<&'b u32>) {
|
||||||
LL | | establish_relationships(&cell_a, &cell_b, |_outlives, x, y| {
|
LL | | establish_relationships(&cell_a, &cell_b, |_outlives, x, y| {
|
||||||
|
@ -34,7 +34,7 @@ LL | | }
|
||||||
= note: defining type: DefId(0/0:6 ~ propagate_approximated_shorter_to_static_no_bound[317d]::supply[0]) with substs []
|
= note: defining type: DefId(0/0:6 ~ propagate_approximated_shorter_to_static_no_bound[317d]::supply[0]) with substs []
|
||||||
|
|
||||||
error[E0521]: borrowed data escapes outside of function
|
error[E0521]: borrowed data escapes outside of function
|
||||||
--> $DIR/propagate-approximated-shorter-to-static-no-bound.rs:45:5
|
--> $DIR/propagate-approximated-shorter-to-static-no-bound.rs:42:5
|
||||||
|
|
|
|
||||||
LL | fn supply<'a, 'b>(cell_a: Cell<&'a u32>, cell_b: Cell<&'b u32>) {
|
LL | fn supply<'a, 'b>(cell_a: Cell<&'a u32>, cell_b: Cell<&'b u32>) {
|
||||||
| ------ `cell_a` is a reference that is only valid in the function body
|
| ------ `cell_a` is a reference that is only valid in the function body
|
||||||
|
|
|
@ -13,9 +13,6 @@
|
||||||
// because `'y` is higher-ranked but we know of only irrelevant
|
// because `'y` is higher-ranked but we know of only irrelevant
|
||||||
// relations to other regions. Note that `'static` shows up in the
|
// relations to other regions. Note that `'static` shows up in the
|
||||||
// stderr output as `'0`.
|
// stderr output as `'0`.
|
||||||
//
|
|
||||||
// FIXME(#45827) Because of shortcomings in the MIR type checker,
|
|
||||||
// these errors are not (yet) reported.
|
|
||||||
|
|
||||||
// compile-flags:-Zborrowck=mir -Zverbose
|
// compile-flags:-Zborrowck=mir -Zverbose
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
note: External requirements
|
note: External requirements
|
||||||
--> $DIR/propagate-approximated-shorter-to-static-wrong-bound.rs:48:47
|
--> $DIR/propagate-approximated-shorter-to-static-wrong-bound.rs:45:47
|
||||||
|
|
|
|
||||||
LL | establish_relationships(&cell_a, &cell_b, |_outlives1, _outlives2, x, y| {
|
LL | establish_relationships(&cell_a, &cell_b, |_outlives1, _outlives2, x, y| {
|
||||||
| _______________________________________________^
|
| _______________________________________________^
|
||||||
|
@ -20,7 +20,7 @@ LL | | });
|
||||||
= note: where '_#1r: '_#0r
|
= note: where '_#1r: '_#0r
|
||||||
|
|
||||||
note: No external requirements
|
note: No external requirements
|
||||||
--> $DIR/propagate-approximated-shorter-to-static-wrong-bound.rs:47:1
|
--> $DIR/propagate-approximated-shorter-to-static-wrong-bound.rs:44:1
|
||||||
|
|
|
|
||||||
LL | / fn supply<'a, 'b>(cell_a: Cell<&'a u32>, cell_b: Cell<&'b u32>) {
|
LL | / fn supply<'a, 'b>(cell_a: Cell<&'a u32>, cell_b: Cell<&'b u32>) {
|
||||||
LL | | establish_relationships(&cell_a, &cell_b, |_outlives1, _outlives2, x, y| {
|
LL | | establish_relationships(&cell_a, &cell_b, |_outlives1, _outlives2, x, y| {
|
||||||
|
@ -34,7 +34,7 @@ LL | | }
|
||||||
= note: defining type: DefId(0/0:6 ~ propagate_approximated_shorter_to_static_wrong_bound[317d]::supply[0]) with substs []
|
= note: defining type: DefId(0/0:6 ~ propagate_approximated_shorter_to_static_wrong_bound[317d]::supply[0]) with substs []
|
||||||
|
|
||||||
error[E0521]: borrowed data escapes outside of function
|
error[E0521]: borrowed data escapes outside of function
|
||||||
--> $DIR/propagate-approximated-shorter-to-static-wrong-bound.rs:48:5
|
--> $DIR/propagate-approximated-shorter-to-static-wrong-bound.rs:45:5
|
||||||
|
|
|
|
||||||
LL | fn supply<'a, 'b>(cell_a: Cell<&'a u32>, cell_b: Cell<&'b u32>) {
|
LL | fn supply<'a, 'b>(cell_a: Cell<&'a u32>, cell_b: Cell<&'b u32>) {
|
||||||
| ------ `cell_a` is a reference that is only valid in the function body
|
| ------ `cell_a` is a reference that is only valid in the function body
|
||||||
|
|
|
@ -27,7 +27,7 @@ use util::{logv, PathBufExt};
|
||||||
use std::collections::hash_map::DefaultHasher;
|
use std::collections::hash_map::DefaultHasher;
|
||||||
use std::collections::{HashMap, HashSet, VecDeque};
|
use std::collections::{HashMap, HashSet, VecDeque};
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::ffi::OsString;
|
use std::ffi::{OsStr, OsString};
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::fs::{self, create_dir_all, File};
|
use std::fs::{self, create_dir_all, File};
|
||||||
use std::hash::{Hash, Hasher};
|
use std::hash::{Hash, Hasher};
|
||||||
|
@ -763,13 +763,13 @@ impl<'test> TestCx<'test> {
|
||||||
}
|
}
|
||||||
drop(stdout);
|
drop(stdout);
|
||||||
|
|
||||||
let debugger_script = self.make_out_name("debugger.script");
|
let mut debugger_script = OsString::from("-command=");
|
||||||
// FIXME (#9639): This needs to handle non-utf8 paths
|
debugger_script.push(self.make_out_name("debugger.script"));
|
||||||
let debugger_opts = vec![
|
let debugger_opts: &[&OsStr] = &[
|
||||||
"-quiet".to_owned(),
|
"-quiet".as_ref(),
|
||||||
"-batch".to_owned(),
|
"-batch".as_ref(),
|
||||||
"-nx".to_owned(),
|
"-nx".as_ref(),
|
||||||
format!("-command={}", debugger_script.to_str().unwrap()),
|
&debugger_script,
|
||||||
];
|
];
|
||||||
|
|
||||||
let gdb_path = self.config.gdb.as_ref().unwrap();
|
let gdb_path = self.config.gdb.as_ref().unwrap();
|
||||||
|
@ -778,12 +778,12 @@ impl<'test> TestCx<'test> {
|
||||||
stdout,
|
stdout,
|
||||||
stderr,
|
stderr,
|
||||||
} = Command::new(&gdb_path)
|
} = Command::new(&gdb_path)
|
||||||
.args(&debugger_opts)
|
.args(debugger_opts)
|
||||||
.output()
|
.output()
|
||||||
.expect(&format!("failed to exec `{:?}`", gdb_path));
|
.expect(&format!("failed to exec `{:?}`", gdb_path));
|
||||||
let cmdline = {
|
let cmdline = {
|
||||||
let mut gdb = Command::new(&format!("{}-gdb", self.config.target));
|
let mut gdb = Command::new(&format!("{}-gdb", self.config.target));
|
||||||
gdb.args(&debugger_opts);
|
gdb.args(debugger_opts);
|
||||||
let cmdline = self.make_cmdline(&gdb, "");
|
let cmdline = self.make_cmdline(&gdb, "");
|
||||||
logv(self.config, format!("executing {}", cmdline));
|
logv(self.config, format!("executing {}", cmdline));
|
||||||
cmdline
|
cmdline
|
||||||
|
@ -871,18 +871,18 @@ impl<'test> TestCx<'test> {
|
||||||
debug!("script_str = {}", script_str);
|
debug!("script_str = {}", script_str);
|
||||||
self.dump_output_file(&script_str, "debugger.script");
|
self.dump_output_file(&script_str, "debugger.script");
|
||||||
|
|
||||||
let debugger_script = self.make_out_name("debugger.script");
|
let mut debugger_script = OsString::from("-command=");
|
||||||
|
debugger_script.push(self.make_out_name("debugger.script"));
|
||||||
|
|
||||||
// FIXME (#9639): This needs to handle non-utf8 paths
|
let debugger_opts: &[&OsStr] = &[
|
||||||
let debugger_opts = vec![
|
"-quiet".as_ref(),
|
||||||
"-quiet".to_owned(),
|
"-batch".as_ref(),
|
||||||
"-batch".to_owned(),
|
"-nx".as_ref(),
|
||||||
"-nx".to_owned(),
|
&debugger_script,
|
||||||
format!("-command={}", debugger_script.to_str().unwrap()),
|
|
||||||
];
|
];
|
||||||
|
|
||||||
let mut gdb = Command::new(self.config.gdb.as_ref().unwrap());
|
let mut gdb = Command::new(self.config.gdb.as_ref().unwrap());
|
||||||
gdb.args(&debugger_opts)
|
gdb.args(debugger_opts)
|
||||||
.env("PYTHONPATH", rust_pp_module_abs_path);
|
.env("PYTHONPATH", rust_pp_module_abs_path);
|
||||||
|
|
||||||
debugger_run_result = self.compose_and_run(
|
debugger_run_result = self.compose_and_run(
|
||||||
|
|
|
@ -58,7 +58,7 @@ const EXCEPTION_PATHS: &[&str] = &[
|
||||||
"src/rtstartup", // Not sure what to do about this. magic stuff for mingw
|
"src/rtstartup", // Not sure what to do about this. magic stuff for mingw
|
||||||
|
|
||||||
// temporary exceptions
|
// temporary exceptions
|
||||||
"src/libstd/lib.rs", // FIXME(#44217)
|
"src/libstd/lib.rs",
|
||||||
"src/libstd/path.rs",
|
"src/libstd/path.rs",
|
||||||
"src/libstd/f32.rs",
|
"src/libstd/f32.rs",
|
||||||
"src/libstd/f64.rs",
|
"src/libstd/f64.rs",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue