New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Metamodel: unreify private members #297
Comments
@gavinking before I do something wrong, what's the exact expected behaviour wrt non-shared for modules, packages, types, functions, methods, values, attributes? |
I'm not sure. I don't quite know what this issue is about. |
It's exactly about what I've just asked you. I need a specification of which non-shared declarations and models are reified in the metamodel, and which are not. |
Well if we care about modularity, then we should not expose any non- |
But |
And we can't not expose non-shared types, since they are visible to users via their instances. |
If I do that now, @chochos will kill me, so I propose to delay until 1.1 |
I don't want to die. |
I'm too young. |
Actually in JS there is no way to retrieve non-shared top-level stuff at least. I mean you can get the declaration at most, but there's no way you can get to the actual method/type/value. That's why you need to share a top-level function if you want to run it in js. |
I think we need more time for a discussion so we'll let that slip. In particular non-shared types cannot be invisible in the metamodel, since we can obtain non-shared types from their instances. Also non-shared class parameters should at least be visible as declarations, if not as models. |
Moving to 1.2 |
Gavin said we need to remove private stuff from the metamodel, I don't remember what, and I don't remember if that was from both the declarations and the model, but he will know.
The text was updated successfully, but these errors were encountered: