mirror of
https://github.com/vlang/v.git
synced 2025-09-13 22:42:26 +03:00
all: int => i64 (part 2)
This commit is contained in:
parent
8023e25bea
commit
eb30f2642b
6 changed files with 19 additions and 17 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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),')
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue