diff options
Diffstat (limited to 'src/test/ui/traits/issue-84399-bad-fresh-caching.rs')
| -rw-r--r-- | src/test/ui/traits/issue-84399-bad-fresh-caching.rs | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/src/test/ui/traits/issue-84399-bad-fresh-caching.rs b/src/test/ui/traits/issue-84399-bad-fresh-caching.rs deleted file mode 100644 index 1494001564f..00000000000 --- a/src/test/ui/traits/issue-84399-bad-fresh-caching.rs +++ /dev/null @@ -1,55 +0,0 @@ -// compile-flags: --crate-type lib -// check-pass -// -// Regression test for issue #84399 -// Tests that we keep the full `ParamEnv` when -// caching predicates with freshened types in the global cache - -use std::marker::PhantomData; -pub trait Allocator<R> { - type Buffer; -} -pub struct DefaultAllocator; -impl <R> Allocator<R> for DefaultAllocator { - type Buffer = (); -} -pub type Owned<R> = <DefaultAllocator as Allocator<R>>::Buffer; -pub type MatrixMN<R> = Matrix<R, Owned<R>>; -pub type Matrix4<N> = Matrix<N, ()>; -pub struct Matrix<R, S> { - pub data: S, - _phantoms: PhantomData<R>, -} -pub fn set_object_transform(matrix: &Matrix4<()>) { - matrix.js_buffer_view(); -} -pub trait Storable { - type Cell; - fn slice_to_items(_buffer: &()) -> &[Self::Cell] { - unimplemented!() - } -} -pub type Cell<T> = <T as Storable>::Cell; -impl<R> Storable for MatrixMN<R> -where - DefaultAllocator: Allocator<R>, -{ - type Cell = (); -} -pub trait JsBufferView { - fn js_buffer_view(&self) -> usize { - unimplemented!() - } -} -impl<R> JsBufferView for [MatrixMN<R>] -where - DefaultAllocator: Allocator<R>, - MatrixMN<R>: Storable, - [Cell<MatrixMN<R>>]: JsBufferView, -{ - fn js_buffer_view(&self) -> usize { - <MatrixMN<R> as Storable>::slice_to_items(&()).js_buffer_view() - } -} -impl JsBufferView for [()] {} -impl<R> JsBufferView for MatrixMN<R> where DefaultAllocator: Allocator<R> {} |
