Skip to content

Commit

Permalink
Add regression tests for #101903
Browse files Browse the repository at this point in the history
  • Loading branch information
ShoyuVanilla committed Mar 23, 2024
1 parent c3b05c6 commit c31b217
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
//@ check-pass

#![feature(type_alias_impl_trait)]
#![allow(dead_code)]

trait Duh {}

impl Duh for i32 {}

trait Trait {
type Assoc: Duh;
}

impl<R: Duh, F: FnMut() -> R> Trait for F {
type Assoc = R;
}

type Sendable = impl Send + Duh;

type Foo = impl Trait<Assoc = Sendable>;

fn foo() -> Foo {
|| 42
}

fn main() {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
//@ check-pass

// See https://doc.rust-lang.org/1.77.0/nightly-rustc/rustc_lint/opaque_hidden_inferred_bound/static.OPAQUE_HIDDEN_INFERRED_BOUND.html#example

#![feature(type_alias_impl_trait)]
#![allow(dead_code)]

trait Duh {}

impl Duh for i32 {}

trait Trait {
type Assoc: Duh;
}

impl<R: Duh, F: FnMut() -> R> Trait for F {
type Assoc = R;
}

type Sendable = impl Send;

type Foo = impl Trait<Assoc = Sendable>;
//~^ WARNING opaque type `Foo` does not satisfy its associated type bounds

fn foo() -> Foo {
|| 42
}

fn main() {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
warning: opaque type `Foo` does not satisfy its associated type bounds
--> $DIR/tait-in-function-return-type-issue-101903.rs:22:23
|
LL | type Assoc: Duh;
| --- this associated type bound is unsatisfied for `Sendable`
...
LL | type Foo = impl Trait<Assoc = Sendable>;
| ^^^^^^^^^^^^^^^^
|
= note: `#[warn(opaque_hidden_inferred_bound)]` on by default

warning: 1 warning emitted

0 comments on commit c31b217

Please sign in to comment.