parent
86719c5de9
commit
1028f0b59e
|
@ -24,7 +24,7 @@ pub interface JS.Response {
|
||||||
|
|
||||||
pub fn fetch(input string, init map[string]JS.Any) promise.Promise<JS.Response, JS.String> {
|
pub fn fetch(input string, init map[string]JS.Any) promise.Promise<JS.Response, JS.String> {
|
||||||
p_init := JS.Any(voidptr(0))
|
p_init := JS.Any(voidptr(0))
|
||||||
p := promise.Promise<JS.Response,String>{p_init}
|
p := promise.Promise<JS.Response, String>{p_init}
|
||||||
|
|
||||||
#let obj = {}; for (let [key,val] of init.map) { obj[key] = val; }
|
#let obj = {}; for (let [key,val] of init.map) { obj[key] = val; }
|
||||||
#p.promise = fetch(input.str,obj);
|
#p.promise = fetch(input.str,obj);
|
||||||
|
|
|
@ -213,7 +213,7 @@ pub fn (mut f Fmt) short_module(name string) string {
|
||||||
generic_levels := name.trim_suffix('>').split('<')
|
generic_levels := name.trim_suffix('>').split('<')
|
||||||
mut res := '${f.short_module(generic_levels[0])}'
|
mut res := '${f.short_module(generic_levels[0])}'
|
||||||
for i in 1 .. generic_levels.len {
|
for i in 1 .. generic_levels.len {
|
||||||
genshorts := generic_levels[i].split(',').map(f.short_module(it)).join(',')
|
genshorts := generic_levels[i].split(', ').map(f.short_module(it)).join(', ')
|
||||||
res += '<$genshorts'
|
res += '<$genshorts'
|
||||||
}
|
}
|
||||||
res += '>'
|
res += '>'
|
||||||
|
|
|
@ -36,7 +36,7 @@ fn main() {
|
||||||
println(x.model)
|
println(x.model)
|
||||||
println(x.permission)
|
println(x.permission)
|
||||||
//
|
//
|
||||||
mut a := Repo<User,Permission>{
|
mut a := Repo<User, Permission>{
|
||||||
model: User{
|
model: User{
|
||||||
name: 'joe'
|
name: 'joe'
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
import v.fmt.tests.obj
|
||||||
|
|
||||||
|
struct GenericStruct<A, B> {
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
_ := GenericStruct<obj.Test, obj.Test>{}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
module obj
|
||||||
|
|
||||||
|
pub struct Test {}
|
|
@ -306,13 +306,13 @@ pub mut:
|
||||||
// return Repo<T,Permission>{db: db}
|
// return Repo<T,Permission>{db: db}
|
||||||
// }
|
// }
|
||||||
fn test_generic_struct() {
|
fn test_generic_struct() {
|
||||||
mut a := Repo<User,Permission>{
|
mut a := Repo<User, Permission>{
|
||||||
model: User{
|
model: User{
|
||||||
name: 'joe'
|
name: 'joe'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
assert a.model.name == 'joe'
|
assert a.model.name == 'joe'
|
||||||
mut b := Repo<Group,Permission>{
|
mut b := Repo<Group, Permission>{
|
||||||
permission: Permission{
|
permission: Permission{
|
||||||
name: 'superuser'
|
name: 'superuser'
|
||||||
}
|
}
|
||||||
|
@ -573,8 +573,8 @@ 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_>{
|
||||||
foo: Empty_{}
|
foo: Empty_{}
|
||||||
|
|
|
@ -321,7 +321,7 @@ struct MultiGenericStruct<T, X> {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn test_multi_generic_struct() {
|
fn test_multi_generic_struct() {
|
||||||
x := MultiGenericStruct<TestStruct,TestStruct>{}
|
x := MultiGenericStruct<TestStruct, TestStruct>{}
|
||||||
assert '$x' == 'MultiGenericStruct<TestStruct, TestStruct>{\n t: TestStruct{\n x: 0\n }\n x: TestStruct{\n x: 0\n }\n}'
|
assert '$x' == 'MultiGenericStruct<TestStruct, TestStruct>{\n t: TestStruct{\n x: 0\n }\n x: TestStruct{\n x: 0\n }\n}'
|
||||||
assert x.str() == 'MultiGenericStruct<TestStruct, TestStruct>{\n t: TestStruct{\n x: 0\n }\n x: TestStruct{\n x: 0\n }\n}'
|
assert x.str() == 'MultiGenericStruct<TestStruct, TestStruct>{\n t: TestStruct{\n x: 0\n }\n x: TestStruct{\n x: 0\n }\n}'
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue