This issue is a collection of things that are currently wrong with our call expression
In the frontend we cannot decide whether something is a member call or just a qualified call to a function of an import, e.g. foo.bar() is either a MemberCallExpression with base foo or a CallExpression to foo.bar (of package foo)
In C++ and Java, (and other languages) we can leave out this. So if you are calling foo() inside a method, it could either be a call expression to a global function (this is only possible in C++) or a method foo. In the frontend, we can only create a CallExpression, but in the end we would actually have a MemberCallExpression with a base to the receiver. But we cannot create that in the frontend unless we do some resolving there.
This issue is a collection of things that are currently wrong with our call expression
foo.bar()
is either aMemberCallExpression
with basefoo
or aCallExpression
tofoo.bar
(of packagefoo
)this
. So if you are callingfoo()
inside a method, it could either be a call expression to a global function (this is only possible in C++) or a methodfoo
. In the frontend, we can only create aCallExpression
, but in the end we would actually have aMemberCallExpression
with a base to the receiver. But we cannot create that in the frontend unless we do some resolving there.