[prev in list] [next in list] [prev in thread] [next in thread]
List: mono-patches
Subject: [Mono-patches] mcs/mbas ChangeLog,1.210,1.211 expression.cs,1.60,1.61 ecore.cs,1.38,1.39
From: anirban () mono-cvs ! ximian ! com (B Anirban <banirban () novell ! com>)
Date: 2004-09-30 12:33:28
Message-ID: 20040930123328.B64EA94762 () mono-cvs ! ximian ! com
[Download RAW message or body]
Update of /cvs/public/mcs/mbas
In directory mono-cvs.ximian.com:/tmp/cvs-serv31579
Modified Files:
ChangeLog expression.cs ecore.cs
Log Message:
2004-09-30 Anirban Bhattacharjee <banirban@novell.com>
* expression.cs:
* ecore.cs:
Fix for resolution of event expression
when we have a AddHandler statement
like
AddHandler Me.E, AddressOf Me.EH
Submitted by Raja Harinath<rharinath@novell.com>
Index: ChangeLog
===================================================================
RCS file: /cvs/public/mcs/mbas/ChangeLog,v
retrieving revision 1.210
retrieving revision 1.211
diff -u -d -r1.210 -r1.211
--- ChangeLog 30 Sep 2004 12:12:18 -0000 1.210
+++ ChangeLog 30 Sep 2004 12:33:26 -0000 1.211
@@ -1,4 +1,13 @@
2004-09-30 Anirban Bhattacharjee <banirban@novell.com>
+ * expression.cs:
+ * ecore.cs:
+ Fix for resolution of event expression
+ when we have a AddHandler statement
+ like
+ AddHandler Me.E, AddressOf Me.EH
+ Submitted by Raja Harinath<rharinath@novell.com>
+
+2004-09-30 Anirban Bhattacharjee <banirban@novell.com>
* mb-parser.jay: Unnecessary to and fro conversion of types
is removed from AddHandler function
Index: expression.cs
===================================================================
RCS file: /cvs/public/mcs/mbas/expression.cs,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -d -r1.60 -r1.61
--- expression.cs 23 Sep 2004 12:31:15 -0000 1.60
+++ expression.cs 30 Sep 2004 12:33:26 -0000 1.61
@@ -5732,38 +5732,6 @@
}
}
- if (member_lookup is EventExpr) {
-
- EventExpr ee = (EventExpr) member_lookup;
-
- //
- // If the event is local to this class, we transform ourselves into
- // a FieldExpr
- //
-
- if (ee.EventInfo.DeclaringType == ec.ContainerType) {
- MemberInfo mi = GetFieldFromEvent (ee);
-
- if (mi == null) {
- //
- // If this happens, then we have an event with its own
- // accessors and private field etc so there's no need
- // to transform ourselves : we should instead flag an error
- //
- Assign.error70 (ee.EventInfo, loc);
- return null;
- }
-
- Expression ml = ExprClassFromMemberInfo (ec, mi, loc);
-
- if (ml == null) {
- Report.Error (-200, loc, "Internal error!!");
- return null;
- }
-
- return ResolveMemberAccess (ec, ml, left, loc, left_original);
- }
- }
if (member_lookup is IMemberExpr) {
IMemberExpr me = (IMemberExpr) member_lookup;
@@ -5843,7 +5811,7 @@
Expression original = expr;
expr = expr.Resolve (ec, flags | ResolveFlags.DisableFlowAnalysis);
-
+
if (expr == null)
return null;
@@ -6809,7 +6777,7 @@
e = MemberAccess.ResolveMemberAccess (ec, member_lookup, left, loc, null);
- if (e is PropertyExpr){
+ if (e is PropertyExpr) {
PropertyExpr pe = (PropertyExpr) e;
pe.IsBase = true;
Index: ecore.cs
===================================================================
RCS file: /cvs/public/mcs/mbas/ecore.cs,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -d -r1.38 -r1.39
--- ecore.cs 7 Sep 2004 18:04:33 -0000 1.38
+++ ecore.cs 30 Sep 2004 12:33:26 -0000 1.39
@@ -4790,6 +4790,8 @@
}
}
+ Expression field_expr = null;
+
public override Expression DoResolve (EmitContext ec)
{
if (instance_expr != null) {
@@ -4798,12 +4800,20 @@
return null;
}
+ MemberInfo mi = GetFieldFromEvent (this);
+ if (mi == null)
+ return null;
+ field_expr = ExprClassFromMemberInfo (ec, mi, loc);
+ ((FieldExpr) field_expr).InstanceExpression = instance_expr;
+ field_expr = field_expr.DoResolve (ec);
+ if (field_expr == null)
+ return null;
return this;
}
public override void Emit (EmitContext ec)
{
- Report.Error (70, loc, "The event '" + Name + "' can only appear on the left hand \
side of += or -= (except on the defining type)"); + field_expr.Emit (ec);
}
public void EmitAddOrRemove (EmitContext ec, Expression source)
_______________________________________________
Mono-patches maillist - Mono-patches@ximian.com
http://lists.ximian.com/mailman/listinfo/mono-patches
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic