https://bugzilla.novell.com/show_bug.cgi?id=474194
Summary: False compilation error by mcs/gmcs
Classification: Mono
Product: Mono: Compilers
Version: 2.2.x
Platform: Macintosh
OS/Version: Mac OS X 10.4
Status: NEW
Severity: Major
Priority: P5 - None
Component: C#
AssignedTo: [email protected]
ReportedBy: [email protected]
QAContact: [email protected]
Found By: ---
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US;
rv:1.9.0.6) Gecko/2009011912 Firefox/3.0.6
The following program compiles and runs on Novell Mono 2.0 using gmcs and mcs.
It also compiles and runs on Microsoft C# 2008.
But on Mono 2.2, both gmcs and mcs give a false compilation error:
foo.cs(4,28): error CS1012: Too many characters in character literal
class X {
public static void Main() {
bool b = false;
A((b?A("x'a."):A("x")));
}
static bool A(object obj) {
return true;
}
}
Note that the slightest tweak to the complex expression often resolves the
problem. For example, changing "b" to "false", or removing the extra parens
inside A(...) makes the false error go away.
This is a serious problem in my project where this happens more than once. The
above example is a distillation that is as close to minimal as I could get.
Reproducible: Always
Steps to Reproduce:
See details.
Actual Results:
foo.cs(4,28): error CS1012: Too many characters in character literal
Expected Results:
No error, as with Mono 2.2 and .NET 3.5.
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
_______________________________________________
mono-bugs maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs