[Top][All Lists]
[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); \
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnet/cscc/csharp cs_lookup.c,1.19,1.20 cs_semvalue.h,1.5,1.6,
Rhys Weatherley <address@hidden> <=