diff --git a/vlib/v/fmt/fmt.v b/vlib/v/fmt/fmt.v index 324cc79dde..e3b05e96eb 100644 --- a/vlib/v/fmt/fmt.v +++ b/vlib/v/fmt/fmt.v @@ -1828,7 +1828,12 @@ pub fn (mut f Fmt) call_expr(node ast.CallExpr) { name := f.short_module(node.name) f.mark_import_as_used(name) if node.name.contains('__static__') { - f.write(name.replace('__static__', '.').capitalize()) + if name.contains('.') { + indx := name.index('.') or { -1 } + 1 + f.write(name[0..indx] + name[indx..].replace('__static__', '.').capitalize()) + } else { + f.write(name.replace('__static__', '.').capitalize()) + } } else { f.write(name) } diff --git a/vlib/v/fmt/tests/static_methods_keep.vv b/vlib/v/fmt/tests/static_methods_keep.vv new file mode 100644 index 0000000000..47b4522796 --- /dev/null +++ b/vlib/v/fmt/tests/static_methods_keep.vv @@ -0,0 +1,7 @@ +module module_fmt + +import mod + +fn main() { + mod.Foo.new() +}