Ejemplo n.º 1
0
        private static void ProcessGenerics(IEnumerable<RppVariantTypeParam> typeParams, IEnumerable<RppGenericParameter> genericParameters)
        {
            genericParameters.EachPair(typeParams, (genericParam, typeParam) =>
                {
                    genericParam.Constraint = typeParam.ConstraintType;
                    if (typeParam.ConstraintType != null)
                    {
                        if (typeParam.ConstraintType.IsClass || typeParam.ConstraintType.IsGenericParameter)
                        {
                            genericParam.Type.BaseType = typeParam.ConstraintType;
                        }
                        else
                        {
                            throw new Exception("Interfaces and value types are not supported yet");
                        }
                    }

                    genericParam.Variance = GetVariance(typeParam.Variant);
                });
        }
Ejemplo n.º 2
0
 public static void UpdateGenericParameters(IEnumerable<RppGenericParameter> genericParameters,
     IEnumerable<GenericTypeParameterBuilder> nativeGenericParameters)
 {
     genericParameters.EachPair(nativeGenericParameters, UpdateGenericParameter);
 }