Forum: IronRuby Code Review: TypeInferenceBugs

Posted by Tomas Matousek (Guest)
on 2010-02-20 02:29
Attachment: TypeInferenceBugs.diff (4,96 KB)
(Received via mailing list)
tfpt review "/shelveset:TypeInferenceBugs;REDMOND\tomat"
  Comment  :
  Fixes bugs in type inference:

  1) By-ref generic parameter
  public void Foo<T>(ref T x);

  Foo(1)
  Foo(StrongBox())

  2) Multiple generic parameters
  public IEnumerable<TResult> Select<TSource, 
TResult>(IEnumerable<TSource> source, Func<TSource, TResult> selector);

  3) Generic arrays
  public int Foo<T>(T[] x);

  4) Type shape difference
  public static int f5<T>(Dictionary<Dictionary<string, T>, 
Dictionary<int, T>> arg);
  C.f5( Dictionary[List[str], Dictionary[int, str]]() )

  In general type inference seems to need more test coverage - various 
type shapes, arrays, ref/out with and w/o strong boxes, params array, 
params dict, optional, named combinations.
  I've added a few tests for the cases above to Ruby unit tests.

Tomas
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.