Inferred generic not fully replacing unbounded free type in function parameters

Here;

local function findi(t, v)
	for i = 1, #t do
		if t[i] == v then
			return i
		end
	end

	return -1
end

It is inferred as the following:

image

Expected behavior

I would expect findi to be inferred as something like: <a>(t: {a}, v: a): number instead, where v is a (the inferred generic) and not unknown.

1 Like