You may be right... While the above construct is valid, it's not the target of this assertion...

My concern was/is that if I'm doing a convention-based verification of a many types (e.g. all types in an assembly), a class like `Qux` above would produce a false positive.

However, if *ReadOnlyPropertyAssertion* (for lack of a better name) accepts the above construct, it may devalue the assertion too much. So if a class like `Qux` exists, the user would have to filter out that class (or just the property)...

So, it sounds like you should keep this exception in place.