[Mono-list] About MCS compiler

Miguel de Icaza miguel@ximian.com
22 Jan 2003 22:30:03 -0500


> I'm trying to fix a bug in MCS related to the inheritance and the
> overload of the indexers. When a class inherites a indexer and defines
> another one with other type (overload) the parent indexer is lost.
> I looked into MCS code and I can't understand the compiling process at
> all. I saw that the method resolve is done in statement.cs using
> Reflection.Emit to get the defined methods in the class and in its
> parent. Now, I'm looking for the code that feeds the Emit class (where
> the parent is disassembled).

statement.cs resolves statements, and statements contain expressions.

You are looking at the wrong place, you need to look at expression.cs. 
To understand the compiler design, you might want to use an object
browser like Monotalk (on cvs) or read the compiler documentation.

Look at the IndexerAccess class for example.