1 This document lists some important changes between MCS and GMCS.
5 There's a fundamental change in how we're defining types in
6 TypeContainer.DefineType().
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
13 This has changed in GMCS since the following type of a recursive
14 declaration is allowed:
18 class Bar<T> : Foo<Bar<T>> { }
20 To allow this, we must define Bar's TypeBuilder before resolving its
21 parent classes and call TypeBuilder.SetParent() later.
24 Last updated September 9th, 2004
25 Martin Baulig <martin@ximian.com>