mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
fmt: fix bug that adds unnecessary module name to generic types (#12758)
This commit is contained in:
parent
d88e67a5ec
commit
7379488cee
@ -1054,16 +1054,15 @@ pub fn (t &Table) type_to_str_using_aliases(typ Type, import_aliases map[string]
|
|||||||
}
|
}
|
||||||
.generic_inst {
|
.generic_inst {
|
||||||
info := sym.info as GenericInst
|
info := sym.info as GenericInst
|
||||||
res = sym.name.all_before('<')
|
res = t.shorten_user_defined_typenames(sym.name.all_before('<'), import_aliases)
|
||||||
res += '<'
|
res += '<'
|
||||||
for i, ctyp in info.concrete_types {
|
for i, ctyp in info.concrete_types {
|
||||||
res += t.get_type_symbol(ctyp).name
|
res += t.type_to_str_using_aliases(ctyp, import_aliases)
|
||||||
if i != info.concrete_types.len - 1 {
|
if i != info.concrete_types.len - 1 {
|
||||||
res += ', '
|
res += ', '
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
res += '>'
|
res += '>'
|
||||||
res = t.shorten_user_defined_typenames(res, import_aliases)
|
|
||||||
}
|
}
|
||||||
.void {
|
.void {
|
||||||
if typ.has_flag(.optional) {
|
if typ.has_flag(.optional) {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import mymod { ImpNode }
|
import mymod { Data, ImpNode }
|
||||||
|
|
||||||
fn foobar_mymod<U>(inode ImpNode<U>) ImpNode<U> {
|
fn foobar_mymod<U>(inode ImpNode<U>) ImpNode<U> {
|
||||||
return ImpNode{}
|
return ImpNode{}
|
||||||
@ -14,7 +14,9 @@ fn (_ Foo) simple<T>() T {
|
|||||||
return T{}
|
return T{}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct GenericStruct<A, B> {}
|
struct GenericStruct<A, B> {
|
||||||
|
v Data<Data<A>, B>
|
||||||
|
}
|
||||||
|
|
||||||
fn proper_generics(gs GenericStruct<A, B>) GenericStruct<A, B> {
|
fn proper_generics(gs GenericStruct<A, B>) GenericStruct<A, B> {
|
||||||
return gs
|
return gs
|
||||||
|
@ -573,7 +573,7 @@ fn test_generic_detection() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// this final case challenges your scanner :-)
|
// this final case challenges your scanner :-)
|
||||||
assert boring_function<TandU<TandU<int,MultiLevel<Empty_>>, map[string][]int>>(TandU<TandU<int,MultiLevel<Empty_>>, map[string][]int>{
|
assert boring_function<TandU<TandU<int, MultiLevel<Empty_>>, map[string][]int>>(TandU<TandU<int,MultiLevel<Empty_>>, map[string][]int>{
|
||||||
t: TandU<int,MultiLevel<Empty_>>{
|
t: TandU<int,MultiLevel<Empty_>>{
|
||||||
t: 20
|
t: 20
|
||||||
u: MultiLevel<Empty_>{
|
u: MultiLevel<Empty_>{
|
||||||
|
Loading…
Reference in New Issue
Block a user