This bug absolutely destroys any operations with automatic metatables type define in every generic functions. Every time i need do it myself to fix it by :: typeof(data) & generic_t0
local t0 = {a=true}
local t1 = {s=''}
local a = setmetatable({}, {__index={}::typeof(t0) & typeof(t1)})
local c = a.a -- type does not have a field a, but typecheck also does detect this is a boolean
local b = a.s -- type does not have a field s, but typecheck also does detect this is a string