-
Notifications
You must be signed in to change notification settings - Fork 68
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
Internal type split #845
Internal type split #845
Conversation
8849b7b
to
2e97d06
Compare
The result looks mostly really good! But it doesn't properly solve #534: with the rule
I get the types
so the |
@spoenemann Thanks for the hint 👍 It should as expected now. |
How does this relate to #554? |
|
Unrelated to the changes in my PR. It might be due to some recent changes in the generator API. |
True. Could you fix it in this PR? |
I would rather see this fixed in a separate PR. |
It's my fault: I had to manually fix the generated files (#888 (comment)), then @msujew fixed the generator, but we didn't regenerate the files. The file ending is different because the text editor automatically changes it on save. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
General suggestions & comments. In particular I'm curious if we can still retain some (or all) of the previous inferred type tests structure. and then there's the point about the subtle change from undefined
to false
for values when parsing fails.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tests look good after a double check. There was one that was slightly changed (inferred types using chained actions), where G, H, and I are changed around. But this looks okay based on testing locally. Also checked this against some other Langium projects as well, and nothing appears out of the ordinary from what I can tell.
@montymxb Thanks for the thorough review! @pluralia Do you have time this week to look into this? pinging @sailingKieler as well. Otherwise I would merge this soonish. |
977ff9a
to
22aef30
Compare
22aef30
to
49973f6
Compare
This change splits the type system into a "plain" (string-based) type system and a concrete (reference-based) type system. Splitting the types allows for easier handling of purely generated information (i.e. container types, union/interface hierarchies and type names). It also has an impact on how we deal with property types and union types in general, which are now way more flexible.
Aims to resolve multiple issues:
TypeAlternatives
#511 (The grammar has been slightly modified)