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_i16 i16
d_u32 u32
d_i32 int
d_i32 i32
d_u64 u64
d_i64 i64
d_f32 f32

View file

@ -10,10 +10,10 @@ import v.pref
pub type TypeDecl = AliasTypeDecl | FnTypeDecl | SumTypeDecl
pub const int_type_name = $if amd64 || arm64 {
'i32'
'int'
//'i64'
} $else {
'i32'
'int'
}
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: .i8, name: 'i8', cname: 'i8', 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: .isize, name: 'isize', cname: 'isize', 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)
exp_sym := g.table.sym(exp)
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] {
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.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('.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),')
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.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 {
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.write('_MOV((int[${auto_fields.len}]){')
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.indent--
} 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('.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.write_orm_where_expr(where_expr, mut fields, mut parentheses, mut kinds, mut data, mut
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 {
g.writeln('.fields = new_array_from_c_array(${fields.len}, ${fields.len}, sizeof(string),')
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}]){')
for par in parentheses {
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 {
g.write('${val},')
}
g.write('})),')
} 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('}))')
@ -853,7 +853,7 @@ fn (mut g Gen) write_orm_select(node ast.SqlExpr, connection_var_name string, re
}
g.indent--
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++
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.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('.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),')
@ -902,7 +902,7 @@ fn (mut g Gen) write_orm_select(node ast.SqlExpr, connection_var_name string, re
} else {
g.writeln('(orm__QueryData) {')
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('.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),')

View file

@ -120,9 +120,9 @@ fn (g Gen) gen_fields_array(fields []ast.StructField) string {
[inline]
fn (g Gen) gen_type_array(types []ast.Type) string {
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