Pchp.CodeAnalysis.FlowAnalysis.TypeRefContext.GetElementType C# (CSharp) Method

GetElementType() public method

In case of array type, gets its possible element types.
public GetElementType ( TypeRefMask mask ) : TypeRefMask
mask TypeRefMask
return TypeRefMask
        public TypeRefMask GetElementType(TypeRefMask mask)
        {
            TypeRefMask result;
            if (IsArray(mask) && !mask.IsAnyType)
            {
                result = default(TypeRefMask);  // uninitalized

                var arrtypes = GetTypes(mask, _isArrayMask);
                foreach (var t in arrtypes)
                {
                    Debug.Assert(t.IsArray);
                    result |= t.ElementType;
                }

                if (result.IsVoid)
                {
                    // empty array
                    //result = TypeRefMask.AnyType;
                }
            }
            else
            {
                result = TypeRefMask.AnyType;
            }

            return result;
        }