2005-01-19 Sureshkumar T <tsureshkumar@novell.com>
[mono.git] / mcs / gmcs / README.Changes
1 This document lists some important changes between MCS and GMCS.
2
3 * Defining Types
4
5   There's a fundamental change in how we're defining types in
6   TypeContainer.DefineType().
7
8   In MCS, we resolve a type's parent type and the interface it
9   implements before actually creating the TypeBuilder.  We can easily
10   detect "recursive" declarations (CS0146) if DefineType() is called
11   recursively.
12
13   This has changed in GMCS since the following type of a recursive
14   declaration is allowed:
15
16         class Foo<T> { }
17
18         class Bar<T> : Foo<Bar<T>> { }
19
20   To allow this, we must define Bar's TypeBuilder before resolving its
21   parent classes and call TypeBuilder.SetParent() later.
22
23
24 Last updated September 9th, 2004
25 Martin Baulig <martin@ximian.com>