[Mono-bugs] [Bug 31984][Nor] Changed - mcs doesn't correctly resolve const value uses depending on file compilation order

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Tue, 1 Feb 2005 07:58:39 -0500 (EST)


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by rharinath@novell.com.

http://bugzilla.ximian.com/show_bug.cgi?id=31984

--- shadow/31984	2004-12-30 17:58:53.000000000 -0500
+++ shadow/31984.tmp.14471	2005-02-01 07:58:39.000000000 -0500
@@ -1,13 +1,13 @@
 Bug#: 31984
 Product: Mono: Compilers
 Version: unspecified
 OS: unknown
 OS Details: 
-Status: NEW   
-Resolution: 
+Status: RESOLVED   
+Resolution: FIXED
 Severity: 080 Two weeks
 Priority: Normal
 Component: C#
 AssignedTo: mono-bugs@ximian.com                            
 ReportedBy: vladimir@pobox.com               
 QAContact: mono-bugs@ximian.com
@@ -73,6 +73,19 @@
 ------- Additional Comments From vladimir@pobox.com  2003-08-19 03:08 -------
 Bug still exists in mono/mcs 0.26.
 
 
 ------- Additional Comments From bmaurer@users.sf.net  2004-12-30 17:58 -------
 *** Bug 70901 has been marked as a duplicate of this bug. ***
+
+------- Additional Comments From rharinath@novell.com  2005-02-01 07:58 -------
+OK, given that this is a long-standing bug ... 
+
+I checked in a fix to decl.FindMembers to go ahead and define
+uninitialized types and constants when they're looked up.  This should
+solve the "forward reference" problem by tying the knot here.
+
+Note that the evaluation of the _value_ of the constant happens in the
+Emit() stage -- so this should not trigger additional lookups. 
+Similarly, the members of types are defined in a later pass.  Any
+additional lookups will be for base types, and we already have code to
+prevent a type from deriving on itself.