dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] CVS: pnet/cscc/csharp cs_lookup.c,1.19,1.20 cs_se


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/cscc/csharp cs_lookup.c,1.19,1.20 cs_semvalue.h,1.5,1.6
Date: Sat, 22 Feb 2003 21:28:21 -0500

Update of /cvsroot/dotgnu-pnet/pnet/cscc/csharp
In directory subversions:/tmp/cvs-serv26546/cscc/csharp

Modified Files:
        cs_lookup.c cs_semvalue.h 
Log Message:


Detect nested namespaces that aren't defined in the program but do
exist in the system library (Bug #2426).


Index: cs_lookup.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csharp/cs_lookup.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -r1.19 -r1.20
*** cs_lookup.c 15 Feb 2003 02:14:53 -0000      1.19
--- cs_lookup.c 23 Feb 2003 02:28:19 -0000      1.20
***************
*** 1366,1378 ****
        CSMemberLookupInfo results;
        int result;
  
        InitMembers(&results);
        result = FindTypeInNamespace(genInfo, name,
!                       CSSemGetNamespace(value), 
!                       ILClassResolve(CSGetAccessScope(genInfo, 1)),
!                       &results);
!                       
!       return result == CS_SEMKIND_VOID ?
!               CSSemValueDefault : LookupToSem(node, name, &results, result);
  }
  
--- 1366,1403 ----
        CSMemberLookupInfo results;
        int result;
+       ILIntString nspace;
  
        InitMembers(&results);
+ 
+       /* Look for a type first */
        result = FindTypeInNamespace(genInfo, name,
!                                                                
CSSemGetNamespace(value), 
!                                                                
ILClassResolve(CSGetAccessScope(genInfo, 1)),
!                                                                &results);
! 
!       /* See if the namespace is valid, according to the loaded libraries */
!       if(result == CS_SEMKIND_VOID)
!       {
!               nspace = ILInternAppendedString
!                       (ILInternString(CSSemGetNamespace(value), -1),
!                        ILInternString(".", 1));
!               nspace = ILInternAppendedString
!                       (nspace, ILInternString((char *)name, -1));
!               if(ILClassNamespaceIsValid(genInfo->context, nspace.string))
!               {
!                       CSSemSetNamespace(value, nspace.string);
!                       return value;
!               }
!       }
! 
!       /* Return the result to the caller */
!       if(result == CS_SEMKIND_VOID)
!       {
!               return CSSemValueDefault;
!       }
!       else
!       {
!               return LookupToSem(node, name, &results, result);
!       }
  }
  

Index: cs_semvalue.h
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csharp/cs_semvalue.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** cs_semvalue.h       5 Nov 2002 00:38:02 -0000       1.5
--- cs_semvalue.h       23 Feb 2003 02:28:19 -0000      1.6
***************
*** 150,154 ****
  #define       CSSemSetNamespace(value,ns)     \
                        do { \
!                               (value).kind__ = CS_SEMKIND_TYPE; \
                                (value).type__ = ILType_Void; \
                                (value).extra__ = (void *)(ns); \
--- 150,154 ----
  #define       CSSemSetNamespace(value,ns)     \
                        do { \
!                               (value).kind__ = CS_SEMKIND_NAMESPACE; \
                                (value).type__ = ILType_Void; \
                                (value).extra__ = (void *)(ns); \





reply via email to

[Prev in Thread] Current Thread [Next in Thread]