While working on https://github.com/AssemblyScript/assemblyscript/pull/1129 I noticed that the rules in place for logical && and || are weird. ```ts if (someObject && someInt) // cannot convert RHS integer to LHS object if (someObject && someBool) // cannot convert RHS boolean to LHS object var foo = aFooNullable || bFoo; // cannot convert RHS non-nullable to LHS nullable ``` Boolean context is especially strange. Pinning here so we don't forget.