[Mono-bugs] [Bug 34161][Maj] Changed - implicit conversion with enums values issue

bugzilla-daemon@rocky.ximian.com bugzilla-daemon@rocky.ximian.com
17 Nov 2002 17:16:00 -0000


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 martin@ximian.com.

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

--- shadow/34161	Sun Nov 17 09:06:02 2002
+++ shadow/34161.tmp.10953	Sun Nov 17 12:16:00 2002
@@ -2,14 +2,14 @@
 Product: Mono/MCS
 Version: unspecified
 OS: other
 OS Details: 
 Status: ASSIGNED   
 Resolution: 
-Severity: Unknown
-Priority: Blocker
+Severity: 040 One week
+Priority: Major
 Component: Misc
 AssignedTo: martin@ximian.com                            
 ReportedBy: lupus@ximian.com               
 QAContact: mono-bugs@ximian.com
 TargetMilestone: ---
 URL: 
@@ -35,7 +35,22 @@
 I assume this is the
 System.Security.Cryptography/MiniParser.cs(256) error CS0029: Cannot convert implicitly from `int' to `System.UInt16'
 
 Thanks for the testcase, I was unable to trigger the problem ....
 
 
+
+
+------- Additional Comments From martin@ximian.com  2002-11-17 12:16 -------
+Ok, this is a bit difficult.  Already posted a workaround to mono-hackers.
+
+The problem is the following:
+
+When doing `(ushort)a << 4', the left-hand side is casted to `int' because the left-shift operator operates on ints.
+This means that the expression has a type of `int'.
+
+When assigning this expression, Assign.DoResolve doesn't know that the expression was initially of type ushort and that the implicit 
+conversion to ushort is allowed.
+
+As a workaround, explicitly cast the whole expression to short.  Since this problem requires some thinking and there's a simple 
+workaround, setting priority to major.