Disallow qualified types in base class list #16882
Open
+99
−25
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, it is allowed that a base class is a qualified type.
The qualifier is ignored. For that reason, this change makes it a parse error, so no code fools a reader into thinking the
const
does something. Semantics are unaffected, i.e. if atypeof
type is used which ends up being a qualified class type, the unqualified version of that class type remains a base class (no error).The assumption of this PR is that no-one actually has qualified base classes in their code base (because the qualifier does nothing but mislead the reader).
It is in the interest of the Primary Type Syntax DIP and possibly future tuple DIPs to avoid parsing ambiguities. This can be done by requiring the base class list to be lexically comprised of new-terminology basic types. Refer to the accompanying spec PR for details.