diff options
Diffstat (limited to 'src/test/incremental/issue-100521-change-struct-name-assocty.rs')
-rw-r--r-- | src/test/incremental/issue-100521-change-struct-name-assocty.rs | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/test/incremental/issue-100521-change-struct-name-assocty.rs b/src/test/incremental/issue-100521-change-struct-name-assocty.rs new file mode 100644 index 000000000..7f8d1e608 --- /dev/null +++ b/src/test/incremental/issue-100521-change-struct-name-assocty.rs @@ -0,0 +1,65 @@ +// revisions: rpass1 rpass2 + +pub fn foo() { + bar(); + baz::<()>(); +} + +fn bar() +where + <() as Table>::AllColumns:, +{ +} + +fn baz<W>() +where + W: AsQuery, + <W as AsQuery>::Query:, +{ +} + +trait AsQuery { + type Query; +} + +trait UnimplementedTrait {} + +impl<T> AsQuery for T +where + T: UnimplementedTrait, +{ + type Query = (); +} + +struct Wrapper<Expr>(Expr); + +impl<Ret> AsQuery for Wrapper<Ret> { + type Query = (); +} + +impl AsQuery for () +where + Wrapper<<() as Table>::AllColumns>: AsQuery, +{ + type Query = (); +} + +trait Table { + type AllColumns; +} + +#[cfg(rpass1)] +impl Table for () { + type AllColumns = Checksum1; +} +#[cfg(rpass1)] +struct Checksum1; + +#[cfg(rpass2)] +impl Table for () { + type AllColumns = Checksum2; +} +#[cfg(rpass2)] +struct Checksum2; + +fn main() {} |