this may be computed even if not needed, how about pushing it down after the first if?

```C++
if (t1) 
{
    ...
}
else if (Tuple *u1 = isTuple(o1))
{
    return ...
}
return 0;
```