#NEWLINE# def construct_struct_loop( init_type , struct_type , field_values , env , cont ) : #NEWLINE# #INDENT# from pycket.interpreter import return_multi_vals #NEWLINE# struct_type = jit . promote ( struct_type ) #NEWLINE# if ( not isinstance ( struct_type , W_StructType ) ) : #NEWLINE# #INDENT# return construct_struct_final ( init_type , field_values , env , cont ) #NEWLINE# #UNINDENT# auto_field_start = struct_type . total_init_field_cnt #NEWLINE# guard = struct_type . guard #NEWLINE# if ( guard is values . w_false ) : #NEWLINE# #INDENT# return construct_struct_loop_body ( init_type , struct_type , field_values , auto_field_start , env , cont ) #NEWLINE# #UNINDENT# assert ( auto_field_start >= 0 ) #NEWLINE# typename = init_type . name #NEWLINE# args = ( field_values [ : auto_field_start ] + [ typename ] ) #NEWLINE# cont = receive_guard_values_cont ( init_type , struct_type , field_values , auto_field_start , env , cont ) #NEWLINE# return guard . call ( args , env , cont )