Bug 318752 (MONO75825) - [GMCS] Some recursive problem
Summary: [GMCS] Some recursive problem
Status: RESOLVED FIXED
Alias: MONO75825
Product: Mono: Runtime
Classification: Mono
Component: JIT (show other bugs)
Version: 1.0
Hardware: Other Other
: P3 - Medium : Major
Target Milestone: ---
Assignee: Martin Baulig
QA Contact: Mono Bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-08-16 17:23 UTC by Steffen Kieß
Modified: 2007-09-15 21:24 UTC (History)
0 users

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Wiest 2007-09-15 19:27:40 UTC


---- Reported by kiess@h3c.de 2005-08-16 10:23:15 MST ----

Description of Problem:
Executing program using generics fails with '** ERROR **: implement type
compare for 0!'


class A<a> {}

class B<a> : A<a> {}

class C:B<C> {}

class M {
  static void Main() {
    C c;
  }
}


Steps to reproduce the problem:
1. gmcs test.cs
2. mono test.exe

Actual Results:

** ERROR **: implement type compare for 0!
aborting...


Expected Results:
The program should run without errors.

How often does this happen? 
always

Additional Information:
I'm using Mono svn r48422.



---- Additional Comments From martin@ximian.com 2005-09-19 13:45:10 MST ----

Difficult, some recursive problem.



---- Additional Comments From martin@ximian.com 2006-03-22 08:22:32 MST ----

I can't reproduce this anymore.



---- Additional Comments From ben@joldersma.org 2007-01-23 18:09:28 MST ----

I'm getting this error when I recompile my asp.net application, and
try to reload the assembly / site in xsp2.

I've seen the message like

** ERROR **: implement type compare for 0!

as well as:

** ERROR **: implement type compare for 2a!

I'm not sure what 2a means in this context?

It's failing on this call:

HtmlElement he = RootContext.CreateWidget<HtmlElement>();, which is a
generic method.  the stack trace is weird, because it looks like it's
somehow getting back into the current function:

** ERROR **: implement type compare for 2a!
aborting...
Stacktrace:

  at EmergeTk.Widget.ParseHtmlElement (System.Xml.XmlNode) <0xffffffff>
  at EmergeTk.Widget.ParseHtmlElement (System.Xml.XmlNode) <0x00057>

I don't see how it could be calling ParseHtmlElement a second time.

Here's the entire method, it fails on the first line:

        private void ParseHtmlElement(XmlNode n)
        {
        	try
        	{
	            HtmlElement he = RootContext.CreateWidget<HtmlElement>();
	            he.TagName = n.Name;
	            he.id = he.TagName + he.id;
	            he.EmergePrefix = NearestContext.TagPrefix;
	            foreach (XmlAttribute a in n.Attributes)
	            {
	            	if( a.Prefix == NearestContext.TagPrefix )
	            		he.SetAttribute(a.Name, a.Value);	
	                else
	                	he.SetAttribute(a.Name,
Util.ToJavaScriptString(a.Value));
	            }
	            Add(he);
	            he.ParseXml(n);
	         }
	         catch(Exception e)
	         {
	         	System.Console.WriteLine("ParseHtmlElement: " +
EmergeTk.Util.BuildExceptionOutput(e));
	         }
        }

Let me know if I can send anymore info that will help.  I'm not too
worried about it, but y'all might be interested in the info...


Unknown bug field "cf_op_sys_details" encountered while moving bug
   <cf_op_sys_details>Debian Sarge</cf_op_sys_details>
Unknown operating system unknown. Setting to default OS "Other".