[Mono-bugs] Using snapshot of Feb-24-02
   
    FC AI
     
    f_ai@hotmail.com
       
    Tue, 26 Feb 2002 00:13:22 +0000
    
    
  
This is a multi-part message in MIME format.
------=_NextPart_000_6bb6_6431_3dd1
Content-Type: text/plain; format=flowed
And this is the last one.
I found a problem related to the type-lookup when using namespaces.
Attached is the C# code to reproduce the problem.
I changed the code as follow and it seem to work:
The current idea to search for type 'a' in a namespace 'x.y.z'
is ( at least this is what i understood):
-Try x.y.z.a
-Try a
-Try 'a' with all the using namespaces of x.y.z
-Try 'a' with all the ussing ns of x.y.z parent namespace (and so on)
I changed it by:
-Try a
-Try x.y.z+a
-try x.y.z.usings[]+a
-Try x.y(implicit parent of x.y.z) + a
-try x.y.usings +a
-Try all the explicit parents of x.y.z +a
-Try all the explicit parents of x.y.z usings +a
and so on
I changed with the same idea
RootContext.LookupType and
TypeContainer.GetInterfaceOrClass
let me know if i'm in a good track
_________________________________________________________________
Join the world’s largest e-mail service with MSN Hotmail. 
http://www.hotmail.com
------=_NextPart_000_6bb6_6431_3dd1
Content-Type: text/plain; name="Ns_Types.cs"; format=flowed
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="Ns_Types.cs"
/*
* Desciption:
* Inside 'N2', A is not defined
* a) The definition of 'member' fails
* b) The definition of 'method' fails
* c) The definition of class 'C' fails
*/
namespace N1
{
	public enum A
	{
		A_1, A_2, A_3
	}
	namespace N2
	{
		public class B
		{
			A member;
			void Method (ref A a)
			{
			}
		}
		public class C:A
		{
		}
	}
}
/*
* N1.N3 is the same as
* namespace N1 {
*	namespace N3 {
*
*	}
* }
*
* Inside 'N3', A is not defined
* a) The definition of 'member' fails
* b) The definition of 'method' fails
* c) The definition of class 'C' fails
*
*/
namespace N1.N3
{
	public class B
	{
		A member;
		void Method (ref A a)
		{
		}
	}
	public class C:A
	{
	}
}
------=_NextPart_000_6bb6_6431_3dd1--