[Ironruby-core] Code Review: GenericMethodsAndOverloads

Tomas Matousek Tomas.Matousek at microsoft.com
Tue Jan 13 19:44:18 EST 2009


TryBindGenericParameters should look like:

            foreach (var method in MethodBases) {
                if (method.IsGenericMethodDefinition) {
                    if (typeArguments.Length == method.GetGenericArguments().Length) {
                        Debug.Assert(!(method is ConstructorInfo));
                        boundMethods.Add(((MethodInfo)method).MakeGenericMethod(typeArguments));
                    }
                } else if (typeArguments.Length == 0) {
                    boundMethods.Add(method);
                }
            }

Will include this fix in Indexers2 shelveset.

Tomas

-----Original Message-----
From: Curt Hagenlocher 
Sent: Tuesday, January 13, 2009 4:34 PM
To: Tomas Matousek; IronRuby External Code Reviewers
Cc: ironruby-core at rubyforge.org
Subject: RE: Code Review: GenericMethodsAndOverloads

Changes look good overall.

In RubyMethodGroupInfo.TryBindGenericParameters, an empty set of types will return all methods in MethodBases whether or not they're generic.  What's the reason for this behavior?

There's a chunk of code that was added to Utils.cs that's indented too far.

-----Original Message-----
From: Tomas Matousek 
Sent: Monday, January 12, 2009 2:34 PM
To: IronRuby External Code Reviewers
Cc: ironruby-core at rubyforge.org
Subject: Code Review: GenericMethodsAndOverloads

  tfpt review "/shelveset:GenericMethodsAndOverloads;REDMOND\tomat"

    Implements generic methods parameters binding and explicit overload selection. Adds methods Method/UnboundMethod#of and Method/UnboundMethod#overloads. Method#of takes a list of Ruby classes or CLR types and returns a Method instance that has bound generic parameters to these classes/types. Method#overloads takes a list of Ruby classes or CLR types and returns a Method instance that includes only those CLR methods grouped in the Method object whose parameters are of the given types.

Tomas


More information about the Ironruby-core mailing list