Untitled diff

Created Diff never expires
93 rimozioni
Linee
Totale
Rimosso
Parole
Totale
Rimosso
Per continuare a utilizzare questa funzione, aggiorna a
Diffchecker logo
Diffchecker Pro
469 linee
81 aggiunte
Linee
Totale
Aggiunto
Parole
Totale
Aggiunto
Per continuare a utilizzare questa funzione, aggiorna a
Diffchecker logo
Diffchecker Pro
458 linee
[doctest] run with "--help" for options
[doctest] run with "--help" for options


Starting ConstraintGenerator - visitModuleRoot
Starting ConstraintGenerator - visitModuleRoot


Visiting AstStat:
Visiting AstStat:
type function KeyOf(ty)
type function KeyOf(ty)
if not ty:is('table') then
if not ty:is('table') then
error('KeyOf only supports operating on table types!')
error('KeyOf only supports operating on table types!')
end
end


local components = {}
local components = {}
for key, _ in ty:properties() do
for key, _ in ty:properties() do
components.insert(key)
components.insert(key)
end
end


return types.unionof(table.unpack(components))
return types.unionof(table.unpack(components))
end
end




Visiting AstStat:
Visiting AstStat:
local PlayerData = {
local PlayerData = {
Coins = 0,
Coins = 0,
Level = 1,
Level = 1,
Exp = 0,
Exp = 0,
MaxExp = 100
MaxExp = 100
}
}


