@@ -43,6 +43,7 @@ class BuiltinTemplate:
4343 "length" : BuiltinTemplate ("len({0})" ),
4444 "unwrap_option_or" : BuiltinTemplate ("({0} if {0} is not None else {1})" ),
4545 "int64_to_int32" : BuiltinTemplate ("int({0})" ),
46+ "int64_to_uint32" : BuiltinTemplate ("int({0})" ),
4647 "float64_to_float32" : BuiltinTemplate ("float({0})" ),
4748 "to_ptr_int64" : BuiltinTemplate ("{0}" ), # Python doesn't need pointers
4849 "to_ptr_string" : BuiltinTemplate ("{0}" ),
@@ -85,6 +86,7 @@ class BuiltinTemplate:
8586 "try_flat_io" : BuiltinTemplate ("self._try_flat({0}, {1})" ),
8687 "format_int64" : BuiltinTemplate ("str({0})" ),
8788 "format_int32" : BuiltinTemplate ("(str({0}) + 'i32')" ),
89+ "format_uint32" : BuiltinTemplate ("(str({0}) + 'u32')" ),
8890 "format_float32" : BuiltinTemplate ("(self.format_float32_value({0}) + 'f32')" ),
8991 "format_float64" : BuiltinTemplate ("str({0})" ),
9092 "format_string" : BuiltinTemplate ("self.format_string_value({0})" ),
@@ -97,6 +99,7 @@ class BuiltinTemplate:
9799 "to_string" : BuiltinTemplate ("str({0})" ),
98100 # Type conversions used by pretty printer
99101 "int32_to_int64" : BuiltinTemplate ("int({0})" ),
102+ "uint32_to_int64" : BuiltinTemplate ("int({0})" ),
100103 "float32_to_float64" : BuiltinTemplate ("float({0})" ),
101104 "is_empty" : BuiltinTemplate ("len({0}) == 0" ),
102105 "decode_string" : BuiltinTemplate ("{0}.decode('utf-8')" ),
@@ -140,6 +143,7 @@ class BuiltinTemplate:
140143 "length" : BuiltinTemplate ("length({0})" ),
141144 "unwrap_option_or" : BuiltinTemplate ("(!isnothing({0}) ? {0} : {1})" ),
142145 "int64_to_int32" : BuiltinTemplate ("Int32({0})" ),
146+ "int64_to_uint32" : BuiltinTemplate ("UInt32({0})" ),
143147 "float64_to_float32" : BuiltinTemplate ("Float32({0})" ),
144148 "to_ptr_int64" : BuiltinTemplate ("{0}" ), # Julia doesn't need pointers
145149 "to_ptr_string" : BuiltinTemplate ("{0}" ),
@@ -178,6 +182,7 @@ class BuiltinTemplate:
178182 "try_flat_io" : BuiltinTemplate ("try_flat(pp, {0}, {1})" ),
179183 "format_int64" : BuiltinTemplate ("format_int(pp, {0})" ),
180184 "format_int32" : BuiltinTemplate ('(string(Int64({0})) * "i32")' ),
185+ "format_uint32" : BuiltinTemplate ('(string(Int64({0})) * "u32")' ),
181186 "format_float32" : BuiltinTemplate ('(lowercase(string({0})) * "f32")' ),
182187 "format_float64" : BuiltinTemplate ("format_float(pp, {0})" ),
183188 "format_string" : BuiltinTemplate ("format_string(pp, {0})" ),
@@ -190,6 +195,7 @@ class BuiltinTemplate:
190195 "to_string" : BuiltinTemplate ("string({0})" ),
191196 # Type conversions used by pretty printer
192197 "int32_to_int64" : BuiltinTemplate ("Int64({0})" ),
198+ "uint32_to_int64" : BuiltinTemplate ("Int64({0})" ),
193199 "float32_to_float64" : BuiltinTemplate ("Float64({0})" ),
194200 "is_empty" : BuiltinTemplate ("isempty({0})" ),
195201 "decode_string" : BuiltinTemplate ("String(copy({0}))" ),
@@ -236,6 +242,7 @@ class BuiltinTemplate:
236242 # unwrap_option_or is handled specially in codegen_go.py due to Go's lack of ternary
237243 "unwrap_option_or" : BuiltinTemplate ("{0}" ), # Placeholder - overridden in codegen
238244 "int64_to_int32" : BuiltinTemplate ("int32({0})" ),
245+ "int64_to_uint32" : BuiltinTemplate ("uint32({0})" ),
239246 "float64_to_float32" : BuiltinTemplate ("float32({0})" ),
240247 "to_ptr_int64" : BuiltinTemplate ("ptrInt64({0})" ),
241248 "to_ptr_string" : BuiltinTemplate ("ptrString({0})" ),
@@ -273,6 +280,7 @@ class BuiltinTemplate:
273280 "try_flat_io" : BuiltinTemplate ("p.tryFlat({0}, func() {{ {1}({0}) }})" ),
274281 "format_int64" : BuiltinTemplate ('fmt.Sprintf("%d", {0})' ),
275282 "format_int32" : BuiltinTemplate ('fmt.Sprintf("%di32", {0})' ),
283+ "format_uint32" : BuiltinTemplate ('fmt.Sprintf("%du32", {0})' ),
276284 "format_float32" : BuiltinTemplate (
277285 "fmt.Sprintf(\" %sf32\" , strconv.FormatFloat(float64({0}), 'g', -1, 32))"
278286 ),
@@ -287,6 +295,7 @@ class BuiltinTemplate:
287295 "to_string" : BuiltinTemplate ('fmt.Sprintf("%v", {0})' ),
288296 # Type conversions used by pretty printer
289297 "int32_to_int64" : BuiltinTemplate ("int64({0})" ),
298+ "uint32_to_int64" : BuiltinTemplate ("int64({0})" ),
290299 "float32_to_float64" : BuiltinTemplate ("float64({0})" ),
291300 "is_empty" : BuiltinTemplate ("len({0}) == 0" ),
292301 "decode_string" : BuiltinTemplate ("string({0})" ),
0 commit comments