(many) Add support for native classes + calling static methods in native classes
This was not trivial, since for some of the use cases (Foo.to_string().to_string()
) I had to implement support for method overloading at the same time. Method overloading is such an anti-pattern, at least from a compiler/interpreter point of view; it definitely makes things more complex.
Then again, from a user point-of-view, it has its advantages in the polymorphic designs it enables. I guess we will have to implement it for Perlang classes at some point. For now, we support it when interfacing with native .NET classes, which is a start. (Speaking about it, we have probably accomplished much of the complexity mentioned above already, so maybe, maybe implementing it for Perlang classes would be quite "easy". Time will tell.