improving the implementation of isWeakAssignable() to con sider some borderline cases