rust/src/librustc/middle
Aaron Turon 21df87f515 Forbid items with the same name being defined in overlapping inherent
impl blocks.

For example, the following is now correctly illegal:

```rust
struct Foo;

impl Foo {
    fn id() {}
}

impl Foo {
    fn id() {}
}
```

"Overlapping" here is determined the same way it is for traits (and in
fact shares the same code path): roughly, there must be some way of
substituting any generic types to unify the impls, such that none of the
`where` clauses are provably unsatisfiable under such a unification.

Closes #22889
2016-03-11 10:59:39 -08:00
..
cfg Auto merge of #30884 - durka:inclusive-ranges, r=aturon 2016-03-06 07:16:41 +00:00
infer Forbid items with the same name being defined in overlapping inherent 2016-03-11 10:59:39 -08:00
traits Forbid items with the same name being defined in overlapping inherent 2016-03-11 10:59:39 -08:00
ty Forbid items with the same name being defined in overlapping inherent 2016-03-11 10:59:39 -08:00
astconv_util.rs Rename middle::ty::ctxt to TyCtxt 2016-03-03 07:37:56 +00:00
check_match.rs Auto merge of #31954 - japaric:rfc243, r=nikomatsakis 2016-03-08 01:31:04 -08:00
const_eval.rs Rename middle::ty::ctxt to TyCtxt 2016-03-03 07:37:56 +00:00
const_qualif.rs move more checks out of librustc 2016-01-21 10:52:37 +01:00
cstore.rs Add method visibility to CrateStore 2016-03-06 05:37:30 +00:00
dataflow.rs Rename middle::ty::ctxt to TyCtxt 2016-03-03 07:37:56 +00:00
dead.rs Rename middle::ty::ctxt to TyCtxt 2016-03-03 07:37:56 +00:00
def.rs Remove LastPrivate 2016-02-26 00:37:27 +00:00
def_id.rs split the metadata code into rustc_metadata 2015-11-26 18:22:40 +02:00
dependency_format.rs use structured errors 2015-12-30 14:27:59 +13:00
effect.rs Track fn type and lifetime parameters in TyFnDef. 2016-03-09 16:45:28 +02:00
entry.rs Instrument a bunch of tasks that employ the HIR map in one way or 2016-02-05 13:19:55 -05:00
expr_use_visitor.rs Split TyBareFn into TyFnDef and TyFnPtr. 2016-03-09 16:45:28 +02:00
free_region.rs Rename middle::ty::ctxt to TyCtxt 2016-03-03 07:37:56 +00:00
intrinsicck.rs Track fn type and lifetime parameters in TyFnDef. 2016-03-09 16:45:28 +02:00
lang_items.rs Auto merge of #31957 - GuillaumeGomez:error_display, r=brson 2016-03-08 03:31:30 -08:00
liveness.rs Auto merge of #32048 - bluss:overloaded-assign-op, r=eddyb 2016-03-06 15:10:44 +00:00
mem_categorization.rs Auto merge of #31606 - Ms2ger:ClosureKind, r=eddyb 2016-03-07 22:57:38 -08:00
pat_util.rs Rename middle::ty::ctxt to TyCtxt 2016-03-03 07:37:56 +00:00
privacy.rs Remove LastPrivate 2016-02-26 00:37:27 +00:00
reachable.rs Rename middle::ty::ctxt to TyCtxt 2016-03-03 07:37:56 +00:00
recursion_limit.rs for x in xs.iter() -> for x in &xs 2015-02-02 13:40:18 -05:00
region.rs Split PatKind::Enum into PatKind::TupleStruct and PatKind::Path 2016-02-16 00:40:38 +03:00
resolve_lifetime.rs Autoderef in librustc 2016-02-12 19:28:42 +01:00
stability.rs Rename middle::ty::ctxt to TyCtxt 2016-03-03 07:37:56 +00:00
subst.rs trans: Reify functions & methods to fn ptrs only where necessary. 2016-03-09 16:45:28 +02:00
weak_lang_items.rs Add E0264 error explanation 2015-12-07 15:56:36 +01:00