summaryrefslogtreecommitdiffstats
path: root/src/test/ui/associated-types/issue-65774-1.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/associated-types/issue-65774-1.rs')
-rw-r--r--src/test/ui/associated-types/issue-65774-1.rs58
1 files changed, 0 insertions, 58 deletions
diff --git a/src/test/ui/associated-types/issue-65774-1.rs b/src/test/ui/associated-types/issue-65774-1.rs
deleted file mode 100644
index 934514055..000000000
--- a/src/test/ui/associated-types/issue-65774-1.rs
+++ /dev/null
@@ -1,58 +0,0 @@
-#![feature(associated_type_defaults)]
-
-trait MyDisplay { fn method(&self) { } }
-
-impl<'a, T: MyDisplay> MyDisplay for &'a mut T { }
-
-struct T;
-
-trait MPU {
- type MpuConfig: MyDisplay = T;
- //~^ ERROR the trait bound `T: MyDisplay` is not satisfied
-}
-
-struct S;
-
-impl MPU for S { }
-
-trait MyWrite {
- fn my_write(&self, _: &dyn MyDisplay) { }
-}
-
-trait ProcessType {
- fn process_detail_fmt(&self, _: &mut dyn MyWrite);
-}
-
-struct Process;
-
-impl ProcessType for Process {
- fn process_detail_fmt(&self, writer: &mut dyn MyWrite)
- {
-
- let mut val: Option<<S as MPU>::MpuConfig> = None;
- let valref: &mut <S as MPU>::MpuConfig = val.as_mut().unwrap();
-
- // // This causes a different ICE (but its similar if you squint right):
- // //
- // // `Unimplemented` selecting `Binder(<T as MyDisplay>)` during codegen
- //
- // writer.my_write(valref)
-
- // This one causes the ICE:
- // FulfillmentError(Obligation(predicate=Binder(TraitPredicate(<T as MyDisplay>)),
- // depth=1),Unimplemented)
- let closure = |config: &mut <S as MPU>::MpuConfig| writer.my_write(&config);
- //~^ ERROR the trait bound `T: MyDisplay` is not satisfied
- closure(valref);
- }
-}
-
-fn create() -> &'static dyn ProcessType {
- let input: Option<&mut Process> = None;
- let process: &mut Process = input.unwrap();
- process
-}
-
-pub fn main() {
- create();
-}