Open
Conversation
…ey don't get transpiled into C
Burnett01
suggested changes
Mar 16, 2026
Member
There was a problem hiding this comment.
If I remember correctly there was a reason behind emitting those warnings when the typechecker got implemented.
If we want to keep the current typechecker behaivour, we should lax the warning with a flag instead.
If we don't want to keep the current typechecker behaivour, your PR is a sufficient fix I think.
This is related to #116
Contributor
Author
|
I think there's 2 concerns there. 1 is a warning/error/diagnostic if a symbol is unknown. This PR is not about this. 2 is that an extern symbol shouldn't have to be unknown. It should be possible to define it in Zen C as "This type will exist." and that's what this PR is about. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Please see the 2nd commit. I don't think it's a correct change, but I noticed that extern struct/unions were still emitted into the C output as a
typedefwhich causes double-typedefs for structs defined in a C header. I don't see any unit tests usingextern struct/unionto verify its behavior so I'm not sure if this is intended or a bug. It makes my use-case below work.This registers
extern structandextern unionas known extern symbols to quench the warning "assuming external C struct". I didn't change the branch forextern fnbecause they don't seem to have this issue.Type of change
Checklist: