[Monodevelop-devel] Changes to resoving/ast/type system

Mike Krüger mkrueger at novell.com
Tue Jun 14 13:05:29 EDT 2011


>> Even if the usage is 'mostly' the same the model is very different:
>> - CompilationUnits (are now called IParsedFile) are now always stored
>> correctly (this info is never lost).
>> - The resolving of return types is done at call time. There is no real
>> way to do it clean without that, but the resolver is lighting fast and
>> correctness>  speed. This resolves some issues we had (like changing
>> namespaces, makes it possible to use 'external aliases')
> Will this resolution of types be transparent? that is, if I get for example the list of fields of a class and I want to get the type of each field, will I have to make a call to resolve each type or will the type system resolve the type for me when I query it?
If you resolve a TypeReference (==IReturnType) you get a IType which is 
fully resolved. There is more than one IType 'implementation' that 
handles the more complex cases.
InstantiatedType == ParameterizedType for example. For arrays there is 
an ArrayType etc.

A branch is a good idea - but I think that we shouldn't wait too long to 
merge it, maybe 1-2 months. I'll make my branch public when code 
completion works again.


More information about the Monodevelop-devel-list mailing list