But with this approach you arent able to provide e.g intellisense or other IDE hints for valid things within this node, right?
Foo getFoo(int);
getFoo().???; // want code completion!
`getFoo()` is missing an argument, but you still want to complete Foo's members. If you type `getFoo().getBar()` you want go-to-definition to work on `getBar`.In clang, we use heuristics to preserve the type in high-confidence cases. (here overload resolution for `getFoo` failed, but there was only one candidate function). This means you can get cascading errors in those cases (but often that's a good thing, especially in an IDE - tradeoffs).
"public intd Test() { ... typing new line }"
then you will not provide hints when writing that new line due to "intd" being invalid type?