[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dotgnu-pnet-commits] pnet ChangeLog codegen/cg_interface.c cscc/csha...
From: |
Klaus Treichel |
Subject: |
[dotgnu-pnet-commits] pnet ChangeLog codegen/cg_interface.c cscc/csha... |
Date: |
Sun, 08 Feb 2009 18:01:47 +0000 |
CVSROOT: /cvsroot/dotgnu-pnet
Module name: pnet
Changes by: Klaus Treichel <ktreichel> 09/02/08 18:01:46
Modified files:
. : ChangeLog
codegen : cg_interface.c
cscc/csharp : cs_lvalue.tc
Log message:
Fix declarations like declaredtype : genericinterface<declaredtype> .
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pnet/ChangeLog?cvsroot=dotgnu-pnet&r1=1.3602&r2=1.3603
http://cvs.savannah.gnu.org/viewcvs/pnet/codegen/cg_interface.c?cvsroot=dotgnu-pnet&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/pnet/cscc/csharp/cs_lvalue.tc?cvsroot=dotgnu-pnet&r1=1.70&r2=1.71
Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/ChangeLog,v
retrieving revision 1.3602
retrieving revision 1.3603
diff -u -b -r1.3602 -r1.3603
--- ChangeLog 1 Feb 2009 15:46:04 -0000 1.3602
+++ ChangeLog 8 Feb 2009 18:01:46 -0000 1.3603
@@ -1,3 +1,12 @@
+2009-02-08 Klaus Treichel <address@hidden>
+
+ * codegen/cg_interface.c (ImplementsInterface): Instantiate a generic
+ interface prior to checking if all members are implemented.
+
+ * cscc/csharp/cs_lvalue.tc
+ (ILNode_SemAnalysisType(ILNode_GenericQualIdent)): Return the main type
+ if in type gathering.
+
2009-02-01 Klaus Treichel <address@hidden>
* engine/lib_info.c (_IL_InfoMethods_GetPlatformID): Return 4 for Unix
Index: codegen/cg_interface.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/codegen/cg_interface.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- codegen/cg_interface.c 26 Nov 2008 20:15:18 -0000 1.3
+++ codegen/cg_interface.c 8 Feb 2009 18:01:46 -0000 1.4
@@ -114,6 +114,26 @@
ILMember *member;
int sawErrors;
+#if IL_VERSION_MAJOR > 1
+ if(ILClassNeedsExpansion(interface))
+ {
+ ILType *classType;
+ ILClass *instanceInfo;
+
+ classType = ILClass_SynType(interface);
+ instanceInfo =
ILClassInstantiate(ILProgramItem_Image(interface),
+
classType, classType, 0);
+ if(!instanceInfo)
+ {
+ sawErrors = 1;
+ }
+ else
+ {
+ interface = instanceInfo;
+ }
+ }
+#endif /* IL_VERSION_MAJOR > 1 */
+
/* Bail out if we've already visited this interface */
for(posn = 0; posn < *visitedSize; ++posn)
{
Index: cscc/csharp/cs_lvalue.tc
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/cscc/csharp/cs_lvalue.tc,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -b -r1.70 -r1.71
--- cscc/csharp/cs_lvalue.tc 30 Dec 2008 14:41:55 -0000 1.70
+++ cscc/csharp/cs_lvalue.tc 8 Feb 2009 18:01:46 -0000 1.71
@@ -1231,6 +1231,20 @@
}
info->inSemType = savedState;
+ if(info->typeGather)
+ {
+ /* During type gathering only underlying classes are required */
+
+ if((CSSemGetKind(value) == CS_SEMKIND_TYPE) ||
+ (CSSemGetKind(value) == CS_SEMKIND_TYPE_NODE))
+ {
+ /* Convert the result into an l-value or r-value and
return it */
+ return SemToLRValue((ILNode *)node, info, parent, value,
+ name,
node->left, &value);
+ }
+ return CSSemValueDefault;
+ }
+
if(CSSemGetKind(value) == CS_SEMKIND_TYPE)
{
ILType *withType;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [dotgnu-pnet-commits] pnet ChangeLog codegen/cg_interface.c cscc/csha...,
Klaus Treichel <=