File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -781,7 +781,7 @@ fn (mut g Gen) comptime_for(node ast.ComptimeFor) {
781781 if g.pref.translated && node.typ.is_number () {
782782 g.writeln ('_const_main__${val };' )
783783 } else {
784- node_sym := g.table.sym (node.typ)
784+ node_sym := g.table.sym (g. unwrap_generic ( node.typ) )
785785 if node_sym.info is ast.Alias {
786786 g.writeln ('${g .styp (node_sym .info .parent_type )}__${val };' )
787787 } else {
Original file line number Diff line number Diff line change @@ -24,6 +24,14 @@ fn CharacterGroup.values() []CharacterGroup {
2424 return res
2525}
2626
27+ fn do_generic [T](t T) []EnumData {
28+ mut vals := []EnumData{}
29+ $for value in T.values {
30+ vals << value
31+ }
32+ return vals
33+ }
34+
2735fn test_main () {
2836 values := CharacterGroup.values ()
2937 println ('Char group values: ${values }' )
@@ -53,3 +61,19 @@ fn test_alias_enum() {
5361 assert values[3 ].value == int (CharacterGroup.special)
5462 assert values[3 ].name == CharacterGroup.special.str ()
5563}
64+
65+ fn test_generic_alias_enum () {
66+ values := do_generic (AnotherCharGroup.chars)
67+
68+ assert values[0 ].value == int (CharacterGroup.chars)
69+ assert values[0 ].name == CharacterGroup.chars.str ()
70+
71+ assert values[1 ].value == int (CharacterGroup.alphanumerics)
72+ assert values[1 ].name == CharacterGroup.alphanumerics.str ()
73+
74+ assert values[2 ].value == int (CharacterGroup.numeric)
75+ assert values[2 ].name == CharacterGroup.numeric.str ()
76+
77+ assert values[3 ].value == int (CharacterGroup.special)
78+ assert values[3 ].name == CharacterGroup.special.str ()
79+ }
You can’t perform that action at this time.
0 commit comments