Very good point. At the very least, it should probably be limited to cases where the class in the guard expression is a derived class of the parent. Then there can't be a conflict, since those attributes must already be defined by the parent.