spv.functionNestedOpaque.vert
error: SPIRV-Tools Validation Errors
error: UniformConstant OpVariable <id> '36[si] 'has illegal type.
From Vulkan spec, section 14.5.2:
Variables identified with the UniformConstant storage class are used only as handles to refer to opaque resources. Such variables must be typed as OpTypeImage, OpTypeSampler, OpTypeSampledImage, OpTypeAccelerationStructureNV, or an array of one of these types.
  %si = OpVariable %_ptr_UniformConstant_S UniformConstant

// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 39

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main"
                              Source GLSL 450
                              Name 4  "main"
                              Name 12  "foo(s21;"
                              Name 11  "t"
                              Name 14  "S"
                              MemberName 14(S) 0  "s"
                              Name 18  "barc(struct-S-s211;"
                              Name 17  "p"
                              Name 21  "bar(struct-S-s211;"
                              Name 20  "p"
                              Name 36  "si"
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeImage 6(float) 2D sampled format:Unknown
               8:             TypeSampledImage 7
               9:             TypePointer UniformConstant 8
              10:             TypeFunction 2 9(ptr)
           14(S):             TypeStruct 8
              15:             TypePointer UniformConstant 14(S)
              16:             TypeFunction 2 15(ptr)
              24:             TypeVector 6(float) 2
              25:    6(float) Constant 1056964608
              26:   24(fvec2) ConstantComposite 25 25
              27:             TypeVector 6(float) 4
              28:    6(float) Constant 0
              30:             TypeInt 32 1
              31:     30(int) Constant 0
          36(si):     15(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
              37:           2 FunctionCall 18(barc(struct-S-s211;) 36(si)
              38:           2 FunctionCall 21(bar(struct-S-s211;) 36(si)
                              Return
                              FunctionEnd
    12(foo(s21;):           2 Function None 10
           11(t):      9(ptr) FunctionParameter
              13:             Label
              23:           8 Load 11(t)
              29:   27(fvec4) ImageSampleExplicitLod 23 26 Lod 28
                              Return
                              FunctionEnd
18(barc(struct-S-s211;):           2 Function None 16
           17(p):     15(ptr) FunctionParameter
              19:             Label
              32:      9(ptr) AccessChain 17(p) 31
              33:           2 FunctionCall 12(foo(s21;) 32
                              Return
                              FunctionEnd
21(bar(struct-S-s211;):           2 Function None 16
           20(p):     15(ptr) FunctionParameter
              22:             Label
              34:      9(ptr) AccessChain 20(p) 31
              35:           2 FunctionCall 12(foo(s21;) 34
                              Return
                              FunctionEnd
