| main() { | 
 | dynamic foo = new X(); | 
 | var bar = foo.required; | 
 | required(); | 
 | bar(); | 
 | new X().required(); | 
 | new Y().required; | 
 | } | 
 |  | 
 | required() { | 
 | print("hello"); | 
 | } | 
 |  | 
 | class X { | 
 | required() { | 
 | print("hello"); | 
 | } | 
 | } | 
 |  | 
 | class Y { | 
 | int required = 42; | 
 | } | 
 |  | 
 |  | 
 | main[StringToken]([BeginToken])[SimpleToken] {[BeginToken] | 
 | dynamic[KeywordToken] foo[StringToken] =[SimpleToken] new[KeywordToken] X[StringToken]([BeginToken])[SimpleToken];[SimpleToken] | 
 | var[KeywordToken] bar[StringToken] =[SimpleToken] foo[StringToken].[SimpleToken]required[KeywordToken];[SimpleToken] | 
 | required[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken] | 
 | bar[StringToken]([BeginToken])[SimpleToken];[SimpleToken] | 
 | new[KeywordToken] X[StringToken]([BeginToken])[SimpleToken].[SimpleToken]required[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken] | 
 | new[KeywordToken] Y[StringToken]([BeginToken])[SimpleToken].[SimpleToken]required[KeywordToken];[SimpleToken] | 
 | }[SimpleToken] | 
 |  | 
 | required[KeywordToken]([BeginToken])[SimpleToken] {[BeginToken] | 
 | print[StringToken]([BeginToken]"hello"[StringToken])[SimpleToken];[SimpleToken] | 
 | }[SimpleToken] | 
 |  | 
 | class[KeywordToken] X[StringToken] {[BeginToken] | 
 | required[KeywordToken]([BeginToken])[SimpleToken] {[BeginToken] | 
 | print[StringToken]([BeginToken]"hello"[StringToken])[SimpleToken];[SimpleToken] | 
 | }[SimpleToken] | 
 | }[SimpleToken] | 
 |  | 
 | class[KeywordToken] Y[StringToken] {[BeginToken] | 
 | int[StringToken] required[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken] | 
 | }[SimpleToken] | 
 | [SimpleToken] |