File tree Expand file tree Collapse file tree 3 files changed +30
-6
lines changed Expand file tree Collapse file tree 3 files changed +30
-6
lines changed Original file line number Diff line number Diff line change @@ -29,7 +29,7 @@ refs/tags/0.12.0: f0c419429ef30723ceaf6b42f9b5a2aeb5d2e2d1
29
29
refs/heads/issue-18208-method-dispatch-2: 9e1eae4fb9b6527315b4441cf8a0f5ca911d1671
30
30
refs/heads/automation-fail: 1bf06495443584539b958873e04cc2f864ab10e4
31
31
refs/heads/issue-18208-method-dispatch-3-quick-reject: 2009f85b9f99dedcec4404418eda9ddba90258a2
32
- refs/heads/batch: c8868942e845254abfd3623a709847d65e015a2f
32
+ refs/heads/batch: 540a7777b8ba53950d340ee9537ede1b3fb0b24d
33
33
refs/heads/building: 126db549b038c84269a1e4fe46f051b2c15d6970
34
34
refs/heads/beta: 496dc4eae7de9d14cd49511a9acfbf5f11ae6c3f
35
35
refs/heads/windistfix: 7608dbad651f02e837ed05eef3d74a6662a6e928
Original file line number Diff line number Diff line change @@ -643,11 +643,12 @@ fn confirm_candidate<'cx,'tcx>(
643
643
match impl_ty {
644
644
Some ( ty) => ( ty, impl_vtable. nested . to_vec ( ) ) ,
645
645
None => {
646
- selcx. tcx ( ) . sess . span_bug (
647
- obligation. cause . span ,
648
- format ! ( "impl `{}` did not contain projection for `{}`" ,
649
- impl_vtable. repr( selcx. tcx( ) ) ,
650
- obligation. repr( selcx. tcx( ) ) ) . as_slice ( ) ) ;
646
+ // This means that the impl is missing a
647
+ // definition for the associated type. This error
648
+ // ought to be reported by the type checker method
649
+ // `check_impl_items_against_trait`, so here we
650
+ // just return ty_err.
651
+ ( selcx. tcx ( ) . types . err , vec ! ( ) )
651
652
}
652
653
}
653
654
}
Original file line number Diff line number Diff line change
1
+ // Copyright 2014 The Rust Project Developers. See the COPYRIGHT
2
+ // file at the top-level directory of this distribution and at
3
+ // http://rust-lang.org/COPYRIGHT.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6
+ // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7
+ // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8
+ // option. This file may not be copied, modified, or distributed
9
+ // except according to those terms.
10
+
11
+ // Test that we do not ICE when an impl is missing an associated type (and that we report
12
+ // a useful error, of course).
13
+
14
+ #![ feature( associated_types) ]
15
+
16
+ trait Trait {
17
+ type Type ;
18
+ }
19
+
20
+ impl Trait for int { } //~ ERROR missing: `Type`
21
+
22
+ fn main ( ) { }
23
+
You can’t perform that action at this time.
0 commit comments