Constraint Add:
Constraint Add:
prim ("Coins" <: 'a <: string) as string
prim ("Coins" <: 'a <: string) as string


Constraint Add:
Constraint Add:
prim ("Level" <: 'a <: string) as string
prim ("Level" <: 'a <: string) as string


Constraint Add:
Constraint Add:
prim ("Exp" <: 'a <: string) as string
prim ("Exp" <: 'a <: string) as string


Constraint Add:
Constraint Add:
prim ("MaxExp" <: 'a <: string) as string
prim ("MaxExp" <: 'a <: string) as string


Constraint Add:
Constraint Add:
@name(*blocked-6999*) = PlayerData
@name(*blocked-6999*) = PlayerData




Visiting AstStat:
Visiting AstStat:
type Keys = KeyOf<typeof(PlayerData)>
type Keys = keyof<typeof(PlayerData)>


resolveType:
resolveType:
*blocked-6999*
*blocked-6999*


Constraint Add:
Constraint Add:
expand *pending-expansion-8*
expand *pending-expansion-8*


resolveType:
resolveType:
*pending-expansion-8*
*pending-expansion-8*


Constraint Add:
Constraint Add:
@name(*pending-expansion-8*) = Keys
@name(*pending-expansion-8*) = Keys




Visiting AstStat:
Visiting AstStat:
local function UpdateData(key: Keys, value)
local function UpdateData(key: Keys, value)
PlayerData[key] = value
PlayerData[key] = value
end
end


resolveType:
resolveType:
*pending-expansion-8*
*pending-expansion-8*




Visiting AstStat:
Visiting AstStat:
PlayerData[key] = value
PlayerData[key] = value


Constraint Add:
Constraint Add:
assignIndex *blocked-6999* *pending-expansion-8* 'a
assignIndex *blocked-6999* *pending-expansion-8* 'a


Constraint Add:
Constraint Add:
<...: a...
<...: a...


Constraint Add:
Constraint Add:
*blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...)
*blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...)




Visiting AstStat:
Visiting AstStat:
UpdateData('Coins', 2)
UpdateData('Coins', 2)


Constraint Add:
Constraint Add:
prim ("Coins" <: 'a <: string) as string
prim ("Coins" <: 'a <: string) as string


Constraint Add:
Constraint Add:
function_check *blocked-7004* ("Coins" <: 'a <: string), number
function_check *blocked-7004* ("Coins" <: 'a <: string), number


Constraint Add:
Constraint Add:
call *blocked-7004*( ("Coins" <: 'a <: string), number ) with { result = *blocked-tp-81* }
call *blocked-7004*( ("Coins" <: 'a <: string), number ) with { result = *blocked-tp-81* }


Constraint Add:
Constraint Add:
<...: a...
<...: a...


Constraint Add:
Constraint Add:
*blocked-7009* ~ gen (...any) -> (a...)
*blocked-7009* ~ gen (...any) -> (a...)


!! Block Pushed !!
!! Block Pushed !!
*blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...) depends on constraint assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} *pending-expansion-8* 'a
*blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...) depends on constraint assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} *pending-expansion-8* 'a
!! Block Pushed !!
!! Block Pushed !!
*blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...) depends on constraint <...: b...
*blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...) depends on constraint <...: b...
!! Block Pushed !!
!! Block Pushed !!
prim ("Coins" <: 'c <: string) as string depends on constraint function_check *blocked-7004* ("Coins" <: 'c <: string), number
prim ("Coins" <: 'c <: string) as string depends on constraint function_check *blocked-7004* ("Coins" <: 'c <: string), number
!! Block Pushed !!
!! Block Pushed !!
call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* } depends on constraint function_check *blocked-7004* ("Coins" <: 'c <: string), number
call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* } depends on constraint function_check *blocked-7004* ("Coins" <: 'c <: string), number
!! Block Pushed !!
!! Block Pushed !!
call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* } depends on constraint prim ("Coins" <: 'c <: string) as string
call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* } depends on constraint prim ("Coins" <: 'c <: string) as string
!! Block Pushed !!
!! Block Pushed !!
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint prim ("Coins" <: 'd <: string) as string
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint prim ("Coins" <: 'd <: string) as string
!! Block Pushed !!
!! Block Pushed !!
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint prim ("Level" <: 'f <: string) as string
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint prim ("Level" <: 'f <: string) as string
!! Block Pushed !!
!! Block Pushed !!
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint prim ("Exp" <: 'g <: string) as string
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint prim ("Exp" <: 'g <: string) as string
!! Block Pushed !!
!! Block Pushed !!
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint prim ("MaxExp" <: 'h <: string) as string
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint prim ("MaxExp" <: 'h <: string) as string
!! Block Pushed !!
!! Block Pushed !!
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint @name({| Coins: number, Exp: number, Level: number, MaxExp: number |}) = PlayerData
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint @name({| Coins: number, Exp: number, Level: number, MaxExp: number |}) = PlayerData
!! Block Pushed !!
!! Block Pushed !!
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint expand *pending-expansion-8*
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint expand *pending-expansion-8*
!! Block Pushed !!
!! Block Pushed !!
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint @name(*pending-expansion-8*) = Keys
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint @name(*pending-expansion-8*) = Keys
!! Block Pushed !!
!! Block Pushed !!
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} *pending-expansion-8* 'a
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} *pending-expansion-8* 'a
!! Block Pushed !!
!! Block Pushed !!
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint <...: b...
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint <...: b...
!! Block Pushed !!
!! Block Pushed !!
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint *blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...)
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint *blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...)
!! Block Pushed !!
!! Block Pushed !!
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint prim ("Coins" <: 'c <: string) as string
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint prim ("Coins" <: 'c <: string) as string
!! Block Pushed !!
!! Block Pushed !!
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint function_check *blocked-7004* ("Coins" <: 'c <: string), number
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint function_check *blocked-7004* ("Coins" <: 'c <: string), number
!! Block Pushed !!
!! Block Pushed !!
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
!! Block Pushed !!
!! Block Pushed !!
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint <...: e...
*blocked-7009* ~ gen (...any) -> (e...) depends on constraint <...: e...
Starting solver for module MainModule (MainModule)
Starting solver for module MainModule (MainModule)
constraints:
constraints:
0 prim ("Coins" <: 'd <: string) as string
0 prim ("Coins" <: 'd <: string) as string
0 prim ("Level" <: 'f <: string) as string
0 prim ("Level" <: 'f <: string) as string
0 prim ("Exp" <: 'g <: string) as string
0 prim ("Exp" <: 'g <: string) as string
0 prim ("MaxExp" <: 'h <: string) as string
0 prim ("MaxExp" <: 'h <: string) as string
0 @name({| Coins: number, Exp: number, Level: number, MaxExp: number |}) = PlayerData
0 @name({| Coins: number, Exp: number, Level: number, MaxExp: number |}) = PlayerData
0 expand *pending-expansion-8*
0 expand *pending-expansion-8*
0 @name(*pending-expansion-8*) = Keys
0 @name(*pending-expansion-8*) = Keys
0 assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} *pending-expansion-8* 'a
0 assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} *pending-expansion-8* 'a
0 <...: b...
0 <...: b...
2 *blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...)
2 *blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...)
1 prim ("Coins" <: 'c <: string) as string
1 prim ("Coins" <: 'c <: string) as string
0 function_check *blocked-7004* ("Coins" <: 'c <: string), number
0 function_check *blocked-7004* ("Coins" <: 'c <: string), number
2 call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
2 call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
0 <...: e...
0 <...: e...
14 *blocked-7009* ~ gen (...any) -> (e...)
14 *blocked-7009* ~ gen (...any) -> (e...)
Bindings:
Bindings:
PlayerData : {| Coins: number, Exp: number, Level: number, MaxExp: number |}
PlayerData : {| Coins: number, Exp: number, Level: number, MaxExp: number |}
UpdateData : *blocked-7004*
UpdateData : *blocked-7004*
value : 'a
value : 'a
key : *pending-expansion-8*
key : *pending-expansion-8*
UpdateData : (*pending-expansion-8*, 'a) -> (b...)
UpdateData : (*pending-expansion-8*, 'a) -> (b...)


tryDispatch:
tryDispatch:
prim ("Coins" <: 'd <: string) as string
prim ("Coins" <: 'd <: string) as string


Unblocking count=14 *blocked-7009* ~ gen (...any) -> (e...)
Unblocking count=14 *blocked-7009* ~ gen (...any) -> (e...)
Dispatched
Dispatched
prim ("Coins" <: 'd <: string) as string
prim ("Coins" <: 'd <: string) as string
constraints:
constraints:
0 prim ("Level" <: 'f <: string) as string
0 prim ("Level" <: 'f <: string) as string
0 prim ("Exp" <: 'g <: string) as string
0 prim ("Exp" <: 'g <: string) as string
0 prim ("MaxExp" <: 'h <: string) as string
0 prim ("MaxExp" <: 'h <: string) as string
0 @name({| Coins: number, Exp: number, Level: number, MaxExp: number |}) = PlayerData
0 @name({| Coins: number, Exp: number, Level: number, MaxExp: number |}) = PlayerData
0 expand *pending-expansion-8*
0 expand *pending-expansion-8*
0 @name(*pending-expansion-8*) = Keys
0 @name(*pending-expansion-8*) = Keys
0 assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} *pending-expansion-8* 'a
0 assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} *pending-expansion-8* 'a
0 <...: b...
0 <...: b...
2 *blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...)
2 *blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...)
1 prim ("Coins" <: 'c <: string) as string
1 prim ("Coins" <: 'c <: string) as string
0 function_check *blocked-7004* ("Coins" <: 'c <: string), number
0 function_check *blocked-7004* ("Coins" <: 'c <: string), number
2 call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
2 call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
0 <...: e...
0 <...: e...
13 *blocked-7009* ~ gen (...any) -> (e...)
13 *blocked-7009* ~ gen (...any) -> (e...)


tryDispatch:
tryDispatch:
prim ("Level" <: 'f <: string) as string
prim ("Level" <: 'f <: string) as string


Unblocking count=13 *blocked-7009* ~ gen (...any) -> (e...)
Unblocking count=13 *blocked-7009* ~ gen (...any) -> (e...)
Dispatched
Dispatched
prim ("Level" <: 'f <: string) as string
prim ("Level" <: 'f <: string) as string
constraints:
constraints:
0 prim ("Exp" <: 'g <: string) as string
0 prim ("Exp" <: 'g <: string) as string
0 prim ("MaxExp" <: 'h <: string) as string
0 prim ("MaxExp" <: 'h <: string) as string
0 @name({| Coins: number, Exp: number, Level: number, MaxExp: number |}) = PlayerData
0 @name({| Coins: number, Exp: number, Level: number, MaxExp: number |}) = PlayerData
0 expand *pending-expansion-8*
0 expand *pending-expansion-8*
0 @name(*pending-expansion-8*) = Keys
0 @name(*pending-expansion-8*) = Keys
0 assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} *pending-expansion-8* 'a
0 assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} *pending-expansion-8* 'a
0 <...: b...
0 <...: b...
2 *blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...)
2 *blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...)
1 prim ("Coins" <: 'c <: string) as string
1 prim ("Coins" <: 'c <: string) as string
0 function_check *blocked-7004* ("Coins" <: 'c <: string), number
0 function_check *blocked-7004* ("Coins" <: 'c <: string), number
2 call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
2 call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
0 <...: e...
0 <...: e...
12 *blocked-7009* ~ gen (...any) -> (e...)
12 *blocked-7009* ~ gen (...any) -> (e...)


tryDispatch:
tryDispatch:
prim ("Exp" <: 'g <: string) as string
prim ("Exp" <: 'g <: string) as string


Unblocking count=12 *blocked-7009* ~ gen (...any) -> (e...)
Unblocking count=12 *blocked-7009* ~ gen (...any) -> (e...)
Dispatched
Dispatched
prim ("Exp" <: 'g <: string) as string
prim ("Exp" <: 'g <: string) as string
constraints:
constraints:
0 prim ("MaxExp" <: 'h <: string) as string
0 prim ("MaxExp" <: 'h <: string) as string
0 @name({| Coins: number, Exp: number, Level: number, MaxExp: number |}) = PlayerData
0 @name({| Coins: number, Exp: number, Level: number, MaxExp: number |}) = PlayerData
0 expand *pending-expansion-8*
0 expand *pending-expansion-8*
0 @name(*pending-expansion-8*) = Keys
0 @name(*pending-expansion-8*) = Keys
0 assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} *pending-expansion-8* 'a
0 assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} *pending-expansion-8* 'a
0 <...: b...
0 <...: b...
2 *blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...)
2 *blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...)
1 prim ("Coins" <: 'c <: string) as string
1 prim ("Coins" <: 'c <: string) as string
0 function_check *blocked-7004* ("Coins" <: 'c <: string), number
0 function_check *blocked-7004* ("Coins" <: 'c <: string), number
2 call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
2 call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
0 <...: e...
0 <...: e...
11 *blocked-7009* ~ gen (...any) -> (e...)
11 *blocked-7009* ~ gen (...any) -> (e...)


tryDispatch:
tryDispatch:
prim ("MaxExp" <: 'h <: string) as string
prim ("MaxExp" <: 'h <: string) as string


Unblocking count=11 *blocked-7009* ~ gen (...any) -> (e...)
Unblocking count=11 *blocked-7009* ~ gen (...any) -> (e...)
Dispatched
Dispatched
prim ("MaxExp" <: 'h <: string) as string
prim ("MaxExp" <: 'h <: string) as string
constraints:
constraints:
0 @name({| Coins: number, Exp: number, Level: number, MaxExp: number |}) = PlayerData
0 @name({| Coins: number, Exp: number, Level: number, MaxExp: number |}) = PlayerData
0 expand *pending-expansion-8*
0 expand *pending-expansion-8*
0 @name(*pending-expansion-8*) = Keys
0 @name(*pending-expansion-8*) = Keys
0 assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} *pending-expansion-8* 'a
0 assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} *pending-expansion-8* 'a
0 <...: b...
0 <...: b...
2 *blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...)
2 *blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...)
1 prim ("Coins" <: 'c <: string) as string
1 prim ("Coins" <: 'c <: string) as string
0 function_check *blocked-7004* ("Coins" <: 'c <: string), number
0 function_check *blocked-7004* ("Coins" <: 'c <: string), number
2 call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
2 call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
0 <...: e...
0 <...: e...
10 *blocked-7009* ~ gen (...any) -> (e...)
10 *blocked-7009* ~ gen (...any) -> (e...)


tryDispatch:
tryDispatch:
@name({| Coins: number, Exp: number, Level: number, MaxExp: number |}) = PlayerData
@name({| Coins: number, Exp: number, Level: number, MaxExp: number |}) = PlayerData


Unblocking count=10 *blocked-7009* ~ gen (...any) -> (e...)
Unblocking count=10 *blocked-7009* ~ gen (...any) -> (e...)
Dispatched
Dispatched
@name({| Coins: number, Exp: number, Level: number, MaxExp: number |}) = PlayerData
@name({| Coins: number, Exp: number, Level: number, MaxExp: number |}) = PlayerData
constraints:
constraints:
0 expand *pending-expansion-8*
0 expand *pending-expansion-8*
0 @name(*pending-expansion-8*) = Keys
0 @name(*pending-expansion-8*) = Keys
0 assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} *pending-expansion-8* 'a
0 assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} *pending-expansion-8* 'a
0 <...: b...
0 <...: b...
2 *blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...)
2 *blocked-7004* ~ gen (*pending-expansion-8*, 'a) -> (b...)
1 prim ("Coins" <: 'c <: string) as string
1 prim ("Coins" <: 'c <: string) as string
0 function_check *blocked-7004* ("Coins" <: 'c <: string), number
0 function_check *blocked-7004* ("Coins" <: 'c <: string), number
2 call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
2 call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
0 <...: e...
0 <...: e...
9 *blocked-7009* ~ gen (...any) -> (e...)
9 *blocked-7009* ~ gen (...any) -> (e...)


tryDispatch:
tryDispatch:
expand *pending-expansion-8*
expand *pending-expansion-8*


Constraint Pushed!
Constraint Pushed!
reduce KeyOf<T0>
reduce keyof<T>
Constraint Pushed!
Constraint Pushed!
reduce KeyOf<PlayerData>
reduce keyof<PlayerData>


Dispatch not successful:
Dispatch not successful:
expand KeyOf<{| Coins: number, Exp: number, Level: number, MaxExp: number |}>
expand keyof<{| Coins: number, Exp: number, Level: number, MaxExp: number |}>




tryDispatch:
tryDispatch:
@name(KeyOf<{| Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
@name(keyof<{| Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys


!! Block Pushed !!
!! Block Pushed !!
@name(KeyOf<{| Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys depends on TypeId KeyOf<{| Coins: number, Exp: number, Level: number, MaxExp: number |}>
@name(keyof<{| Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys depends on TypeId keyof<{| Coins: number, Exp: number, Level: number, MaxExp: number |}>


Dispatch not successful:
Dispatch not successful:
@name(KeyOf<{| Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
@name(keyof<{| Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys




tryDispatch:
tryDispatch:
assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} KeyOf<{| Coins: number, Exp: number, Level: number, MaxExp: number |}> 'a
assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} keyof<{| Coins: number, Exp: number, Level: number, MaxExp: number |}> 'a


Unblocking count=2 *blocked-7004* ~ gen (t1, 'a) -> (b...) where t1 = KeyOf<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>
Unblocking count=9 *blocked-7009* ~ gen (...any) -> (e...)
Unblocking count=9 *blocked-7009* ~ gen (...any) -> (e...)
Unblocking count=1 @name(t1 where t1 = KeyOf<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
Unblocking count=2 *blocked-7004* ~ gen (t1, 'a) -> (b...) where t1 = keyof<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>
Unblocking count=1 @name(t1 where t1 = keyof<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
Dispatched
Dispatched
assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} KeyOf<{| Coins: number, Exp: number, Level: number, MaxExp: number |}> 'a
assignIndex {| Coins: number, Exp: number, Level: number, MaxExp: number |} keyof<{| Coins: number, Exp: number, Level: number, MaxExp: number |}> 'a
constraints:
constraints:
0 expand t1 where t1 = KeyOf<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 expand t1 where t1 = keyof<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 @name(t1 where t1 = KeyOf<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
0 @name(t1 where t1 = keyof<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
0 <...: b...
0 <...: b...
1 *blocked-7004* ~ gen (t1, 'a) -> (b...) where t1 = KeyOf<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>
1 *blocked-7004* ~ gen (t1, 'a) -> (b...) where t1 = keyof<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>
1 prim ("Coins" <: 'c <: string) as string
1 prim ("Coins" <: 'c <: string) as string
0 function_check *blocked-7004* ("Coins" <: 'c <: string), number
0 function_check *blocked-7004* ("Coins" <: 'c <: string), number
2 call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
2 call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
0 <...: e...
0 <...: e...
8 *blocked-7009* ~ gen (...any) -> (e...)
8 *blocked-7009* ~ gen (...any) -> (e...)
0 reduce KeyOf<T0>
0 reduce keyof<T>
0 reduce t1 where t1 = KeyOf<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 reduce t1 where t1 = keyof<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>


tryDispatch:
tryDispatch:
<...: b...
<...: b...


Unblocking count=1 *blocked-7004* ~ gen (t1, 'a) -> () where t1 = KeyOf<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>
Unblocking count=8 *blocked-7009* ~ gen (...any) -> (e...)
Unblocking count=8 *blocked-7009* ~ gen (...any) -> (e...)
Unblocking count=1 *blocked-7004* ~ gen (t1, 'a) -> () where t1 = keyof<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>
Dispatched
Dispatched
<...: b...
<...: b...
constraints:
constraints:
0 expand t1 where t1 = KeyOf<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 expand t1 where t1 = keyof<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 @name(t1 where t1 = KeyOf<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
0 @name(t1 where t1 = keyof<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
0 *blocked-7004* ~ gen (t1, 'a) -> () where t1 = KeyOf<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 *blocked-7004* ~ gen (t1, 'a) -> () where t1 = keyof<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>
1 prim ("Coins" <: 'c <: string) as string
1 prim ("Coins" <: 'c <: string) as string
0 function_check *blocked-7004* ("Coins" <: 'c <: string), number
0 function_check *blocked-7004* ("Coins" <: 'c <: string), number
2 call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
2 call *blocked-7004*( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
0 <...: e...
0 <...: e...
7 *blocked-7009* ~ gen (...any) -> (e...)
7 *blocked-7009* ~ gen (...any) -> (e...)
0 reduce KeyOf<T0>
0 reduce keyof<T>
0 reduce t1 where t1 = KeyOf<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 reduce t1 where t1 = keyof<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>


tryDispatch:
tryDispatch:
*blocked-7004* ~ gen (t1, 'a) -> () where t1 = KeyOf<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>
*blocked-7004* ~ gen (t1, 'a) -> () where t1 = keyof<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>


Unblocking count=7 *blocked-7009* ~ gen (...any) -> (e...)
Unblocking count=7 *blocked-7009* ~ gen (...any) -> (e...)
Dispatched
Dispatched
*blocked-7004* ~ gen (t1, 'a) -> () where t1 = KeyOf<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>
*blocked-7004* ~ gen (t1, 'a) -> () where t1 = keyof<{| [t1]: 'a, Coins: number, Exp: number, Level: number, MaxExp: number |}>
constraints:
constraints:
0 expand t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 expand t1 where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 @name(t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
0 @name(t1 where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
1 prim ("Coins" <: 'c <: string) as string
1 prim ("Coins" <: 'c <: string) as string
0 function_check (t1, unknown) -> () where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}> ("Coins" <: 'c <: string), number
0 function_check (t1, unknown) -> () where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}> ("Coins" <: 'c <: string), number
2 call (t1, unknown) -> () where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
2 call (t1, unknown) -> () where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
0 <...: e...
0 <...: e...
6 *blocked-7009* ~ gen (...any) -> (e...)
6 *blocked-7009* ~ gen (...any) -> (e...)
0 reduce KeyOf<T0>
0 reduce keyof<T>
0 reduce t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 reduce t1 where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>


Skipped prim ("Coins" <: 'a <: string) as string
Skipped prim ("Coins" <: 'a <: string) as string


tryDispatch:
tryDispatch:
function_check (t1, unknown) -> () where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}> ("Coins" <: 'c <: string), number
function_check (t1, unknown) -> () where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}> ("Coins" <: 'c <: string), number


Unblocking count=2 call (t1, unknown) -> () where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
Unblocking count=2 call (t1, unknown) -> () where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
Unblocking count=6 *blocked-7009* ~ gen (...any) -> (e...)
Unblocking count=1 prim ("Coins" <: 'c <: string) as string
Unblocking count=1 prim ("Coins" <: 'c <: string) as string
Unblocking count=6 *blocked-7009* ~ gen (...any) -> (e...)
Dispatched
Dispatched
function_check (t1, unknown) -> () where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}> ("Coins" <: 'c <: string), number
function_check (t1, unknown) -> () where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}> ("Coins" <: 'c <: string), number
constraints:
constraints:
0 expand t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 expand t1 where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 @name(t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
0 @name(t1 where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
0 prim ("Coins" <: 'c <: string) as string
0 prim ("Coins" <: 'c <: string) as string
1 call (t1, unknown) -> () where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
1 call (t1, unknown) -> () where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
0 <...: e...
0 <...: e...
5 *blocked-7009* ~ gen (...any) -> (e...)
5 *blocked-7009* ~ gen (...any) -> (e...)
0 reduce KeyOf<T0>
0 reduce keyof<T>
0 reduce t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 reduce t1 where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>


Skipped call (KeyOf<PlayerData>, unknown) -> ()( ("Coins" <: 'a <: string), number ) with { result = *blocked-tp-81* }
Skipped call (keyof<PlayerData>, unknown) -> ()( ("Coins" <: 'a <: string), number ) with { result = *blocked-tp-81* }


tryDispatch:
tryDispatch:
<...: e...
<...: e...


Unblocking count=5 *blocked-7009* ~ gen (...any) -> ()
Unblocking count=5 *blocked-7009* ~ gen (...any) -> ()
Dispatched
Dispatched
<...: e...
<...: e...
constraints:
constraints:
0 expand t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 expand t1 where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 @name(t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
0 @name(t1 where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
0 prim ("Coins" <: 'c <: string) as string
0 prim ("Coins" <: 'c <: string) as string
1 call (t1, unknown) -> () where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
1 call (t1, unknown) -> () where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
4 *blocked-7009* ~ gen (...any) -> ()
4 *blocked-7009* ~ gen (...any) -> ()
0 reduce KeyOf<T0>
0 reduce keyof<T>
0 reduce t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 reduce t1 where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>


Skipped *blocked-7009* ~ gen (...any) -> ()
Skipped *blocked-7009* ~ gen (...any) -> ()


tryDispatch:
tryDispatch:
reduce KeyOf<T0>
reduce keyof<T>


Dispatched
Dispatched
reduce KeyOf<T0>
reduce keyof<T>
constraints:
constraints:
0 expand t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 expand t1 where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 @name(t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
0 @name(t1 where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
0 prim ("Coins" <: 'c <: string) as string
0 prim ("Coins" <: 'c <: string) as string
1 call (t1, unknown) -> () where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
1 call (t1, unknown) -> () where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
4 *blocked-7009* ~ gen (...any) -> ()
4 *blocked-7009* ~ gen (...any) -> ()
0 reduce t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 reduce t1 where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>


tryDispatch:
tryDispatch:
reduce t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
reduce t1 where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>


Dispatched
Dispatched
reduce t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
reduce t1 where t1 = keyof<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
constraints:
constraints:
0 expand t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
0 expand "Coins" | "Exp" | "Level" | "MaxExp"
0 @name(t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
0 @name("Coins" | "Exp" | "Level" | "MaxExp") = Keys
0 prim ("Coins" <: 'c <: string) as string
0 prim ("Coins" <: 'c <: string) as string
1 call (t1, unknown) -> () where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
1 call ("Coins" | "Exp" | "Level" | "MaxExp", unknown) -> ()( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
4 *blocked-7009* ~ gen (...any) -> ()
4 *blocked-7009* ~ gen (...any) -> ()


tryDispatch:
tryDispatch:
expand t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
expand "Coins" | "Exp" | "Level" | "MaxExp"


Unblocking count=4 *blocked-7009* ~ gen (...any) -> ()
Unblocking count=4 *blocked-7009* ~ gen (...any) -> ()
Dispatched
Dispatched
expand t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>
expand "Coins" | "Exp" | "Level" | "MaxExp"
constraints:
constraints:
0 @name(t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
0 @name("Coins" | "Exp" | "Level" | "MaxExp") = Keys
0 prim ("Coins" <: 'c <: string) as string
0 prim ("Coins" <: 'c <: string) as string
1 call (t1, unknown) -> () where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
1 call ("Coins" | "Exp" | "Level" | "MaxExp", unknown) -> ()( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
3 *blocked-7009* ~ gen (...any) -> ()
3 *blocked-7009* ~ gen (...any) -> ()


tryDispatch:
tryDispatch:
@name(t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
@name("Coins" | "Exp" | "Level" | "MaxExp") = Keys


Unblocking count=3 *blocked-7009* ~ gen (...any) -> ()
Unblocking count=3 *blocked-7009* ~ gen (...any) -> ()
Dispatched
Dispatched
@name(t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>) = Keys
@name("Coins" | "Exp" | "Level" | "MaxExp") = Keys
constraints:
constraints:
0 prim ("Coins" <: 'c <: string) as string
0 prim ("Coins" <: 'c <: string) as string
1 call (t1, unknown) -> () where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
1 call ("Coins" | "Exp" | "Level" | "MaxExp", unknown) -> ()( ("Coins" <: 'c <: string), number ) with { result = *blocked-tp-81* }
2 *blocked-7009* ~ gen (...any) -> ()
2 *blocked-7009* ~ gen (...any) -> ()


tryDispatch:
tryDispatch:
prim ("Coins" <: 'c <: string) as string
prim ("Coins" <: 'c <: string) as string


Unblocking count=1 call (t1, unknown) -> () where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>( string, number ) with { result = *blocked-tp-81* }
Unblocking count=1 call ("Coins" | "Exp" | "Level" | "MaxExp", unknown) -> ()( string, number ) with { result = *blocked-tp-81* }
Unblocking count=2 *blocked-7009* ~ gen (...any) -> ()
Unblocking count=2 *blocked-7009* ~ gen (...any) -> ()
Dispatched
Dispatched
prim ("Coins" <: 'c <: string) as string
prim ("Coins" <: 'c <: string) as string
constraints:
constraints:
0 call (t1, unknown) -> () where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>( string, number ) with { result = *blocked-tp-81* }
0 call ("Coins" | "Exp" | "Level" | "MaxExp", unknown) -> ()( string, number ) with { result = *blocked-tp-81* }
1 *blocked-7009* ~ gen (...any) -> ()
1 *blocked-7009* ~ gen (...any) -> ()


tryDispatch:
tryDispatch:
call (t1, unknown) -> () where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>( string, number ) with { result = *blocked-tp-81* }
call ("Coins" | "Exp" | "Level" | "MaxExp", unknown) -> ()( string, number ) with { result = *blocked-tp-81* }


Constraint Pushed!
reduce KeyOf<PlayerData>
Unblocking count=1 *blocked-7009* ~ gen (...any) -> ()
Unblocking count=1 *blocked-7009* ~ gen (...any) -> ()
Dispatched
Dispatched
call (t1, unknown) -> () where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>( string, number ) with { result = *blocked-tp-81* }
call ("Coins" | "Exp" | "Level" | "MaxExp", unknown) -> ()( string, number ) with { result = *blocked-tp-81* }
constraints:
constraints:
0 *blocked-7009* ~ gen (...any) -> ()
0 *blocked-7009* ~ gen (...any) -> ()
0 reduce t1 where t1 = KeyOf<{| [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number |}>


tryDispatch:
tryDispatch:
*blocked-7009* ~ gen (...any) -> ()
*blocked-7009* ~ gen (...any) -> ()


Dispatched
Dispatched
*blocked-7009* ~ gen (...any) -> ()
*blocked-7009* ~ gen (...any) -> ()
constraints:
constraints:
0 reduce t1 where t1 = KeyOf<{ [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number }>
PlayerData : { ["Coins" | "Exp" | "Level" | "MaxExp"]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number }

UpdateData : ("Coins" | "Exp" | "Level" | "MaxExp", unknown) -> ()
tryDispatch:
reduce t1 where t1 = KeyOf<{ [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number }>

Dispatched
reduce t1 where t1 = KeyOf<{ [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number }>
constraints:
PlayerData : t1 where t1 = { [KeyOf<t1>]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number }
UpdateData : (t1, unknown) -> () where t1 = KeyOf<{ [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number }>
value : unknown
value : unknown
key : t1 where t1 = KeyOf<{ [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number }>
key : "Coins" | "Exp" | "Level" | "MaxExp"
UpdateData : (t1, unknown) -> () where t1 = KeyOf<{ [t1]: unknown, Coins: number, Exp: number, Level: number, MaxExp: number }>
UpdateData : ("Coins" | "Exp" | "Level" | "MaxExp", unknown) -> ()