test the recent type alias string; print vweb templates in verbose mode
parent
8c0e0f8ab7
commit
bcde155da7
|
@ -171,12 +171,18 @@ fn (p mut Parser) comp_time() {
|
||||||
p.check(.lpar)
|
p.check(.lpar)
|
||||||
p.check(.rpar)
|
p.check(.rpar)
|
||||||
v_code := tmpl.compile_template(path)
|
v_code := tmpl.compile_template(path)
|
||||||
|
if p.pref.is_verbose {
|
||||||
|
println('vweb template:')
|
||||||
|
println(v_code)
|
||||||
|
}
|
||||||
is_strings_imorted := p.import_table.known_import('strings')
|
is_strings_imorted := p.import_table.known_import('strings')
|
||||||
if !is_strings_imorted {
|
if !is_strings_imorted {
|
||||||
p.register_import('strings', 0) // used by v_code
|
p.register_import('strings', 0) // used by v_code
|
||||||
}
|
}
|
||||||
p.import_table.register_used_import('strings')
|
p.import_table.register_used_import('strings')
|
||||||
p.genln('/////////////////// tmpl start')
|
p.genln('/////////////////// tmpl start')
|
||||||
|
p.scanner.file_path = path
|
||||||
|
p.scanner.line_nr = 0
|
||||||
p.statements_from_text(v_code, false)
|
p.statements_from_text(v_code, false)
|
||||||
p.genln('/////////////////// tmpl end')
|
p.genln('/////////////////// tmpl end')
|
||||||
receiver := p.cur_fn.args[0]
|
receiver := p.cur_fn.args[0]
|
||||||
|
|
|
@ -18,6 +18,7 @@ pub mut:
|
||||||
fn_cnt int //atomic
|
fn_cnt int //atomic
|
||||||
obfuscate bool
|
obfuscate bool
|
||||||
varg_access []VargAccess
|
varg_access []VargAccess
|
||||||
|
//enum_vals map[string][]string
|
||||||
//names []Name
|
//names []Name
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -230,9 +231,18 @@ fn is_primitive_type(typ string) bool {
|
||||||
return is_number_type(typ) || typ == 'string'
|
return is_number_type(typ) || typ == 'string'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
fn (t mut Table) register_enum_val(typ, val string) {
|
||||||
|
if t.enum_vals.len == 0 {
|
||||||
|
t.enum_vals = [val]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
fn new_table(obfuscate bool) &Table {
|
fn new_table(obfuscate bool) &Table {
|
||||||
mut t := &Table {
|
mut t := &Table {
|
||||||
obfuscate: obfuscate
|
obfuscate: obfuscate
|
||||||
|
//enum_vals: map[string][]string
|
||||||
}
|
}
|
||||||
t.register_builtin('int')
|
t.register_builtin('int')
|
||||||
t.register_builtin('size_t')
|
t.register_builtin('size_t')
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
struct Human { name string }
|
||||||
|
|
||||||
|
pub fn (h Human) str() string { return 'Human: $h.name' }
|
||||||
|
|
||||||
|
type Person Human
|
||||||
|
|
||||||
|
fn test_type_print() {
|
||||||
|
p := Person{'Bilbo'}
|
||||||
|
println(p)
|
||||||
|
assert p.str() == 'Human: Bilbo'
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn (h Person) str() string { return 'Person: $h.name' }
|
||||||
|
|
||||||
|
fn test_person_str() {
|
||||||
|
p := Person{'Bilbo'}
|
||||||
|
println(p)
|
||||||
|
assert p.str() == 'Person: Bilbo'
|
||||||
|
}
|
Loading…
Reference in New Issue