| abstract class Base {} | |
| class Foo extends Base {} | |
| class Bar extends Base {} | |
| class Baz extends Base {} | |
| void foo(x) { | |
| } | |
| void bar(x) { | |
| } | |
| void foo_escaped(x) { | |
| } | |
| void bar_escaped(x) { | |
| } | |
| void escape(fn) { | |
| fn(new Baz()); | |
| } | |
| main() { | |
| foo(new Foo()); | |
| bar(new Bar()); | |
| escape(foo_escaped); | |
| escape(bar_escaped); | |
| } |