[Top][All Lists]
[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)
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] pnet/cscc/csharp cs_lookup.c,1.27,1.28,
Rhys Weatherley <address@hidden> <=
- Prev by Date:
[Dotgnu-pnet-commits] pnetC ChangeLog, 1.44, 1.45 missing, 1.1.1.1, 1.2
- Next by Date:
[Dotgnu-pnet-commits] pnet ChangeLog,1.2808,1.2809
- Previous by thread:
[Dotgnu-pnet-commits] pnetC ChangeLog, 1.44, 1.45 missing, 1.1.1.1, 1.2
- Next by thread:
[Dotgnu-pnet-commits] pnet ChangeLog,1.2808,1.2809
- Index(es):