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]
