mozilla/rust — pull request #8562 by bblum (2013-08-16 22:25:27+00:00)
Title: Superkinds

For #7083.

I am still debugging one issue with this, namely that I have busted metadata encoding of supertraits in library crates. The following program:
```
#[crate_type="lib"];

pub trait Bar : Freeze { }
```
...ICEs with ```node_id_to_trait_ref: no trait ref for node `trait Bar (id=1)` ```, presumably because I made a change that didn't insert builtin-kind-supertraits into the trait ref map earlier. So don't r+ this yet.

This is also not the full solution to #7083, because this is not supported yet:
```
trait Foo : Send { }

impl Foo for T { }

fn foo(val: T, chan: std::comm::Chan) {
chan.send(val);
}
```
cc @nikomatsakis