`f`

is a function that has quite a few methods and I use it somewhere deep in the call stack. I have two very similar methods, `g`

, in one of them the return type of `f`

is always inferred correctly for all `x`

, and in the other one the return type of `f`

is `Any`

. Something like:

```
function g(x, y, z)
fx = f(x) # inferred as ::Any
h(fx, y, z)
end
function g(x, y)
fx = f(x) # inferred correctly
h(fx, y)
end
```

What are the criteria for `julia`

to give up on type inference?