Microsoft.CSharp.RuntimeBinder.SymbolTable.GetMethodTypeParameters C# (CSharp) Method

GetMethodTypeParameters() private method

private GetMethodTypeParameters ( MethodInfo method, MethodSymbol parent ) : TypeArray
method System.Reflection.MethodInfo
parent Microsoft.CSharp.RuntimeBinder.Semantics.MethodSymbol
return Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray
        private TypeArray GetMethodTypeParameters(MethodInfo method, MethodSymbol parent)
        {
            if (method.IsGenericMethod)
            {
                Type[] genericArguments = method.GetGenericArguments();
                CType[] ctypes = new CType[genericArguments.Length];
                for (int i = 0; i < genericArguments.Length; i++)
                {
                    Type t = genericArguments[i];
                    ctypes[i] = LoadMethodTypeParameter(parent, t);
                }

                // After we load the type parameters, we need to resolve their bounds.
                for (int i = 0; i < genericArguments.Length; i++)
                {
                    Type t = genericArguments[i];
                    ctypes[i].AsTypeParameterType().GetTypeParameterSymbol().SetBounds(
                        _bsymmgr.AllocParams(
                        GetCTypeArrayFromTypes(t.GetTypeInfo().GetGenericParameterConstraints())));
                }
                return _bsymmgr.AllocParams(ctypes.Length, ctypes);
            }
            return BSYMMGR.EmptyTypeArray();
        }