all: int => i64 (part 2)

This commit is contained in:
Alexander Medvednikov 2023-10-07 19:46:46 +03:00
parent 8023e25bea
commit eb30f2642b
6 changed files with 19 additions and 17 deletions

View file

@ -69,7 +69,7 @@ pub mut:
d_u16 u16 d_u16 u16
d_i16 i16 d_i16 i16
d_u32 u32 d_u32 u32
d_i32 int d_i32 i32
d_u64 u64 d_u64 u64
d_i64 i64 d_i64 i64
d_f32 f32 d_f32 f32

View file

@ -10,10 +10,10 @@ import v.pref
pub type TypeDecl = AliasTypeDecl | FnTypeDecl | SumTypeDecl pub type TypeDecl = AliasTypeDecl | FnTypeDecl | SumTypeDecl
pub const int_type_name = $if amd64 || arm64 { pub const int_type_name = $if amd64 || arm64 {
'i32' 'int'
//'i64' //'i64'
} $else { } $else {
'i32' 'int'
} }
pub type Expr = AnonFn pub type Expr = AnonFn

View file

@ -921,7 +921,7 @@ pub fn (mut t Table) register_builtin_type_symbols() {
t.register_sym(kind: .charptr, name: 'charptr', cname: 'charptr', mod: 'builtin') t.register_sym(kind: .charptr, name: 'charptr', cname: 'charptr', mod: 'builtin')
t.register_sym(kind: .i8, name: 'i8', cname: 'i8', mod: 'builtin') t.register_sym(kind: .i8, name: 'i8', cname: 'i8', mod: 'builtin')
t.register_sym(kind: .i16, name: 'i16', cname: 'i16', mod: 'builtin') t.register_sym(kind: .i16, name: 'i16', cname: 'i16', mod: 'builtin')
t.register_sym(kind: .int, name: 'int', cname: 'int', mod: 'builtin') t.register_sym(kind: .int, name: 'int', cname: int_type_name, mod: 'builtin')
t.register_sym(kind: .i64, name: 'i64', cname: 'i64', mod: 'builtin') t.register_sym(kind: .i64, name: 'i64', cname: 'i64', mod: 'builtin')
t.register_sym(kind: .isize, name: 'isize', cname: 'isize', mod: 'builtin') t.register_sym(kind: .isize, name: 'isize', cname: 'isize', mod: 'builtin')
t.register_sym(kind: .u8, name: 'u8', cname: 'u8', mod: 'builtin') t.register_sym(kind: .u8, name: 'u8', cname: 'u8', mod: 'builtin')

View file

@ -2270,7 +2270,9 @@ fn (mut g Gen) get_sumtype_casting_fn(got_ ast.Type, exp_ ast.Type) string {
i := got | int(u32(exp) << 16) i := got | int(u32(exp) << 16)
exp_sym := g.table.sym(exp) exp_sym := g.table.sym(exp)
mut got_sym := g.table.sym(got) mut got_sym := g.table.sym(got)
fn_name := '${got_sym.cname}_to_sumtype_${exp_sym.cname}' cname := if exp == ast.int_type_idx { ast.int_type_name } else { exp_sym.cname }
// fn_name := '${got_sym.cname}_to_sumtype_${exp_sym.cname}'
fn_name := '${got_sym.cname}_to_sumtype_${cname}/*KEK*/'
if got == exp || g.sumtype_definitions[i] { if got == exp || g.sumtype_definitions[i] {
return fn_name return fn_name
} }

View file

@ -215,7 +215,7 @@ fn (mut g Gen) write_orm_update(node &ast.SqlStmtLine, table_name string, connec
g.indent++ g.indent++
g.writeln('.kinds = __new_array_with_default_noscan(0, 0, sizeof(orm__OperationKind), 0),') g.writeln('.kinds = __new_array_with_default_noscan(0, 0, sizeof(orm__OperationKind), 0),')
g.writeln('.is_and = __new_array_with_default_noscan(0, 0, sizeof(bool), 0),') g.writeln('.is_and = __new_array_with_default_noscan(0, 0, sizeof(bool), 0),')
g.writeln('.types = __new_array_with_default_noscan(0, 0, sizeof(int), 0),') g.writeln('.types = __new_array_with_default_noscan(0, 0, sizeof(${ast.int_type_name}), 0),')
g.writeln('.parentheses = __new_array_with_default_noscan(0, 0, sizeof(Array_int), 0),') g.writeln('.parentheses = __new_array_with_default_noscan(0, 0, sizeof(Array_int), 0),')
if node.updated_columns.len > 0 { if node.updated_columns.len > 0 {
@ -395,9 +395,9 @@ fn (mut g Gen) write_orm_insert_with_last_ids(node ast.SqlStmtLine, connection_v
} }
g.indent-- g.indent--
g.writeln('),') g.writeln('),')
g.writeln('.types = __new_array_with_default_noscan(0, 0, sizeof(int), 0),') g.writeln('.types = __new_array_with_default_noscan(0, 0, sizeof(${ast.int_type_name}), 0),')
if auto_fields.len > 0 { if auto_fields.len > 0 {
g.writeln('.auto_fields = new_array_from_c_array(${auto_fields.len}, ${auto_fields.len}, sizeof(int),') g.writeln('.auto_fields = new_array_from_c_array(${auto_fields.len}, ${auto_fields.len}, sizeof(${ast.int_type_name}),')
g.indent++ g.indent++
g.write('_MOV((int[${auto_fields.len}]){') g.write('_MOV((int[${auto_fields.len}]){')
for i in auto_fields { for i in auto_fields {
@ -406,7 +406,7 @@ fn (mut g Gen) write_orm_insert_with_last_ids(node ast.SqlStmtLine, connection_v
g.writeln(' })),') g.writeln(' })),')
g.indent-- g.indent--
} else { } else {
g.writeln('.auto_fields = __new_array_with_default_noscan(0, 0, sizeof(int), 0),') g.writeln('.auto_fields = __new_array_with_default_noscan(0, 0, sizeof(${ast.int_type_name}), 0),')
} }
g.writeln('.kinds = __new_array_with_default_noscan(0, 0, sizeof(orm__OperationKind), 0),') g.writeln('.kinds = __new_array_with_default_noscan(0, 0, sizeof(orm__OperationKind), 0),')
g.writeln('.is_and = __new_array_with_default_noscan(0, 0, sizeof(bool), 0),') g.writeln('.is_and = __new_array_with_default_noscan(0, 0, sizeof(bool), 0),')
@ -581,7 +581,7 @@ fn (mut g Gen) write_orm_where(where_expr ast.Expr) {
g.indent++ g.indent++
g.write_orm_where_expr(where_expr, mut fields, mut parentheses, mut kinds, mut data, mut g.write_orm_where_expr(where_expr, mut fields, mut parentheses, mut kinds, mut data, mut
is_ands) is_ands)
g.writeln('.types = __new_array_with_default_noscan(0, 0, sizeof(int), 0),') g.writeln('.types = __new_array_with_default_noscan(0, 0, sizeof(${ast.int_type_name}), 0),')
if fields.len > 0 { if fields.len > 0 {
g.writeln('.fields = new_array_from_c_array(${fields.len}, ${fields.len}, sizeof(string),') g.writeln('.fields = new_array_from_c_array(${fields.len}, ${fields.len}, sizeof(string),')
g.indent++ g.indent++
@ -619,13 +619,13 @@ fn (mut g Gen) write_orm_where(where_expr ast.Expr) {
g.write('new_array_from_c_array(${parentheses.len}, ${parentheses.len}, sizeof(Array_int), _MOV((Array_int[${parentheses.len}]){') g.write('new_array_from_c_array(${parentheses.len}, ${parentheses.len}, sizeof(Array_int), _MOV((Array_int[${parentheses.len}]){')
for par in parentheses { for par in parentheses {
if par.len > 0 { if par.len > 0 {
g.write('new_array_from_c_array(${par.len}, ${par.len}, sizeof(int), _MOV((int[${par.len}]){') g.write('new_array_from_c_array(${par.len}, ${par.len}, sizeof(${ast.int_type_name}), _MOV((int[${par.len}]){')
for val in par { for val in par {
g.write('${val},') g.write('${val},')
} }
g.write('})),') g.write('})),')
} else { } else {
g.write('__new_array_with_default_noscan(0, 0, sizeof(int), 0),') g.write('__new_array_with_default_noscan(0, 0, sizeof(${ast.int_type_name}), 0),')
} }
} }
g.write('}))') g.write('}))')
@ -853,7 +853,7 @@ fn (mut g Gen) write_orm_select(node ast.SqlExpr, connection_var_name string, re
} }
g.indent-- g.indent--
g.writeln('),') g.writeln('),')
g.writeln('.types = new_array_from_c_array(${types.len}, ${types.len}, sizeof(int),') g.writeln('.types = new_array_from_c_array(${types.len}, ${types.len}, sizeof(${ast.int_type_name}),')
g.indent++ g.indent++
if types.len > 0 { if types.len > 0 {
@ -880,7 +880,7 @@ fn (mut g Gen) write_orm_select(node ast.SqlExpr, connection_var_name string, re
g.writeln('(orm__QueryData) {') g.writeln('(orm__QueryData) {')
g.indent++ g.indent++
g.writeln('.types = __new_array_with_default_noscan(0, 0, sizeof(int), 0),') g.writeln('.types = __new_array_with_default_noscan(0, 0, sizeof(${ast.int_type_name}), 0),')
g.writeln('.kinds = __new_array_with_default_noscan(0, 0, sizeof(orm__OperationKind), 0),') g.writeln('.kinds = __new_array_with_default_noscan(0, 0, sizeof(orm__OperationKind), 0),')
g.writeln('.is_and = __new_array_with_default_noscan(0, 0, sizeof(bool), 0),') g.writeln('.is_and = __new_array_with_default_noscan(0, 0, sizeof(bool), 0),')
g.writeln('.parentheses = __new_array_with_default_noscan(0, 0, sizeof(Array_int), 0),') g.writeln('.parentheses = __new_array_with_default_noscan(0, 0, sizeof(Array_int), 0),')
@ -902,7 +902,7 @@ fn (mut g Gen) write_orm_select(node ast.SqlExpr, connection_var_name string, re
} else { } else {
g.writeln('(orm__QueryData) {') g.writeln('(orm__QueryData) {')
g.indent++ g.indent++
g.writeln('.types = __new_array_with_default_noscan(0, 0, sizeof(int), 0),') g.writeln('.types = __new_array_with_default_noscan(0, 0, sizeof(${ast.int_type_name}), 0),')
g.writeln('.kinds = __new_array_with_default_noscan(0, 0, sizeof(orm__OperationKind), 0),') g.writeln('.kinds = __new_array_with_default_noscan(0, 0, sizeof(orm__OperationKind), 0),')
g.writeln('.is_and = __new_array_with_default_noscan(0, 0, sizeof(bool), 0),') g.writeln('.is_and = __new_array_with_default_noscan(0, 0, sizeof(bool), 0),')
g.writeln('.parentheses = __new_array_with_default_noscan(0, 0, sizeof(Array_int), 0),') g.writeln('.parentheses = __new_array_with_default_noscan(0, 0, sizeof(Array_int), 0),')

View file

@ -120,9 +120,9 @@ fn (g Gen) gen_fields_array(fields []ast.StructField) string {
[inline] [inline]
fn (g Gen) gen_type_array(types []ast.Type) string { fn (g Gen) gen_type_array(types []ast.Type) string {
if types.len == 0 { if types.len == 0 {
return g.gen_empty_array('int') return g.gen_empty_array(ast.int_type_name)
} }
return 'new_array_from_c_array(${types.len},${types.len},sizeof(int),_MOV((int[${types.len}]){${types.map(int(it).str()).join(',')}}))' return 'new_array_from_c_array(${types.len},${types.len},sizeof(${ast.int_type_name}),_MOV((int[${types.len}]){${types.map(int(it).str()).join(',')}}))'
} }
// gen_string_array generates C code for []string // gen_string_array generates C code for []string