| #![crate_name = "user"] | |
| //@ aux-crate:default_generic_args=default-generic-args.rs | |
| //@ edition:2021 | |
| //@ has user/type.BoxedStr.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "Box<str>" | |
| pub use default_generic_args::BoxedStr; | |
| //@ has user/type.IntMap.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "HashMap<i64, u64>" | |
| pub use default_generic_args::IntMap; | |
| //@ has user/type.T0.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "TyPair<i32>" | |
| pub use default_generic_args::T0; | |
| //@ has user/type.T1.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "TyPair<i32, u32>" | |
| pub use default_generic_args::T1; | |
| //@ has user/type.T2.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "TyPair<i32, K>" | |
| pub use default_generic_args::T2; | |
| //@ has user/type.T3.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "TyPair<Q>" | |
| pub use default_generic_args::T3; | |
| //@ has user/type.C0.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "CtPair<43>" | |
| pub use default_generic_args::C0; | |
| //@ has user/type.C1.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "CtPair<0, 1>" | |
| pub use default_generic_args::C1; | |
| //@ has user/type.C2.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "CtPair<default_generic_args::::C2::{constant#0}, 3>" | |
| pub use default_generic_args::C2; | |
| //@ has user/type.R0.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "Re<'q>" | |
| pub use default_generic_args::R0; | |
| //@ has user/type.R1.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "Re<'q>" | |
| pub use default_generic_args::R1; | |
| //@ has user/type.R2.html | |
| // Check that we consider regions: | |
| //@ has - '//*[@class="rust item-decl"]//code' "Re<'q, &'static ()>" | |
| pub use default_generic_args::R2; | |
| //@ has user/type.H0.html | |
| // Check that we handle higher-ranked regions correctly: | |
| //@ has - '//*[@class="rust item-decl"]//code' "fn(for<'a> fn(Re<'a>))" | |
| pub use default_generic_args::H0; | |
| //@ has user/type.H1.html | |
| // Check that we don't conflate distinct universially quantified regions (#1): | |
| //@ has - '//*[@class="rust item-decl"]//code' "for<'b> fn(for<'a> fn(Re<'a, &'b ()>))" | |
| pub use default_generic_args::H1; | |
| //@ has user/type.H2.html | |
| // Check that we don't conflate distinct universially quantified regions (#2): | |
| //@ has - '//*[@class="rust item-decl"]//code' "for<'a> fn(for<'b> fn(Re<'a, &'b ()>))" | |
| pub use default_generic_args::H2; | |
| //@ has user/type.P0.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "Proj<()>" | |
| pub use default_generic_args::P0; | |
| //@ has user/type.P1.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "Proj<(), bool>" | |
| pub use default_generic_args::P1; | |
| //@ has user/type.P2.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "Proj<(), ()>" | |
| pub use default_generic_args::P2; | |
| //@ has user/type.A0.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "Alpha;" | |
| pub use default_generic_args::A0; | |
| //@ has user/type.A1.html | |
| // Demonstrates that we currently don't elide generic arguments that are alpha-equivalent to their | |
| // respective generic parameter (after instantiation) for perf reasons (it would require us to | |
| // create an inference context). | |
| //@ has - '//*[@class="rust item-decl"]//code' "Alpha<for<'arbitrary> fn(&'arbitrary ())>" | |
| pub use default_generic_args::A1; | |
| //@ has user/type.M0.html | |
| // Test that we don't elide `u64` even if it coincides with `A`'s default precisely because | |
| // `()` is not the default of `B`. Mindlessly eliding `u64` would lead to `M<()>` which is a | |
| // different type (`M<(), u64>` versus `M<u64, ()>`). | |
| //@ has - '//*[@class="rust item-decl"]//code' "Multi<u64, ()>" | |
| pub use default_generic_args::M0; | |
| //@ has user/type.D0.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "dyn for<'a> Trait0<'a>" | |
| pub use default_generic_args::D0; | |
| // Regression test for issue #119529. | |
| // Check that we correctly elide def ty&const args inside trait object types. | |
| //@ has user/type.D1.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "dyn Trait1<T>" | |
| pub use default_generic_args::D1; | |
| //@ has user/type.D2.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "dyn Trait1<(), K>" | |
| pub use default_generic_args::D2; | |
| //@ has user/type.D3.html | |
| //@ has - '//*[@class="rust item-decl"]//code' "dyn Trait1;" | |
| pub use default_generic_args::D3; |