April 05, 2020
I try to improve one compiler error message: https://github.com/dlang/dmd/pull/10996 and I have a question about some wording.

Official doc for __traits(allMembers, TraitsArguments) says that it takes a single argument, which must evaluate to either a type or an expression of type - https://dlang.org/spec/traits.html#allMembers
Is `expression of type` an appropriate wording?

Also if one pass float to `__traits(allMembers, float)` the compiler says that float has no members. But float can not have members at all. `struct Foo{}` has no member, but it can in general. Should't `float has no members` be replaced by `float can not have members` or there is no difference here?