class Foo {
String? x;
int y;

Foo(Object? o) : x = o != null ? o as String? : null, y = 0;

void foo(dynamic x) {
if (x is String? ? 4 : 2 == 4) {
print("hello");
}
}

void bar(dynamic x) {
if (x is String ? 4 : 2 == 4) {
print("hello");
}
}
}


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] !=[SimpleToken] null[KeywordToken] ?[SimpleToken] o[StringToken] as[KeywordToken] String[StringToken]?[SimpleToken] :[SimpleToken] null[KeywordToken],[SimpleToken] y[StringToken] =[SimpleToken] 0[StringToken];[SimpleToken]

void[KeywordToken] foo[StringToken]([BeginToken]dynamic[KeywordToken] x[StringToken])[SimpleToken] {[BeginToken]
if[KeywordToken] ([BeginToken]x[StringToken] is[KeywordToken] String[StringToken]?[SimpleToken] ?[SimpleToken] 4[StringToken] :[SimpleToken] 2[StringToken] ==[SimpleToken] 4[StringToken])[SimpleToken] {[BeginToken]
print[StringToken]([BeginToken]"hello"[StringToken])[SimpleToken];[SimpleToken]
}[SimpleToken]
}[SimpleToken]

void[KeywordToken] bar[StringToken]([BeginToken]dynamic[KeywordToken] x[StringToken])[SimpleToken] {[BeginToken]
if[KeywordToken] ([BeginToken]x[StringToken] is[KeywordToken] String[StringToken] ?[SimpleToken] 4[StringToken] :[SimpleToken] 2[StringToken] ==[SimpleToken] 4[StringToken])[SimpleToken] {[BeginToken]
print[StringToken]([BeginToken]"hello"[StringToken])[SimpleToken];[SimpleToken]
}[SimpleToken]
}[SimpleToken]
}[SimpleToken]
[SimpleToken]
