| main() { | 
 | dynamic foo = new X(); | 
 | var bar = foo.late; | 
 | late(); | 
 | bar(); | 
 | new X().late(); | 
 | new Y().late; | 
 |  | 
 |  | 
 | late int foo; | 
 | foo = 42; | 
 | } | 
 |  | 
 | late() { | 
 | print("hello"); | 
 | } | 
 |  | 
 | class X { | 
 | late() { | 
 | print("hello"); | 
 | } | 
 | } | 
 |  | 
 | class Y { | 
 | int late = 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]late[KeywordToken];[SimpleToken] | 
 | late[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken] | 
 | bar[StringToken]([BeginToken])[SimpleToken];[SimpleToken] | 
 | new[KeywordToken] X[StringToken]([BeginToken])[SimpleToken].[SimpleToken]late[KeywordToken]([BeginToken])[SimpleToken];[SimpleToken] | 
 | new[KeywordToken] Y[StringToken]([BeginToken])[SimpleToken].[SimpleToken]late[KeywordToken];[SimpleToken] | 
 |  | 
 |  | 
 | late[KeywordToken] int[StringToken] foo[StringToken];[SimpleToken] | 
 | foo[StringToken] =[SimpleToken] 42[StringToken];[SimpleToken] | 
 | }[SimpleToken] | 
 |  | 
 | late[KeywordToken]([BeginToken])[SimpleToken] {[BeginToken] | 
 | print[StringToken]([BeginToken]"hello"[StringToken])[SimpleToken];[SimpleToken] | 
 | }[SimpleToken] | 
 |  | 
 | class[KeywordToken] X[StringToken] {[BeginToken] | 
 | late[KeywordToken]([BeginToken])[SimpleToken] {[BeginToken] | 
 | print[StringToken]([BeginToken]"hello"[StringToken])[SimpleToken];[SimpleToken] | 
 | }[SimpleToken] | 
 | }[SimpleToken] | 
 |  | 
 | class[KeywordToken] Y[StringToken] {[BeginToken] | 
 | int[StringToken] late[KeywordToken] =[SimpleToken] 42[StringToken];[SimpleToken] | 
 | }[SimpleToken] | 
 | [SimpleToken] |