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

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

[Dotgnu-pnet-commits] pnet/cscc/csharp cs_lookup.c,1.27,1.28


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] pnet/cscc/csharp cs_lookup.c,1.27,1.28
Date: Thu, 27 Nov 2003 06:59:00 +0000

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

Modified Files:
        cs_lookup.c 
Log Message:


Allow fields to be resolved when performing semantic analysis on an
attribute argument so that constants in the current class can be
properly expanded (bug #5436).


Index: cs_lookup.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csharp/cs_lookup.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** cs_lookup.c 29 May 2003 16:58:33 -0000      1.27
--- cs_lookup.c 27 Nov 2003 06:58:57 -0000      1.28
***************
*** 312,316 ****
                                                const char *name, ILClass 
*accessedFrom,
                                            CSMemberLookupInfo *results,
!                                               int lookInParents, int 
baseAccess, int literalType)
  {
        ILImplements *impl;
--- 312,317 ----
                                                const char *name, ILClass 
*accessedFrom,
                                            CSMemberLookupInfo *results,
!                                               int lookInParents, int 
baseAccess, int literalType,
!                                               int inAttrArg)
  {
        ILImplements *impl;
***************
*** 344,347 ****
--- 345,353 ----
                                                continue;
                                        }
+                                       if(inAttrArg && kind != 
IL_META_MEMBERKIND_FIELD)
+                                       {
+                                               /* In attribute argument mode, 
we only want fields */
+                                               continue;
+                                       }
                                        if(kind != IL_META_MEMBERKIND_METHOD &&
                                           kind != IL_META_MEMBERKIND_FIELD &&
***************
*** 405,409 ****
                        FindMembers(genInfo,ILTypeToClass(genInfo,objectType),
                                            name, accessedFrom, results,
!                                               0, baseAccess, literalType);
  
                        impl = 0;
--- 411,415 ----
                        FindMembers(genInfo,ILTypeToClass(genInfo,objectType),
                                            name, accessedFrom, results,
!                                               0, baseAccess, literalType, 
inAttrArg);
  
                        impl = 0;
***************
*** 412,416 ****
                                FindMembers(genInfo, 
ILImplementsGetInterface(impl),
                                                    name, accessedFrom, results,
!                                                       lookInParents, 
baseAccess, literalType);
                        }
                }
--- 418,422 ----
                                FindMembers(genInfo, 
ILImplementsGetInterface(impl),
                                                    name, accessedFrom, results,
!                                                       lookInParents, 
baseAccess, literalType, inAttrArg);
                        }
                }
***************
*** 657,661 ****
                                                const char *name,
                                        ILClass *accessedFrom, 
CSMemberLookupInfo *results,
!                                               int lookInParents, int 
baseAccess, int literalType)
  {
        /* Initialize the results */
--- 663,668 ----
                                                const char *name,
                                        ILClass *accessedFrom, 
CSMemberLookupInfo *results,
!                                               int lookInParents, int 
baseAccess, int literalType,
!                                               int inAttrArg)
  {
        /* Initialize the results */
***************
*** 666,670 ****
        {
                FindMembers(genInfo, info, name, accessedFrom, results,
!                                       lookInParents, baseAccess, literalType);
        }
  
--- 673,677 ----
        {
                FindMembers(genInfo, info, name, accessedFrom, results,
!                                       lookInParents, baseAccess, literalType, 
inAttrArg);
        }
  
***************
*** 1222,1226 ****
        /* Note: do not lookup class members while resolving the simple names
         * inside an attribute argument */
!       while(startType != 0 && !genInfo->inAttrArg)
        {
                /* Resolve cross-image references */
--- 1229,1233 ----
        /* Note: do not lookup class members while resolving the simple names
         * inside an attribute argument */
!       while(startType != 0 /*&& !genInfo->inAttrArg*/)
        {
                /* Resolve cross-image references */
***************
*** 1229,1233 ****
                /* Look for members */
                result = MemberLookup(genInfo, startType, name,
!                                                         accessedFrom, 
&results, 1, 0, literalType);
                if(result != CS_SEMKIND_VOID)
                {
--- 1236,1241 ----
                /* Look for members */
                result = MemberLookup(genInfo, startType, name,
!                                                         accessedFrom, 
&results, 1, 0, literalType,
!                                                         genInfo->inAttrArg);
                if(result != CS_SEMKIND_VOID)
                {
***************
*** 1410,1414 ****
        result = MemberLookup(genInfo, ILTypeToClass(genInfo, 
CSSemGetType(value)),
                                                  name, 
ILClassResolve(CSGetAccessScope(genInfo, 1)), 
!                                                 &results, 1, 
CSSemIsBase(value), literalType);
  
        if(result != CS_SEMKIND_VOID)
--- 1418,1422 ----
        result = MemberLookup(genInfo, ILTypeToClass(genInfo, 
CSSemGetType(value)),
                                                  name, 
ILClassResolve(CSGetAccessScope(genInfo, 1)), 
!                                                 &results, 1, 
CSSemIsBase(value), literalType, 0);
  
        if(result != CS_SEMKIND_VOID)
***************
*** 1431,1435 ****
        result = MemberLookup(genInfo, ILTypeToClass(genInfo, 
CSSemGetType(value)),
                                                  name, 
ILClassResolve(CSGetAccessScope(genInfo, 1)),
!                                                 &results, 1, 
CSSemIsBase(value), literalType);
  
        if(result != CS_SEMKIND_VOID)
--- 1439,1443 ----
        result = MemberLookup(genInfo, ILTypeToClass(genInfo, 
CSSemGetType(value)),
                                                  name, 
ILClassResolve(CSGetAccessScope(genInfo, 1)),
!                                                 &results, 1, 
CSSemIsBase(value), literalType, 0);
  
        if(result != CS_SEMKIND_VOID)
***************
*** 1642,1646 ****
        /* Perform a member lookup based on the expression's type */
        result = MemberLookup(genInfo, ILTypeToClass(genInfo, objectType),
!                                                 ".ctor", accessedFrom, 
&results, 0, 0, 0);
        if(result != CS_SEMKIND_VOID)
        {
--- 1650,1654 ----
        /* Perform a member lookup based on the expression's type */
        result = MemberLookup(genInfo, ILTypeToClass(genInfo, objectType),
!                                                 ".ctor", accessedFrom, 
&results, 0, 0, 0, 0);
        if(result != CS_SEMKIND_VOID)
        {





reply via email to

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