diff options
| author | bors <bors@rust-lang.org> | 2022-01-15 10:57:03 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-01-15 10:57:03 +0000 |
| commit | b13a5bf3c4d66ce375f5978c2c2233f9714b721e (patch) | |
| tree | ff0a003ba0175b321403bff0885636893e33b818 /src/test | |
| parent | 38c22af0153cf8f920c01ef04493e8878401fd18 (diff) | |
| parent | 539175c026c70e32150ca8c5ed2e0bacd3bb12e6 (diff) | |
Auto merge of #92927 - matthiaskrgr:rollup-pgzwfcm, r=matthiaskrgr
Rollup of 8 pull requests Successful merges: - #92747 (Simplification of BigNum::bit_length) - #92767 (Use the new language identifier for Rust in the PDB debug format) - #92775 (Inline std::os::unix::ffi::OsStringExt methods) - #92863 (Remove `&mut` from `io::read_to_string` signature) - #92865 (Ignore static lifetimes for GATs outlives lint) - #92873 (Generate more precise generator names) - #92879 (Add Sync bound to allocator parameter in vec::IntoIter) - #92892 (Do not fail evaluation in const blocks) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/codegen/async-fn-debug-msvc.rs | 2 | ||||
| -rw-r--r-- | src/test/codegen/async-fn-debug.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/consts/const-block-const-bound.rs | 17 | ||||
| -rw-r--r-- | src/test/ui/consts/const-block-const-bound.stderr | 21 | ||||
| -rw-r--r-- | src/test/ui/generic-associated-types/self-outlives-lint.rs | 13 |
5 files changed, 53 insertions, 2 deletions
diff --git a/src/test/codegen/async-fn-debug-msvc.rs b/src/test/codegen/async-fn-debug-msvc.rs index 0c16b9ad3ab..bb0db9d3d85 100644 --- a/src/test/codegen/async-fn-debug-msvc.rs +++ b/src/test/codegen/async-fn-debug-msvc.rs @@ -17,7 +17,7 @@ async fn async_fn_test() { // FIXME: No way to reliably check the filename. // CHECK-DAG: [[ASYNC_FN:!.*]] = !DINamespace(name: "async_fn_test" -// CHECK-DAG: [[GEN:!.*]] = !DICompositeType(tag: DW_TAG_union_type, name: "generator$0" +// CHECK-DAG: [[GEN:!.*]] = !DICompositeType(tag: DW_TAG_union_type, name: "async_fn$0" // CHECK: {{!.*}} = !DIDerivedType(tag: DW_TAG_member, name: "variant0", scope: [[GEN]], // For brevity, we only check the struct name and members of the last variant. // CHECK-SAME: file: [[FILE:![0-9]*]], line: 11, diff --git a/src/test/codegen/async-fn-debug.rs b/src/test/codegen/async-fn-debug.rs index 39319a3ea72..f456f7ffc0f 100644 --- a/src/test/codegen/async-fn-debug.rs +++ b/src/test/codegen/async-fn-debug.rs @@ -17,7 +17,7 @@ async fn async_fn_test() { // FIXME: No way to reliably check the filename. // CHECK-DAG: [[ASYNC_FN:!.*]] = !DINamespace(name: "async_fn_test" -// CHECK-DAG: [[GEN:!.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "{generator#0}", scope: [[ASYNC_FN]] +// CHECK-DAG: [[GEN:!.*]] = !DICompositeType(tag: DW_TAG_structure_type, name: "{async_fn#0}", scope: [[ASYNC_FN]] // CHECK: [[VARIANT:!.*]] = !DICompositeType(tag: DW_TAG_variant_part, scope: [[ASYNC_FN]], // CHECK-NOT: flags: DIFlagArtificial // CHECK-SAME: discriminator: [[DISC:![0-9]*]] diff --git a/src/test/ui/consts/const-block-const-bound.rs b/src/test/ui/consts/const-block-const-bound.rs new file mode 100644 index 00000000000..3bfc759a9ae --- /dev/null +++ b/src/test/ui/consts/const-block-const-bound.rs @@ -0,0 +1,17 @@ +#![allow(unused)] +#![feature(const_fn_trait_bound, const_trait_impl, inline_const)] + +const fn f<T: ~const Drop>(x: T) {} + +struct UnconstDrop; + +impl Drop for UnconstDrop { + fn drop(&mut self) {} +} + +fn main() { + const { + f(UnconstDrop); + //~^ ERROR the trait bound `UnconstDrop: Drop` is not satisfied + } +} diff --git a/src/test/ui/consts/const-block-const-bound.stderr b/src/test/ui/consts/const-block-const-bound.stderr new file mode 100644 index 00000000000..0e6e426e7c2 --- /dev/null +++ b/src/test/ui/consts/const-block-const-bound.stderr @@ -0,0 +1,21 @@ +error[E0277]: the trait bound `UnconstDrop: Drop` is not satisfied + --> $DIR/const-block-const-bound.rs:14:11 + | +LL | f(UnconstDrop); + | - ^^^^^^^^^^^ the trait `Drop` is not implemented for `UnconstDrop` + | | + | required by a bound introduced by this call + | +note: required by a bound in `f` + --> $DIR/const-block-const-bound.rs:4:15 + | +LL | const fn f<T: ~const Drop>(x: T) {} + | ^^^^^^^^^^^ required by this bound in `f` +help: consider introducing a `where` bound, but there might be an alternative better way to express this requirement + | +LL | fn main() where UnconstDrop: Drop { + | +++++++++++++++++++++++ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0277`. diff --git a/src/test/ui/generic-associated-types/self-outlives-lint.rs b/src/test/ui/generic-associated-types/self-outlives-lint.rs index 37b3a6155d5..fcc53b4ede0 100644 --- a/src/test/ui/generic-associated-types/self-outlives-lint.rs +++ b/src/test/ui/generic-associated-types/self-outlives-lint.rs @@ -189,4 +189,17 @@ trait Trait: 'static { fn make_assoc(_: &u32) -> Self::Assoc<'_>; } +// We ignore `'static` lifetimes for any lints +trait StaticReturn<'a> { + type Y<'b>; + fn foo(&self) -> Self::Y<'static>; +} + +// Same as above, but with extra method that takes GAT - just make sure this works +trait StaticReturnAndTakes<'a> { + type Y<'b>; + fn foo(&self) -> Self::Y<'static>; + fn bar<'b>(&self, arg: Self::Y<'b>); +} + fn main() {} |
