[Chapel Merge] isXType, isXValue, and isX functions for all types

Branch: refs/heads/main
Revision: 2ed3f27
Author: stonea
Link: isXType, isXValue, and isX functions for all types by stonea · Pull Request #19856 · chapel-lang/chapel · GitHub
Log Message:

Merge pull request #19856 from stonea/allThreeTypeFlavors

isXType, isXValue, and isX functions for all types

This resolves #19361
I've also move type queries from other modules into the Types module as needed.
I've also moved the functions around a bit so they'll show up the doc in a consistent order.
I've run this through paratests and everything passes.
Manually inspecting the doc I see the "three flavors" for the following X in this order (first as isXType, then as isXValue, then as isX):

Primitive, Numeric, Integral, Float, Nothing, Bool, Int, Uint, Real, Imag, Complex, String, Bytes, Enum, Class, Record, Union, Tuple, Range, Domain, Array, Dmap, Sync, Single, Atomic

[Reviewed by @lydia-duncan]

Modified Files:
M modules/internal/ChapelArray.chpl

M modules/internal/ChapelBase.chpl
M modules/internal/ChapelDomain.chpl
M modules/internal/ChapelRange.chpl
M modules/internal/ChapelSyncvar.chpl
M modules/internal/ChapelTuple.chpl
M modules/standard/Types.chpl

Compare: https://github.com/chapel-lang/chapel/compare/dc1ce59a89a9...2ed3f27d430d