class Foo {
Foo operator >>(_) => this;
}

main() {
Foo foo = new Foo();
foo >> 42;
print(foo >> 42);
print(foo >>= 42);
if ((foo >>= 42) == foo) {
print("same");
}
}


class[KeywordToken] Foo[StringToken] {[BeginToken]
Foo[StringToken] operator[KeywordToken] >>[SimpleToken]([BeginToken]_[StringToken])[SimpleToken] =>[SimpleToken] this[KeywordToken];[SimpleToken]
}[SimpleToken]

main[StringToken]([BeginToken])[SimpleToken] {[BeginToken]
Foo[StringToken] foo[StringToken] =[SimpleToken] new[KeywordToken] Foo[StringToken]([BeginToken])[SimpleToken];[SimpleToken]
foo[StringToken] >>[SimpleToken] 42[StringToken];[SimpleToken]
print[StringToken]([BeginToken]foo[StringToken] >>[SimpleToken] 42[StringToken])[SimpleToken];[SimpleToken]
print[StringToken]([BeginToken]foo[StringToken] >>=[SimpleToken] 42[StringToken])[SimpleToken];[SimpleToken]
if[KeywordToken] ([BeginToken]([BeginToken]foo[StringToken] >>=[SimpleToken] 42[StringToken])[SimpleToken] ==[SimpleToken] foo[StringToken])[SimpleToken] {[BeginToken]
print[StringToken]([BeginToken]"same"[StringToken])[SimpleToken];[SimpleToken]
}[SimpleToken]
}[SimpleToken]
[SimpleToken]
