@@ -727,15 +727,12 @@ fn (mut g Gen) resolve_comptime_type(node ast.Expr, default_type ast.Type) ast.T
727
727
return default_type
728
728
}
729
729
730
- //
731
-
732
730
fn (mut g Gen) comptime_for (node ast.ComptimeFor) {
733
731
sym := g.table.final_sym (g.unwrap_generic (node.typ))
734
- g.writeln ('/* \$ for ${node.val_var} in ${sym.name} ( ${node.kind.str()} ) */ {' )
732
+ g.writeln ('/* \$ for ${node.val_var} in ${sym.name} . ${node.kind.str()} */ {' )
735
733
g.indent++
736
- // vweb_result_type := ast.new_type(g.table.find_type_idx('vweb.Result'))
737
734
mut i := 0
738
- // g.writeln('string method = _SLIT("");')
735
+
739
736
if node.kind == .methods {
740
737
mut methods := sym.methods.filter (it .attrs.len == 0 ) // methods without attrs first
741
738
methods_with_attrs := sym.methods.filter (it .attrs.len > 0 ) // methods with attrs second
@@ -809,7 +806,7 @@ fn (mut g Gen) comptime_for(node ast.ComptimeFor) {
809
806
ret_typ := method.return_type.idx ()
810
807
g.writeln ('\t ${node.val_var} .typ = ${styp} ;' )
811
808
g.writeln ('\t ${node.val_var} .return_type = ${ret_typ} ;' )
812
- //
809
+
813
810
g.comptime_var_type_map['${node.val_var} .return_type' ] = ret_typ
814
811
g.comptime_var_type_map['${node.val_var} .typ' ] = styp
815
812
g.stmts (node.stmts)
@@ -818,7 +815,6 @@ fn (mut g Gen) comptime_for(node ast.ComptimeFor) {
818
815
g.pop_existing_comptime_values ()
819
816
}
820
817
} else if node.kind == .fields {
821
- // TODO add fields
822
818
if sym.kind in [.struct_, .interface_] {
823
819
fields := match sym.info {
824
820
ast.Struct {
@@ -853,28 +849,27 @@ fn (mut g Gen) comptime_for(node ast.ComptimeFor) {
853
849
attrs.join (', ' ) + '}));\n ' )
854
850
}
855
851
field_sym := g.table.sym (field.typ)
856
- // g.writeln('\t${node.val_var}.typ = _SLIT("$field_sym.name");')
857
852
styp := field.typ
858
853
unaliased_styp := g.table.unaliased_type (styp)
859
854
860
855
g.writeln ('\t ${node.val_var} .typ = ${styp.idx()} ;' )
861
856
g.writeln ('\t ${node.val_var} .unaliased_typ = ${unaliased_styp.idx()} ;' )
862
857
g.writeln ('\t ${node.val_var} .is_pub = ${field.is_pub} ;' )
863
858
g.writeln ('\t ${node.val_var} .is_mut = ${field.is_mut} ;' )
864
- //
859
+
865
860
g.writeln ('\t ${node.val_var} .is_shared = ${field.typ.has_flag(.shared_f)} ;' )
866
861
g.writeln ('\t ${node.val_var} .is_atomic = ${field.typ.has_flag(.atomic_f)} ;' )
867
862
g.writeln ('\t ${node.val_var} .is_option = ${field.typ.has_flag(.option)} ;' )
868
- //
863
+
869
864
g.writeln ('\t ${node.val_var} .is_array = ${field_sym.kind in [.array, .array_fixed]} ;' )
870
865
g.writeln ('\t ${node.val_var} .is_map = ${field_sym.kind == .map} ;' )
871
866
g.writeln ('\t ${node.val_var} .is_chan = ${field_sym.kind == .chan} ;' )
872
867
g.writeln ('\t ${node.val_var} .is_struct = ${field_sym.kind == .struct_} ;' )
873
868
g.writeln ('\t ${node.val_var} .is_alias = ${field_sym.kind == .alias} ;' )
874
869
g.writeln ('\t ${node.val_var} .is_enum = ${field_sym.kind == .enum_} ;' )
875
- //
870
+
876
871
g.writeln ('\t ${node.val_var} .indirections = ${field.typ.nr_muls()} ;' )
877
- //
872
+
878
873
g.comptime_var_type_map['${node.val_var} .typ' ] = styp
879
874
g.comptime_var_type_map['${node.val_var} .unaliased_typ' ] = unaliased_styp
880
875
g.stmts (node.stmts)
0 commit comments