ignore visibility for abstract OpAssignOp operations (closes #2810)
do not lie about exhaustive patterns (closes #2809)