Description
c.f. https://drafts.css-houdini.org/css-typed-om-1/#numeric-typing
Each CSSNumericValue has an associated type, which is a map of base types to integers (denoting the exponent of each type, so a 2, such as from calc(1px * 1em), is «[ "length" → 2 ]»), and an associated percent hint (indicating that the type actually holds a percentage, but that percentage will eventually resolve to the hinted base type, and so has been replaced with it in the type).
By my reading, this means we have a:
struct CSSNumericValue {
…
Map[BaseType, Integer] types,
Optional[BaseType] percent_hint,
}
Yet variously below we have things like:
If both type1 and type2 have non-null percent hints with different values
… which implies that the percent hint is part of the type, not associated with the CSSNumericValue. Unless "type1" and "type2" in this setting are the data associated with the CSSNumericValue, and not the "type" defined above?