| class Foo { | 
 | String? x; | 
 | int y; | 
 |  | 
 | Foo(Object? o) : x = o as String?, y = 0; | 
 | Foo.a(dynamic o) : y = o is String ? o.length : null, x = null; | 
 | Foo.b(dynamic o) : y = o is String? ? o.length : null, x = null; | 
 | Foo.c(dynamic o) : y = o as String ? o.length : null, x = null; | 
 | Foo.d(dynamic o) : y = o as String? ? o.length : null, x = null; | 
 | } | 
 |  | 
 |  | 
 | class[KeywordToken] Foo[StringToken] {[BeginToken] | 
 | String[StringToken]?[SimpleToken] x[StringToken];[SimpleToken] | 
 | int[StringToken] y[StringToken];[SimpleToken] | 
 |  | 
 | Foo[StringToken]([BeginToken]Object[StringToken]?[SimpleToken] o[StringToken])[SimpleToken] :[SimpleToken] x[StringToken] =[SimpleToken] o[StringToken] as[KeywordToken] String[StringToken]?[SimpleToken],[SimpleToken] y[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken] | 
 | Foo[StringToken].[SimpleToken]a[StringToken]([BeginToken]dynamic[KeywordToken] o[StringToken])[SimpleToken] :[SimpleToken] y[StringToken] =[SimpleToken] o[StringToken] is[KeywordToken] String[StringToken] ?[SimpleToken] o[StringToken].[SimpleToken]length[StringToken] :[SimpleToken] null[KeywordToken],[SimpleToken] x[StringToken] =[SimpleToken] null[KeywordToken];[SimpleToken] | 
 | Foo[StringToken].[SimpleToken]b[StringToken]([BeginToken]dynamic[KeywordToken] o[StringToken])[SimpleToken] :[SimpleToken] y[StringToken] =[SimpleToken] o[StringToken] is[KeywordToken] String[StringToken]?[SimpleToken] ?[SimpleToken] o[StringToken].[SimpleToken]length[StringToken] :[SimpleToken] null[KeywordToken],[SimpleToken] x[StringToken] =[SimpleToken] null[KeywordToken];[SimpleToken] | 
 | Foo[StringToken].[SimpleToken]c[StringToken]([BeginToken]dynamic[KeywordToken] o[StringToken])[SimpleToken] :[SimpleToken] y[StringToken] =[SimpleToken] o[StringToken] as[KeywordToken] String[StringToken] ?[SimpleToken] o[StringToken].[SimpleToken]length[StringToken] :[SimpleToken] null[KeywordToken],[SimpleToken] x[StringToken] =[SimpleToken] null[KeywordToken];[SimpleToken] | 
 | Foo[StringToken].[SimpleToken]d[StringToken]([BeginToken]dynamic[KeywordToken] o[StringToken])[SimpleToken] :[SimpleToken] y[StringToken] =[SimpleToken] o[StringToken] as[KeywordToken] String[StringToken]?[SimpleToken] ?[SimpleToken] o[StringToken].[SimpleToken]length[StringToken] :[SimpleToken] null[KeywordToken],[SimpleToken] x[StringToken] =[SimpleToken] null[KeywordToken];[SimpleToken] | 
 | }[SimpleToken] | 
 | [SimpleToken] |