@@ -6904,16 +6904,25 @@ template <typename A>
6904
6904
6905
6905
// Write the entry point function's name, and begin its argument list.
6906
6906
writeln ! ( self . out, "{em_str} {result_type_name} {fun_name}(" ) ?;
6907
+
6907
6908
let mut is_first_argument = true ;
6909
+ let mut separator = || {
6910
+ if is_first_argument {
6911
+ is_first_argument = false ;
6912
+ ' '
6913
+ } else {
6914
+ ','
6915
+ }
6916
+ } ;
6908
6917
6909
6918
// If we have produced a struct holding the `EntryPoint`'s
6910
6919
// `Function`'s arguments' varyings, pass that struct first.
6911
6920
if has_varyings {
6912
6921
writeln ! (
6913
6922
self . out,
6914
- " {stage_in_name} {varyings_member_name} [[stage_in]]"
6923
+ "{} {stage_in_name} {varyings_member_name} [[stage_in]]" ,
6924
+ separator( )
6915
6925
) ?;
6916
- is_first_argument = false ;
6917
6926
}
6918
6927
6919
6928
let mut local_invocation_id = None ;
@@ -6953,13 +6962,7 @@ template <typename A>
6953
6962
} ;
6954
6963
6955
6964
let resolved = options. resolve_local_binding ( binding, in_mode) ?;
6956
- let separator = if is_first_argument {
6957
- is_first_argument = false ;
6958
- ' '
6959
- } else {
6960
- ','
6961
- } ;
6962
- write ! ( self . out, "{separator} {ty_name} {name}" ) ?;
6965
+ write ! ( self . out, "{} {ty_name} {name}" , separator( ) ) ?;
6963
6966
resolved. try_fmt ( & mut self . out ) ?;
6964
6967
writeln ! ( self . out) ?;
6965
6968
}
@@ -6968,15 +6971,9 @@ template <typename A>
6968
6971
self . need_workgroup_variables_initialization ( options, ep, module, fun_info) ;
6969
6972
6970
6973
if need_workgroup_variables_initialization && local_invocation_id. is_none ( ) {
6971
- let separator = if is_first_argument {
6972
- is_first_argument = false ;
6973
- ' '
6974
- } else {
6975
- ','
6976
- } ;
6977
6974
writeln ! (
6978
6975
self . out,
6979
- "{separator } {NAMESPACE}::uint3 __local_invocation_id [[thread_position_in_threadgroup]]"
6976
+ "{} {NAMESPACE}::uint3 __local_invocation_id [[thread_position_in_threadgroup]]" , separator ( )
6980
6977
) ?;
6981
6978
}
6982
6979
@@ -7123,15 +7120,6 @@ template <typename A>
7123
7120
}
7124
7121
}
7125
7122
7126
- let mut separator = || {
7127
- if is_first_argument {
7128
- is_first_argument = false ;
7129
- ' '
7130
- } else {
7131
- ','
7132
- }
7133
- } ;
7134
-
7135
7123
match module. types [ var. ty ] . inner {
7136
7124
crate :: TypeInner :: Image {
7137
7125
class : crate :: ImageClass :: External ,
@@ -7203,21 +7191,13 @@ template <typename A>
7203
7191
}
7204
7192
7205
7193
if do_vertex_pulling {
7206
- let mut separator = if is_first_argument {
7207
- is_first_argument = false ;
7208
- ' '
7209
- } else {
7210
- ','
7211
- } ;
7212
-
7213
7194
if needs_vertex_id && v_existing_id. is_none ( ) {
7214
7195
// Write the [[vertex_id]] argument.
7215
- writeln ! ( self . out, "{separator} uint {v_id} [[vertex_id]]" ) ?;
7216
- separator = ',' ;
7196
+ writeln ! ( self . out, "{} uint {v_id} [[vertex_id]]" , separator( ) ) ?;
7217
7197
}
7218
7198
7219
7199
if needs_instance_id && i_existing_id. is_none ( ) {
7220
- writeln ! ( self . out, "{separator } uint {i_id} [[instance_id]]" ) ?;
7200
+ writeln ! ( self . out, "{} uint {i_id} [[instance_id]]" , separator ( ) ) ?;
7221
7201
}
7222
7202
7223
7203
// Iterate vbm_resolved, output one argument for every vertex buffer,
@@ -7228,7 +7208,8 @@ template <typename A>
7228
7208
let param_name = & vbm. param_name ;
7229
7209
writeln ! (
7230
7210
self . out,
7231
- ", const device {ty_name}* {param_name} [[buffer({id})]]"
7211
+ "{} const device {ty_name}* {param_name} [[buffer({id})]]" ,
7212
+ separator( )
7232
7213
) ?;
7233
7214
}
7234
7215
}
@@ -7238,10 +7219,10 @@ template <typename A>
7238
7219
if needs_buffer_sizes {
7239
7220
// this is checked earlier
7240
7221
let resolved = options. resolve_sizes_buffer ( ep) . unwrap ( ) ;
7241
- let separator = if is_first_argument { ' ' } else { ',' } ;
7242
7222
write ! (
7243
7223
self . out,
7244
- "{separator} constant _mslBufferSizes& _buffer_sizes" ,
7224
+ "{} constant _mslBufferSizes& _buffer_sizes" ,
7225
+ separator( )
7245
7226
) ?;
7246
7227
resolved. try_fmt ( & mut self . out ) ?;
7247
7228
writeln ! ( self . out) ?;
0 commit comments