Skip to content

Commit e4561c5

Browse files
committed
fix: cython
1 parent f18826b commit e4561c5

File tree

7 files changed

+4
-55
lines changed

7 files changed

+4
-55
lines changed

src/bindgen/language_backend/cython.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,10 @@ impl LanguageBackend for CythonLanguageBackend<'_> {
129129
self.write_documentation(out, &e.documentation);
130130

131131
// Emit the tag enum and everything related to it.
132-
e.write_tag_enum(self.config, self, out, size, Self::write_enum_variant);
132+
// Skip writing the tag enum if this is a specialized monomorph with an external tag
133+
if !e.external_tag {
134+
e.write_tag_enum(self.config, self, out, size, Self::write_enum_variant);
135+
}
133136

134137
// If the enum has data, we need to emit structs for the variants and gather them together.
135138
if has_data {

tests/expectations/merge_generic_tags.pyx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,12 @@ cdef extern from *:
1111
None,
1212

1313

14-
ctypedef enum COption_Tag:
15-
Some_u8,
16-
None_u8,
1714

1815

1916
ctypedef struct COption_u8:
2017
COption_Tag tag;
2118
uint8_t some;
2219

23-
ctypedef enum COption_Tag:
24-
Some_u32,
25-
None_u32,
2620

2721

2822
ctypedef struct COption_u32:

tests/expectations/merge_generic_tags_export_prefix.pyx

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,6 @@ cdef extern from *:
1616
PREFIX_C_RESULT_ERR,
1717

1818

19-
ctypedef enum Prefix_COption_Tag:
20-
PREFIX_C_OPTION_U32_SOME_U32,
21-
PREFIX_C_OPTION_U32_NONE_U32,
2219

2320

2421
ctypedef struct Prefix_COption_u32:
@@ -29,38 +26,26 @@ cdef extern from *:
2926
int32_t code;
3027
const uint8_t *message;
3128

32-
ctypedef enum Prefix_CResult_Tag:
33-
PREFIX_C_RESULT_U32_ERROR_INFO_OK_U32_ERROR_INFO,
34-
PREFIX_C_RESULT_U32_ERROR_INFO_ERR_U32_ERROR_INFO,
3529

3630

3731
ctypedef struct Prefix_CResult_u32__ErrorInfo:
3832
Prefix_CResult_Tag tag;
3933
uint32_t ok;
4034
Prefix_ErrorInfo err;
4135

42-
ctypedef enum Prefix_COption_Tag:
43-
PREFIX_C_OPTION_U8_SOME_U8,
44-
PREFIX_C_OPTION_U8_NONE_U8,
4536

4637

4738
ctypedef struct Prefix_COption______u8:
4839
Prefix_COption_Tag tag;
4940
const uint8_t *some;
5041

51-
ctypedef enum Prefix_CResult_Tag:
52-
PREFIX_C_RESULT_U8_I32_OK_U8_I32,
53-
PREFIX_C_RESULT_U8_I32_ERR_U8_I32,
5442

5543

5644
ctypedef struct Prefix_CResult______u8__i32:
5745
Prefix_CResult_Tag tag;
5846
const uint8_t *ok;
5947
int32_t err;
6048

61-
ctypedef enum Prefix_COption_Tag:
62-
PREFIX_C_OPTION_I32_SOME_I32,
63-
PREFIX_C_OPTION_I32_NONE_I32,
6449

6550

6651
ctypedef struct Prefix_COption_i32:

tests/expectations/merge_generic_tags_export_prefix_tag.pyx

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,6 @@ cdef extern from *:
1616
PREFIX_C_RESULT_ERR,
1717

1818

19-
cdef enum Prefix_COption_Tag:
20-
PREFIX_C_OPTION_U32_SOME_U32,
21-
PREFIX_C_OPTION_U32_NONE_U32,
2219

2320

2421
cdef struct Prefix_COption_u32:
@@ -29,38 +26,26 @@ cdef extern from *:
2926
int32_t code;
3027
const uint8_t *message;
3128

32-
cdef enum Prefix_CResult_Tag:
33-
PREFIX_C_RESULT_U32_ERROR_INFO_OK_U32_ERROR_INFO,
34-
PREFIX_C_RESULT_U32_ERROR_INFO_ERR_U32_ERROR_INFO,
3529

3630

3731
cdef struct Prefix_CResult_u32__ErrorInfo:
3832
Prefix_CResult_Tag tag;
3933
uint32_t ok;
4034
Prefix_ErrorInfo err;
4135

42-
cdef enum Prefix_COption_Tag:
43-
PREFIX_C_OPTION_U8_SOME_U8,
44-
PREFIX_C_OPTION_U8_NONE_U8,
4536

4637

4738
cdef struct Prefix_COption______u8:
4839
Prefix_COption_Tag tag;
4940
const uint8_t *some;
5041

51-
cdef enum Prefix_CResult_Tag:
52-
PREFIX_C_RESULT_U8_I32_OK_U8_I32,
53-
PREFIX_C_RESULT_U8_I32_ERR_U8_I32,
5442

5543

5644
cdef struct Prefix_CResult______u8__i32:
5745
Prefix_CResult_Tag tag;
5846
const uint8_t *ok;
5947
int32_t err;
6048

61-
cdef enum Prefix_COption_Tag:
62-
PREFIX_C_OPTION_I32_SOME_I32,
63-
PREFIX_C_OPTION_I32_NONE_I32,
6449

6550

6651
cdef struct Prefix_COption_i32:

tests/expectations/merge_generic_tags_tag.pyx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,12 @@ cdef extern from *:
1111
None,
1212

1313

14-
cdef enum COption_Tag:
15-
Some_u8,
16-
None_u8,
1714

1815

1916
cdef struct COption_u8:
2017
COption_Tag tag;
2118
uint8_t some;
2219

23-
cdef enum COption_Tag:
24-
Some_u32,
25-
None_u32,
2620

2721

2822
cdef struct COption_u32:

tests/expectations/merge_generic_tags_with_prefix.pyx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,12 @@ cdef extern from *:
1111
COption_None,
1212

1313

14-
ctypedef enum COption_Tag:
15-
COption_u8_Some_u8,
16-
COption_u8_None_u8,
1714

1815

1916
ctypedef struct COption_u8:
2017
COption_Tag tag;
2118
uint8_t some;
2219

23-
ctypedef enum COption_Tag:
24-
COption_u32_Some_u32,
25-
COption_u32_None_u32,
2620

2721

2822
ctypedef struct COption_u32:

tests/expectations/merge_generic_tags_with_prefix_tag.pyx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,12 @@ cdef extern from *:
1111
COption_None,
1212

1313

14-
cdef enum COption_Tag:
15-
COption_u8_Some_u8,
16-
COption_u8_None_u8,
1714

1815

1916
cdef struct COption_u8:
2017
COption_Tag tag;
2118
uint8_t some;
2219

23-
cdef enum COption_Tag:
24-
COption_u32_Some_u32,
25-
COption_u32_None_u32,
2620

2721

2822
cdef struct COption_u32:

0 commit comments

Comments
 (0)