Re: [whatwg/webidl] Propagate a type's extended attributes to a nullable inner type (PR #1624)

nicolo-ribaudo left a comment (whatwg/webidl#1624)

> - For each of the four attributes there are two kinds of sentence: a "must not be associated with" restriction, and an "appears on X, it creates a new IDL type…" definition. The PR edits only the former. The clean fix is to change "appears on" → "is associated with" in those six sentences, which also repairs the same staleness for the existing union propagation.

I think this is fine, actually. Those sentences (e.g. second paragraph of https://webidl.spec.whatwg.org/#AllowResizable) are descriptive; the actual normative behavior is given by _associated with_ which already covers all cases.

If we wanted to make it more precise it would probably need to use _is associated with_ rather than _appears on_, but that's a pre-existing issue as it covers every case of extended attributes moving from a type to a nested one (e.g. with type unions). Would you want it here or in a separate editorial PR?

> - There is no NullableType production. Null : "?" | ε (index.bs:5845) hangs off DistinguishableType : PrimitiveType Null (index.bs:5770). So in long?, the only type node is the whole DistinguishableType; the inner long is a PrimitiveType
— not a Type, SingleType, or DistinguishableType. It exists only as the §6187 concept.

I agree with this observation, but do you think it implies some concrete change for this PR?

> - UnionMemberType : ExtendedAttributeList DistinguishableType (index.bs:5758) is not a TypeWithExtendedAttributes production, and no step consumes it. Step 3 only pushes down from the union. So [AllowShared] ArrayBufferView written as a
union member has nothing associating the attribute with it — which is what Web IDL's own AllowSharedBufferSource typedef does at index.bs:15087. That's a hole in the standard today, in the algorithm this PR edits.

This is a pre-existing bug on `main`, right? Extended attributes are meant to be put on the whole union (and then they are associated with its members) rather than on the members themselves.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/webidl/pull/1624#issuecomment-5371516799
You are receiving this because you are subscribed to this thread.

Message ID: <whatwg/webidl/pull/1624/c5371516799@github.com>

Received on Friday, 21 August 2026 14:54:51 UTC