http://d.puremagic.com/issues/show_bug.cgi?id=7423



--- Comment #10 from Don <clugd...@yahoo.com.au> 2012-03-20 12:35:34 PDT ---
(In reply to comment #9)
> (In reply to comment #8)
> > (In reply to comment #7)
> > Hex literals are supposed to be ints, not uints. The code should work 
> > anyway,
> > because x is a uint, therefore (x & LITERAL) is of type uint.
> 
> Sigh, and I've got a number of other people telling me it should be uint. I'm
> going to ask Walter for the final answer.

I'm wrong, it's in the spec (lexer.html).

If it is in the range 0..int.max, it is an int.
If it is in the range int.max+1u .. uint.max, it is a uint.
You can check it with this:

static assert(is (typeof(0x7FFF_FFFF) == int));
static assert(is (typeof(0x8000_0000) == uint));

So, it looks as though your original interpretation of the issue wasn't
correct. There may be something else going on though.

The fact that you were on Windows rules out a 64 bit codegen issue, which was
the obvious scapegoat.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------

Reply via email to