fix regression with imported distinct
types
#1418
Merged
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.
Summary
Marking a
distinct T
type as imported resulted in multiple Cdefinitions for
T
, ifT
is a non-numeric, non-pointer type. This isnow fixed.
Fixes #1417.
Details
When translating imported types,
mirtypes
always created a new typesymbol for the imported type's underlying type. For
tyAlias
andtyDistinct
types (or any other type kind in theSkip
set), thisresulted in a duplicate of the underlying type symbol being created.
Since MIR types are identified by ID, both look separate to
cgen
, andthus a C definition is emitted for each.
handleImportedTypes
now goes through the caching mechanism for theunderlying type if its not the type marked with
.importc
, fixing theissue.