fmt: fix 'import time as t', then using t.sleep_ms() .
parent
104359365f
commit
4af4a8f2ff
|
@ -30,6 +30,7 @@ pub mut:
|
||||||
import_pos int // position of the imports in the resulting string for later autoimports insertion
|
import_pos int // position of the imports in the resulting string for later autoimports insertion
|
||||||
used_imports []string // to remove unused imports
|
used_imports []string // to remove unused imports
|
||||||
is_debug bool
|
is_debug bool
|
||||||
|
mod2alias map[string]string // for `import time as t`, will contain: 'time'=>'t'
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn fmt(file ast.File, table &table.Table, is_debug bool) string {
|
pub fn fmt(file ast.File, table &table.Table, is_debug bool) string {
|
||||||
|
@ -41,6 +42,9 @@ pub fn fmt(file ast.File, table &table.Table, is_debug bool) string {
|
||||||
file: file
|
file: file
|
||||||
is_debug: is_debug
|
is_debug: is_debug
|
||||||
}
|
}
|
||||||
|
for imp in file.imports {
|
||||||
|
f.mod2alias[imp.mod.all_after_last('.')] = imp.alias
|
||||||
|
}
|
||||||
f.cur_mod = 'main'
|
f.cur_mod = 'main'
|
||||||
for stmt in file.stmts {
|
for stmt in file.stmts {
|
||||||
if stmt is ast.Import {
|
if stmt is ast.Import {
|
||||||
|
@ -542,7 +546,7 @@ pub fn (mut f Fmt) expr(node ast.Expr) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ast.EnumVal {
|
ast.EnumVal {
|
||||||
name := short_module(it.enum_name)
|
name := f.short_module(it.enum_name)
|
||||||
f.write(name + '.' + it.val)
|
f.write(name + '.' + it.val)
|
||||||
}
|
}
|
||||||
ast.FloatLiteral {
|
ast.FloatLiteral {
|
||||||
|
@ -555,7 +559,7 @@ pub fn (mut f Fmt) expr(node ast.Expr) {
|
||||||
if it.kind == .blank_ident {
|
if it.kind == .blank_ident {
|
||||||
f.write('_')
|
f.write('_')
|
||||||
} else {
|
} else {
|
||||||
name := short_module(it.name)
|
name := f.short_module(it.name)
|
||||||
// f.write('<$it.name => $name>')
|
// f.write('<$it.name => $name>')
|
||||||
f.write(name)
|
f.write(name)
|
||||||
if name.contains('.') {
|
if name.contains('.') {
|
||||||
|
@ -777,7 +781,7 @@ pub fn (mut f Fmt) fn_decl(node ast.FnDecl) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// foo.bar.fn() => bar.fn()
|
// foo.bar.fn() => bar.fn()
|
||||||
pub fn short_module(name string) string {
|
pub fn (mut f Fmt) short_module(name string) string {
|
||||||
if !name.contains('.') {
|
if !name.contains('.') {
|
||||||
return name
|
return name
|
||||||
}
|
}
|
||||||
|
@ -785,7 +789,10 @@ pub fn short_module(name string) string {
|
||||||
if vals.len < 2 {
|
if vals.len < 2 {
|
||||||
return name
|
return name
|
||||||
}
|
}
|
||||||
return vals[vals.len - 2] + '.' + vals[vals.len - 1]
|
mname := vals[vals.len - 2]
|
||||||
|
symname := vals[vals.len - 1]
|
||||||
|
aname := f.mod2alias[mname]
|
||||||
|
return '${aname}.${symname}'
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (mut f Fmt) if_expr(it ast.IfExpr) {
|
pub fn (mut f Fmt) if_expr(it ast.IfExpr) {
|
||||||
|
@ -847,7 +854,7 @@ pub fn (mut f Fmt) call_expr(node ast.CallExpr) {
|
||||||
f.write(')')
|
f.write(')')
|
||||||
f.or_expr(node.or_block)
|
f.or_expr(node.or_block)
|
||||||
} else {
|
} else {
|
||||||
name := short_module(node.name)
|
name := f.short_module(node.name)
|
||||||
f.mark_module_as_used(name)
|
f.mark_module_as_used(name)
|
||||||
f.write('${name}')
|
f.write('${name}')
|
||||||
if node.generic_type != 0 && node.generic_type != table.void_type {
|
if node.generic_type != 0 && node.generic_type != table.void_type {
|
||||||
|
@ -1065,7 +1072,7 @@ pub fn (mut f Fmt) array_init(it ast.ArrayInit) {
|
||||||
pub fn (mut f Fmt) struct_init(it ast.StructInit) {
|
pub fn (mut f Fmt) struct_init(it ast.StructInit) {
|
||||||
type_sym := f.table.get_type_symbol(it.typ)
|
type_sym := f.table.get_type_symbol(it.typ)
|
||||||
// f.write('<old name: $type_sym.name>')
|
// f.write('<old name: $type_sym.name>')
|
||||||
mut name := short_module(type_sym.name).replace(f.cur_mod + '.', '') // TODO f.type_to_str?
|
mut name := f.short_module(type_sym.name).replace(f.cur_mod + '.', '') // TODO f.type_to_str?
|
||||||
if name == 'void' {
|
if name == 'void' {
|
||||||
name = ''
|
name = ''
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,4 +12,6 @@ fn main() {
|
||||||
x := []int{len: 10, cap: 100, init: 1}
|
x := []int{len: 10, cap: 100, init: 1}
|
||||||
_ := expected_flags
|
_ := expected_flags
|
||||||
buf := [100]byte
|
buf := [100]byte
|
||||||
|
println(x)
|
||||||
|
println(buf)
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
import os
|
||||||
|
import time as t
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
println('start')
|
||||||
|
t.sleep_ms(500)
|
||||||
|
println('end')
|
||||||
|
os.system('date')
|
||||||
|
}
|
Loading…
Reference in New Issue