Skip to content
This repository was archived by the owner on May 23, 2024. It is now read-only.

Commit 98d7d79

Browse files
committed
1 parent 906e616 commit 98d7d79

File tree

4 files changed

+88
-0
lines changed

4 files changed

+88
-0
lines changed

ices/97099-1.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
pub trait Trait<'a> {
2+
type Assoc;
3+
}
4+
5+
struct Struct;
6+
impl<'a> Trait<'a> for Struct {
7+
type Assoc = &'a u32;
8+
}
9+
10+
fn blah() -> impl for<'a> Trait<'a, Assoc = impl Sized> {
11+
Struct
12+
}

ices/97099-2.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
trait Trait<E> {
2+
type Assoc;
3+
}
4+
5+
struct Foo;
6+
7+
impl<'a> Trait<&'a ()> for Foo {
8+
type Assoc = ();
9+
}
10+
11+
fn foo() -> impl for<'a> Trait<&'a ()> {
12+
Foo
13+
}
14+
15+
fn bar() -> impl for<'a> Trait<&'a (), Assoc = impl Sized> {
16+
foo()
17+
}

ices/98476-1.sh

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/bin/bash
2+
3+
rustc --edition=2021 -Zdrop-tracking - <<'EOF'
4+
5+
fn main() {
6+
let _ = foo();
7+
}
8+
9+
async fn from_config(_: Config) {}
10+
11+
async fn foo() {
12+
from_config(Config {
13+
nickname: None,
14+
..Default::default()
15+
})
16+
.await;
17+
}
18+
19+
#[derive(Default)]
20+
struct Config {
21+
nickname: Option<Box<u8>>,
22+
}
23+
24+
EOF
25+

ices/98476-2.sh

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#!/bin/bash
2+
3+
rustc --edition=2021 -Zdrop-tracking - <<'EOF'
4+
5+
fn main() {
6+
let _ = foo();
7+
}
8+
9+
async fn from_config(x: Config) {
10+
async {}.await;
11+
drop(x);
12+
}
13+
14+
async fn foo() {
15+
from_config(Config {
16+
nickname: NonCopy,
17+
..Default::default()
18+
})
19+
.await;
20+
}
21+
22+
#[derive(Default)]
23+
struct NonCopy;
24+
impl Drop for NonCopy {
25+
fn drop(&mut self) {}
26+
}
27+
28+
#[derive(Default)]
29+
struct Config {
30+
nickname: NonCopy,
31+
}
32+
33+
EOF
34+

0 commit comments

Comments
 (0)