| class A { |
| operator [](int index) => index; |
| } |
| |
| main() { |
| A? a = null; |
| (a!)?.toString(); |
| (a!)?.[42]; |
| (a!)?[42]; |
| (a!) ? [42]; |
| } |
| |
| class[KeywordToken] A[StringToken] {[BeginToken] |
| operator[KeywordToken] [][SimpleToken]([BeginToken]int[StringToken] index[StringToken])[SimpleToken] =>[SimpleToken] index[StringToken];[SimpleToken] |
| }[SimpleToken] |
| |
| main[StringToken]([BeginToken])[SimpleToken] {[BeginToken] |
| A[StringToken]?[SimpleToken] a[StringToken] =[SimpleToken] null[KeywordToken];[SimpleToken] |
| ([BeginToken]a[StringToken]![SimpleToken])[SimpleToken]?.[SimpleToken]toString[StringToken]([BeginToken])[SimpleToken];[SimpleToken] |
| ([BeginToken]a[StringToken]![SimpleToken])[SimpleToken]?.[SimpleToken][[BeginToken]42[StringToken]][SimpleToken];[SimpleToken] |
| ([BeginToken]a[StringToken]![SimpleToken])[SimpleToken]?[SimpleToken][[BeginToken]42[StringToken]][SimpleToken];[SimpleToken] |
| ([BeginToken]a[StringToken]![SimpleToken])[SimpleToken] ?[SimpleToken] [[BeginToken]42[StringToken]][SimpleToken];[SimpleToken] |
| }[SimpleToken][SimpleToken] |