Example #1
0
 public static ReadOnlyCollection <TypeSlim> GetGenericArguments(this MethodInfoSlim method)
 {
     return(method switch
     {
         GenericMethodInfoSlim gen => gen.GenericArguments,
         GenericDefinitionMethodInfoSlim def => def.GenericParameterTypes,
         _ => throw new InvalidOperationException(),
     });
Example #2
0
            protected override int VisitGenericDefinitionMethod(GenericDefinitionMethodInfoSlim method)
            {
                _typeHasher.Push(method.GenericParameterTypes);

                var arity = method.GenericParameterTypes.Count;

                var res = Combine((int)method.MemberType, Visit(method.DeclaringType), Visit(method.ReturnType), Visit(method.Name), arity, Visit(method.ParameterTypes));

                _typeHasher.Pop();

                return(res);
            }
 protected override MemberInfoSlim VisitGenericDefinitionMethod(GenericDefinitionMethodInfoSlim method)
 {
     return(SlimType.GetGenericDefinitionMethod("Foo", new TypeSlim[] { TypeSlim.GenericParameter("T") }.ToReadOnly(), EmptyReadOnlyCollection <TypeSlim> .Instance, returnType: null));
 }
 protected override int VisitGenericDefinitionMethod(GenericDefinitionMethodInfoSlim method) => 40;
Example #5
0
 private static void AssertAreSameGenericDefinitionMethod(MethodInfo methodInfo, GenericDefinitionMethodInfoSlim genericDefinitionMethodInfoSlim)
 {
     Assert.AreEqual(methodInfo.Name, genericDefinitionMethodInfoSlim.Name);
     Assert.AreEqual(methodInfo.GetGenericArguments().Length, genericDefinitionMethodInfoSlim.GenericParameterTypes.Count);
 }
 public OpenGenericMethodDef(TypeRef declaringType, GenericDefinitionMethodInfoSlim method, TypeRef returnType, params TypeRef[] parameters)
     : base(declaringType, method, returnType, parameters)
 {
 }