There are a few issues with the constraints removed in this edit:
I think that "innermost scoping unit" here is a bit too vague, especially because...
This paper does not define \<deferred-arg-list>, since that comes from papers 2 & 3. There should at least be a note about that.
I think all of these need to constrain themselves to \<deferred-arg>s appearing in their declaration statements, like the constraint for deferred procedures. For example, a \<deferred-const> can appear in an expression context without it appearing in the \<deferred-arg-list> of the innermost scoping unit, if it's host associated. It's only when the \<deferred-arg> appears in a declaration context (including a REQUIRES statement) that it must be in the \<deferred-arg-list>.
Given that, this PR contains my suggested new wording. I think we can combine all of these into a single constraint, plus a note.
The new constraint wording is loosely based on a similar constraint from the F2023 standard:
C746 A \<type-param-name> in a \<type-param-def-stmt> in a \<derived-type-def> shall be one of the \<type-param-name>s in the \<derived-type-stmt> of that \<derived-type-def>.
But I couldn't find any perfectly analogous existing constraint that I could directly borrow wording from.
If we choose not to combine all 4 of these constraints into 1, we should at least combine the last two, as: "Each \<deferred-type> or \<deferred-class> shall appear...", since we do that in the constraint right above those which deals with the EXTENDS attribute.
There are a few issues with the constraints removed in this edit:
Given that, this PR contains my suggested new wording. I think we can combine all of these into a single constraint, plus a note.
The new constraint wording is loosely based on a similar constraint from the F2023 standard:
But I couldn't find any perfectly analogous existing constraint that I could directly borrow wording from.
If we choose not to combine all 4 of these constraints into 1, we should at least combine the last two, as: "Each \<deferred-type> or \<deferred-class> shall appear...", since we do that in the constraint right above those which deals with the EXTENDS attribute.