On Saturday, 2 September 2017 at 14:04:07 UTC, Jean-Louis Leroy wrote:
On Thursday, 31 August 2017 at 23:37:03 UTC, EntangledQuanta wrote:
I'll try again at some point. I haven't got around to messing with it again.

Did you get a chance?

I'll try real quick again. I'll have to rewrite the code as I moved on but:

When I just add the mixin and update(to main) I get the error

openmethods.d(1432): Error: function `main` has no members
main.d-mixin-15(15): Error: CTFE failed because of previous errors in _registerMethods

This is when I have the mixin(registerMethods) in a module that doesn't use any open methods. It says add once per module in the help, but I think it means once per module where open methods are used?

Removing that mixin from main allows it to compile(but I haven't created any methods yet).

You might look in to adding updateMethods in a static this() since it will be ran per process and do everything necessary, I think.

After a few stupid bugs by me, I was able to get it to work! Pretty much a drop in replacement! I didn't do anything fancy, very basic, but it did work. It's not a real test but does show it can, for the most part, replace traditional code.

Strangely enough, I had a protected member that I was using and it works, I guess because I defined the openmethod in the same module. I changed it to private and it worked too. So the issues about encapsulation I thought about before may be irrelevant as long as the openmethods are used in the same module(which is a nice feature of D).

So, everything looks good on my end. Once I get around to creating something new or rewriting some old stuff I'll try to use them more and see what happens.

Reply via email to