1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
class Bar<G> {
public G g;
public Bar (G g) {
this.g = g;
assert (g == "bar");
}
}
void bar<G> (Bar<G> g) {
var t = (owned) g.g;
assert (g.g == null);
assert (t == "bar");
}
void foo<G> (owned G g) {
var t = (owned) g;
assert (g == null);
assert (t == "foo");
}
void main () {
{
foo<string> ("foo");
}
{
bar<string> (new Bar<string> ("bar"));
}
{
var bar = new Bar<string> ("bar");
var t = (owned) bar.g;
assert (bar.g == null);
assert (t == "bar");
}
}
|