unbounded resource array is allowed in HLSL.
Here is an example.
RWBuffer<float> B[];
float main(uint ID : BufID) : SV_Target {
return B[ID][0]; }
Type::isHLSLResourceType is added to check HLSLResource.
HLSLResourceAttr is added on the forward decl so it is ready when check incomplete array type.